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

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 5 » Редактор Базы Каналов (Математика) / Channel Base Editor » Управление состоянием канала

   
Автор / Author Тема / Topic: Управление состоянием канала
preo_alm
Junior Member / Новичок
Участник № / Member № 33


Icon 1 отправлено / posted      Профиль для / Profile for preo_alm           Редактировать/удалить сообщение / Edit/Delete Post 
Такой вопрос: есть несколько каналов типа INPUT подтипа КОНТР_1, причем часть каналов при старте выключена. Необходимо включить выкюченные каналы(для начала один из них) по какому-либо событию(например, по нажатию кнопки). Согласно документации, был создан канал типа OUTPUT подтипа КАНАЛ с дополнением Установить и были заданы след. параметры: CH= имя включаемого канала, ATTR=Состояние, Time=до выкл. По нажатию кнопки (в редакторе представления данных) в этот канал посылалась 1 (хотя сразу возникает вопрос, какой атрибут должен иметь канал, связанный с кнопкой), но канал не включился. Точно таким же способом попрбовал изменить значение уже включенного канала - никаких изменений, однако изменялось значение канала подтипа ДИАГНОСТИКА с дополнением КОНТР_1 как раз на посылаемую величину. Объясните, в чем я был неправ и как же все-таки управлять состоянием канала в реальном времени. Заранее благодарен за ответ.
Сообщения / Posts 23 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
preo_alm
Junior Member / Новичок
Участник № / Member № 33


Icon 1 отправлено / posted      Профиль для / Profile for preo_alm           Редактировать/удалить сообщение / Edit/Delete Post 
Еще вопрос. Ситуация, аналогичная предыдущей, только для каналов типа OUTPUT подтипа КОНТР_1. Посылка команды в устройство осуществляется только при установленной галочке Отработать для данного канала и то, только до первого останова монитора реального времени. После повторного запуска (без выхода из монитора реального времени)каналы типа OUTPUT отключаются. Как осуществить управление каналом типа OUTPUT в реальном времени?
Сообщения / Posts 23 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
1) Обращаю Ваше внимание, что отличное от нуля значение атрибута Состояние означает отключение канала от пересчета.
Групповое управление Включением/Выключением пересчета каналов можно осуществлять через канал с подтипом ОБЪЕКТ и дополнением к подтипу Состояние. Для управляемого таким образом объекта, необходимо установить флаг "Загружаемый".
2) Остановка монитора реального времени без перезапуска проекта аналогична функции "Пауза", поэтому при повторном запуске проекта он продолжает работать с того момента, когда его остановили.
Если Вы хотите реализовать принудительную выдачу данных по каналам типа OUTPUT, то необходимо собрать их в отдельный объект, сделать его загружаемым и осуществлять управление через канал подтипа ОБЪЕКТ и дополнением к подтипу Выдача.

Сообщения / Posts 17316 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
preo_alm
Junior Member / Новичок
Участник № / Member № 33


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


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
При переходе значения канала ОБЪЕКТ Выдача из нулевого в ненулевое будет осуществлена отработка управляемых каналов на один цикл. Для того, чтобы выполнить повторную отработку этот канал необходимо снова "обнулить" и вновь послать отличное от нуля значение. Как раз то, что Вам нужно.
Кнопку посылки лучше делать с восстановлением.

Сообщения / Posts 17316 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
preo_alm
Junior Member / Новичок
Участник № / Member № 33


Icon 1 отправлено / posted      Профиль для / Profile for preo_alm           Редактировать/удалить сообщение / Edit/Delete Post 
Ничего подобного не поисходит: при переходе значения канала ОБЪЕКТ Выдача Вход из нулевого в ненулевое запускается отработка управляемых каналов, но не на один цикл, а до тех пор ,пока не будет обнулено значение канала ОБЪЕКТ Выдача Вход. Возможно это связано с драйвером, но в драйвере для каналов типа OUTPUT (p[0].F.fmt[3] = 1) в ф-ции Set_xxx устанавлиается значение max_rec=0, т.е. остальные ф-ции не вызываются. Посоветуйте пожалуйста как решить данную проблему. Заранее благодарю за ответ и поздравляю всех с НОВЫМ ГОДОМ!
Сообщения / Posts 23 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 4 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Не совсем понятно, причем здесь p[0].F.fmt[3] = 1 ?
Дело в том, что канал ОБЪЕКТ Выдача при переходе из нулевого значения в ненулевое выставляет для всех каналов управляемого им объекта флаг "Отработать". По этому флагу сервер мат. обработки осуществляет пересчет канала и обнуление его флага. Пересчет происходит за один цикл пересчета узла.
В связи с этим причину следует искать в особенности реализации драйвера.

Сообщения / Posts 17316 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
preo_alm
Junior Member / Новичок
Участник № / Member № 33


Icon 1 отправлено / posted      Профиль для / Profile for preo_alm           Редактировать/удалить сообщение / Edit/Delete Post 
Особенность реализации драйвера состоит в том, что в процедуре Set_xxx проверяется тип канала (p[0].F.fmt[3] = 1 - канал типа OUTPUT) и для канала OUTPUT устанавливается число принимаемых байт max_rec=0, т.е. данные только передаются. В этом случае функции Check_xxx, Get_xxx, zCompare_xxx не вызываются, что на самом деле и происходит, т.е. ошибки, вызывающие повторную посылку данных могут возникнуть только в процессе передачи данных, а, т.к. устройство правильно реагирует на посланные данные, я сделал вывод, что драйвер работает нормально и причина в чем-то другом, а имеенно не происходит автоматическое обнуление флага "Отработать" после выполнения одного цикла или даже если и происходит, то система на это не реагирует. Так что остановить цикл выдачи даннных пока-что можно только обнулением значения канала ОБЪЕКТ Выдача Вход. Возможно, эта информация поможет Вам ответить на поставленный ранее вопрос. И еще прошу Вас, если можно, давать более подробные описания рекомендуемых настроек: начиная от типа канала до атрибута и значения, посылаемого в канал.
Сообщения / Posts 23 | Из / From: Ukraine  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Указанная Вами ошибка локализована и будет исправлена в ближайшем релизе.
Пока придется использовать найденный Вами обходной путь.

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

  New Poll   Закрыть тему / 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