Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Языки программирования в TRACE MODE 6 / Algorithm Programming Languages » Язык программирования ST

   
Автор / Author Тема / Topic: Язык программирования ST
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день ! [Улыбка / Smile]

Подскажите пожалуйста каким образом в теле программы на ST можно получить текущую дату и время в формате "Число секунд с 01.01.70" для присвоения Каналу_HEX32.

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо !
Отвечать не нужно.
Уже разобрался.

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день !
В языке ST в любой программе есть переменные
типа GLOBAL. Такое объявление предполагает видимость этих переменных из любой программы
в пределах узла ? Или я ошибаюсь ?

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Все, что относится к программе - имеет область видимости только данной программы! Поэтому переменные типа GLOBAL имеют область видимости в программе, а также в ее функциях, но не далее. Если необходимо обмениваться данными между программами - нужно использовать аргументы программы, они глобальны для всего проекта, и не только для узла (если между узлами планируется сетевой интерфейс).
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день ! [Улыбка / Smile]
Есть такая задача, канал HEX16 изменяет своё значение в диапозоне от 0 до 45.
Необходимо для каждого значения канала выдать на
экран текстовую строку (в одно и то же место). Это необходимо для индикации прохождения технологического цикла по циклограмме. Решить задачу штатными средствами Trace Mode не получается. То есть, пользовательский словарь всего 8 сообщений, объект типа TXT не динамизируется, для выбора строки из файла.

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Не совсем понятно зачем для этого использовать словарь аварийных сообщений?
Решения два:
1) В программе по значению канала в его любой текстовый атрибут, например - в Комментарий вводить соответствующую строку, а в графике выводить это значение на текстовой форме.
2) Сделать текстовый индикатор по диапазонам - задать для каждого диапазона строку текста и привязаться к значению канала.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день ! [Улыбка / Smile]
- Первый вариант работает, но ограничение длины
строки в 40 символов неприемлимо.
- Второй вариант работает хорошо, но после ввода
строки любая попытка её отредактировать стирает
всю строку и приходится набивать её повторно.
Попытался во втором варианте использовать ресурс-
библиотеку текстовых строк. Индикация текста сразу прекратилась. [Недоумение / Confused]

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
По поводу пропадания строки при реактировании - уже исправлено в последнем релизе 6.02, а за ошибку с ресурсами для диапазонного индикатора спасибо, действительно имеет место быть. Будем править.
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день ! [Улыбка / Smile]
Канал CALL позволяет записывать и ситывать значение аргументов в (из) файл, используя атрибуты 128-READ_FILE, 129-WRITE_FILE.
Возможно ли управление записью в файл из программы в реальном времени ??
Эксперимент показал что READ_FILE из программы проходит нормально, а вот WRITE_FILE почему то
файл не создаёт. Правда при вводе значения в WRITE_FILE из графики файл создаётся.
[Недоумение / Confused]

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Да - управлять можно в реальном времени.
Эксперимент - это посылка из программы, раз в графике заработало? Может не так привязали, или программа не выдает значение в атрибут? Каналу все равно откуда это значение в него попадает и если работает из графики - значит функция работает.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день!
Посылаю тестовый проект,очень маленький,
на адрес forum@adastra.ru
Канал Smena, его тип менял на OUTPUT эффект тот же как отображено в файле Error.doc
Хотелось бы понять в чём ошибка.

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Тест начал работать после того как
был добавлен канал тип FLOAT, связанный с
системной переменной t_Hours.

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
У Вас следующие ошибки в конфигурировании проекта:
1) Повесив программу на Трансляцию канала - Вы тем самым "рвете" его пополам (смотрите рисунок в справке по данному каналу), ведь направление данных и обработка в канале HEX16 типа Input идет по схеме: (Источник)->Вход->(Инверсия)->Аппаратное->(Трансляция)->Реальное->Выход.
А у Вас один вход программы был привязан к системной переменной "Текущий час", а выход на Вход канала - получается, что у Вас между Аппаратным и Реальным атрибутами получился разрыв.
Надо было сделать так:
а) Залинковать сам канал Smena на системную переменную.
б) Вход программы Hh привязать к Аппаратному значению канала Smena.
в) Выход Sm программы привязать к Реальному атрибуту канала Smena.

2) Другая ошибка в том, что аргумент экрана ARG_000 Вы залинковали в таблице аргументов самого Шаблона экрана, а не в его Вызове в узле, если Вы откроете таблицу аргументов вызова этого экрана в самом узле МРВ, то увидите, что его привязка отсутсвует.
Таблица аргументов Шаблона и его Вызова - это не одно и то же. Вызов - всего лишь реплицирует список аргументов шаблона, но его привязки могут и не совпадать с привязками, которые Вы задали в самом шаблоне - ведь таких вызовов одного шаблона может быть сколь угодно много, но у каждого может быть собственная реализация привязок этого списка аргументов.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Большое спасибо !
Разобрался.

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день!
Можно ли использовать для хранения и отображения
на экранах аргументы программ не привязанные к источникам. То есть использовать их как глобальные переменные. Если возможно то как это правильно сделать?

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Сохранять данные в глобальных переменных программы, связывать их с аргументами программы, а последние - с аргументами экрана.
При условии соблюдения корректности в задании типов аргументов такой механизм должен работать.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день !
Что понимать под выражением связывать глобальные переменные программы с аргументами программы.
Редактор привязок не имеет такой возможности,
т.е. нет возможности связывать глобальные переменные с чем либо. Имеется в виду присвоение значения в теле программы ?

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В данном контексте имелся в виду обычный оператор присвоения, например:
GVAR_000=ARG_000;

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день !
1.
Есть необходимость использовать не
задействованные атрибуты каналов для хранения
значений в программах трансляции и любых других.
То есть, имеем канал HEX32, если он не
привязан к аппаратуре, то не используются
атрибуты :
L0 - UDINT
I0 - UINT
I1 - UINT
I2 - UINT
вот их и хотелось бы использовать при
вычислениях для своих нужд.
Хотелось бы получить развёрнутый комментарий
по поводу использования атрибутов монитором,
какие можно использовать в своих целях ?
2.
Возращаясь к предыдущей теме от 17-06-2005 17:45
Описанный способ использования аргументов
программы и каналов CALL не имеющих привязки,
не работает.
В аргументы не имеющие привязки можно
послать значение из графики без проблем,
можно использовать эти аргументы внутри
программы для анализа значений, но присвоение
значения такому аргументу внутри программы не
работает точнее ведёт себя странным образом.
Например значение такого аргумента зависит от
положения которое он занимает в редакторе
аргументов в начале списка или в конце.
Мне кажется что нужно получить консультацию
у программиста, который работал с этим кодом.

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
1) I0,I1 и I2 - есть одна переменная L0, поэтоум либо первые три используете, либо одну L0, сами I это C0-C5. То есть разбивка одной области данных на 6 байт на разные форматы.
2) Желательно проект нам для исследования данной особенности с Вашими коментариями как наблюдать эффект.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Отправил тестовый проект на forum@adastra.ru
Задача в этом проекте присвоить значение
аргументу программы Test.

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Так он у Вас зачем-то сам на себя привязан! Вы отвяжите его совсем, чтобы у него привязки не было, тогда с аргумента экрана, который на него привязан должно значение передаваться.
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Я удалил привязку сам на себя в редакторе
привязок канала HEX32, результат тот же самый.
Значение которое формируется в программе не отображается.
При вводе с формы иногда вводимое
значение появляется и тут же меняется
на значение 1.

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
С экрана Вы в этот аргумент ничего и не введете, он же у Вас уже привязан к источнику для отображения, в который программа постоянно шлет результат вычисления.
На входе канала Канал#1 у Вас 0, по формуле программы на Трансляции на Реальное значение попадает результат=1 (кстати, Трансляция должна соединять не Вход с Реальным атрибутом, а Аппаратное с Реальным - смотрите обработку данных в канале класса HEX32). 1 - потому как у Вас все аргументы целочисленные, можете сами пересчитать с учетом преобразования типов.
Так что - все верное работает, никаких ошибок в работе на обнаружено.

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Всё что вами сказано проверено многократно !
И тем не менее не работает.
Буду благодарен, если вы пришлёте мне проект
с тестом, по аналогии того что я посылал вам.
В этом случае всё станет на свои места, возможно
мы говорим о разных вещах.

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Отправил Ваш же модифицированный проект.
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Проект получил, но он не работает.
Переправил ещё один вариант в котором алгоритм работает, но очень странно.
Аргументы программ, не привязанные к источникам, и связанные с трансляцией, по видимому использовать нельзя.
Попробую для этой цели использовать канал CALL.

Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В том проекте, что Вы снова прислали - опять аргумент сам на себя залинкован! [clever / умный]
Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
PMA
Forum Professor / Завсегдатай форума
Участник № / Member № 1387


Icon 1 отправлено / posted      Профиль для / Profile for PMA           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Это единственный вариант при котором проект работает, то есть изменяет значение аргумента программы Test и правильно отображает его на экране. Все другие варианты не работают, проверьте.
Сообщения / Posts 159 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Потому что этот вариант правильный!

Какие именно другие варианты Вы имеете в виду?

Сообщения / Posts 17114 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2