This is topic Управление периодом пересчета каналов обьекта in forum Общие вопросы / Common questions at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/26/t/000132.html

Posted by bogdem (Участник № / Member № 1076) on :
 
Устройство опрашивается с периодом Р>>цикла базы каналов контроллера. Но если аппаратная недостоверность устройства устанавливается в "1", ТМ опрашивает данное устройство с периодом равным одному циклу. Как управлять периодом опроса устройства в случае наличия аппаратной недостоверности?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вы можете либо отключать групповым образом все каналы для обмена, либо повышать их индивидуальные циклы пересчета. Первое - предпочтительней.
 
Posted by bogdem (Участник № / Member № 1076) on :
 
согласен, для автоматизации процесса управления неработоспособным устройством метод отключения предпочтителен. Я отключаю обьект и его каналы от обмена при налачии 1-го значения недостоверности хотя бы по одному каналу устройства, но в начале каждого последующего периода пересчета необходимо сбросить значение аппаратной недостоверности в нуль и подключить устройство к обмену. Есть ли возможность сбросить аппаратную недостоверность для каналов обьектов?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Она сбросится как только канал будет включен обратно в обмен и по нему придут достоверные данные. Если Вы контролируете достоверность групповым методом (через канал ОБЪЕКТ_Недостоверность), то сбросить его значение можно через точно такой же канал, но типа output, послав в него ненулевое отличное от его текущего значение.
 
Posted by bogdem (Участник № / Member № 1076) on :
 
как я понял, через канал ОБЪЕКТ_Недостоверность типа Output можна сбросить единичное значение аппаратной недостоверности для неработающего устройства?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Да, но только этого канала (который типа input), а не у тех каналов, которые он контролирует.
 
Posted by bogdem (Участник № / Member № 1076) on :
 
тогда вернемся к моему первому вопросу -
как устранить негативную (в данном случае) особенность ТМ опрашивать каналы неработоспособного устройства один раз в цикл системы, а не один раз в период установленный в атрибутах каналов данного устройства?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Чему у Вас равен цикл МРВ и каналов для опроса устройства?
 
Posted by bogdem (Участник № / Member № 1076) on :
 
цикл МРВ = 0.55*3=0.165
период опроса всех каналов всех устройств 33 шт. одинаков = 50 циклов МРВ
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
В силу того, что процесс обмена по внешним интерфейсам асинхронен относительно цикла пересчета базы каналов - в ситуации, когда по каналу стоит недостоверность, система действительно будет стараться опросить устройство в рамках анализа собственного списка таких каналов, по которым выставлен флаг Отработать, но данные не получены. И повлиять на это никак нельзя, кроме как отключить сами каналы для обмена от пересчета. [Неодобрение / Frown]
 
Posted by bogdem (Участник № / Member № 1076) on :
 
исходя из задачи "автоматизации процесса управления неработоспособным устройством..." по какому признаку тогда мне включать отключенные каналы?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вы сами должны решить, когда Вам их включать обратно - не может же ПК Вам сказать можно уже их включать или нет, такого интеллекта у него не имеется... [Улыбка / Smile]
 
Posted by bogdem (Участник № / Member № 1076) on :
 
но ведь можно же в ТМ :
1. вывести признак начала пересчета базы каналов, по которому можно было бы каждый раз в очередном цикле пересчета подключать каналы к пересчету и после опроса при наличии хотя бы по одному каналу устройства аппаратной недостоверности снова отключать каналы;
2. либо ввести в внутреннюю логику системы формирования аппаратной недостоверности внешнюю переменную, по которой можно было бы сбросить аппаратную недостоверность и таким образом обеспечить автоматизм подключения каналов данного устройства к обмену в следующем цикле опроса.
Как видно, возможностей для решения задачи уменьшения количества "ложных" запросов от неработоспособного устройства, много и хотелось бы получить квалифицированную помощь по вопросу гибкого использования ТМ.
Ведь таким образом в ТМ заложен ошибочный алгоритм опросов устройств - опрашивать неработоспособное устройство не в соответствии с параметрами "период" каналов, а в соответствии с внутренней логикой системы - один раз в "цикл системы". А это существенно ограничивает гибкость использования возможностей ТМ.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1) А что Вам запрещает делать это уже сейчас?
2) Это как - кто определяет эту логику? У Вас она одна, у других пользователей - другая... И кто эту переменную будет сбрасывать?
Напротив - заложив принцип опроса как с периодом пересчета каналов Вы тем самым рискуете вообще затормозить работу всей системы из-за того, что у Вас какой-нибудь модуль вышел из строя! С циклом пересчета выставляется флаг Отработать, по которому и производится обмен по внешним интерфейсам. Однако задача этого обмена должна быть обязательно асинхронна относительно работы всей математики и никоем образом не влиять на жестко заданный цикл пересчета, иначе у Вас процесс "поплывет" или будет тормозить, когда начнуться ожидания по таймаутам от неработающего устройства.
Обменом можно и нужно управлять по Достоверности данных. Но отключив каналы от пересчета, системе как человеку нельзя уже объяснить когда их надо включить обратно, для этого необходимо ее запрограммировать на определенный алгоритм, по которому она должна будет подлючить каналы к обмену обратно. Этот алгоритм у разных пользователей может быть разным - мы не можем программировать его жестко внутри системы. Да и не существует таких стандартных алгоритмов...
 
Posted by bogdem (Участник № / Member № 1076) on :
 
1. Судя по ответу, Вы знаете как управлять по признаку пересчета. Подскажите.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Начало каждого цикла пересчета можно и не ловить - достаточно программу, которая будет управлять подключением\отключением каналов от перечсета посадить на канал с циклом пересчета узла. Для контроля за повторными попытками обмена по отключенным каналам я бы порекомендовал следующий алгоритм:
Контроль достоверности осуществлять групповым образом. Как только появляется недостоверность в канале группового контроля достоверности - оключать каналы от пересчета и тут же сбрасывать значение этого канала группового контроля. На каждом такте пересчета подключать каналы обратно, и если снова возникает групповая недостоверность - опять выключать их от обмена. При желании процедуру не обязательно выполнять на каждом пересчете базы - период этой программы можно и увеличить.
 
Posted by bogdem (Участник № / Member № 1076) on :
 
С второй частью - "Для контроля за повторными попытками обмена по отключенным каналам я бы порекомендовал следующий алгоритм:...", полностью согласен. Не знаю как "посадить на канал с циклом пересчета узла". Есть такой канал?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Любой канал подтипа Управление или Пустой с периодом пересчета "1 цикл".
 
Posted by bogdem (Участник № / Member № 1076) on :
 
В моем случае, если я хочу получить признак пересчета, равным периоду "опроса всех каналов всех устройств 33 шт. одинаков = 50 циклов МРВ" необходимо установить для этого канала период "50 цикл"?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Да.
 
Posted by bogdem (Участник № / Member № 1076) on :
 
В пору сказать банальную фразу - "все гениальное - просто!". Осталось еще проверить эту идею. Спасибо!
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2