Тема / Topic: Управление периодом пересчета каналов обьекта
bogdem
Junior Member / Новичок
Участник № / Member № 1076
отправлено / posted
Устройство опрашивается с периодом Р>>цикла базы каналов контроллера. Но если аппаратная недостоверность устройства устанавливается в "1", ТМ опрашивает данное устройство с периодом равным одному циклу. Как управлять периодом опроса устройства в случае наличия аппаратной недостоверности?
Сообщения / Posts 26 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
отправлено / posted
Вы можете либо отключать групповым образом все каналы для обмена, либо повышать их индивидуальные циклы пересчета. Первое - предпочтительней.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
bogdem
Junior Member / Новичок
Участник № / Member № 1076
отправлено / posted
согласен, для автоматизации процесса управления неработоспособным устройством метод отключения предпочтителен. Я отключаю обьект и его каналы от обмена при налачии 1-го значения недостоверности хотя бы по одному каналу устройства, но в начале каждого последующего периода пересчета необходимо сбросить значение аппаратной недостоверности в нуль и подключить устройство к обмену. Есть ли возможность сбросить аппаратную недостоверность для каналов обьектов?
Сообщения / Posts 26 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
отправлено / posted
Она сбросится как только канал будет включен обратно в обмен и по нему придут достоверные данные. Если Вы контролируете достоверность групповым методом (через канал ОБЪЕКТ_Недостоверность), то сбросить его значение можно через точно такой же канал, но типа output, послав в него ненулевое отличное от его текущего значение.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
bogdem
Junior Member / Новичок
Участник № / Member № 1076
отправлено / posted
как я понял, через канал ОБЪЕКТ_Недостоверность типа Output можна сбросить единичное значение аппаратной недостоверности для неработающего устройства?
Сообщения / Posts 26 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
отправлено / posted
Да, но только этого канала (который типа input), а не у тех каналов, которые он контролирует.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
bogdem
Junior Member / Новичок
Участник № / Member № 1076
отправлено / posted
тогда вернемся к моему первому вопросу - как устранить негативную (в данном случае) особенность ТМ опрашивать каналы неработоспособного устройства один раз в цикл системы, а не один раз в период установленный в атрибутах каналов данного устройства?
Сообщения / Posts 26 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
bogdem
Junior Member / Новичок
Участник № / Member № 1076
отправлено / posted
цикл МРВ = 0.55*3=0.165 период опроса всех каналов всех устройств 33 шт. одинаков = 50 циклов МРВ
Сообщения / Posts 26 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
отправлено / posted
В силу того, что процесс обмена по внешним интерфейсам асинхронен относительно цикла пересчета базы каналов - в ситуации, когда по каналу стоит недостоверность, система действительно будет стараться опросить устройство в рамках анализа собственного списка таких каналов, по которым выставлен флаг Отработать, но данные не получены. И повлиять на это никак нельзя, кроме как отключить сами каналы для обмена от пересчета.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
bogdem
Junior Member / Новичок
Участник № / Member № 1076
отправлено / posted
исходя из задачи "автоматизации процесса управления неработоспособным устройством..." по какому признаку тогда мне включать отключенные каналы?
Сообщения / Posts 26 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
отправлено / posted
Вы сами должны решить, когда Вам их включать обратно - не может же ПК Вам сказать можно уже их включать или нет, такого интеллекта у него не имеется...
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
bogdem
Junior Member / Новичок
Участник № / Member № 1076
отправлено / posted
но ведь можно же в ТМ : 1. вывести признак начала пересчета базы каналов, по которому можно было бы каждый раз в очередном цикле пересчета подключать каналы к пересчету и после опроса при наличии хотя бы по одному каналу устройства аппаратной недостоверности снова отключать каналы; 2. либо ввести в внутреннюю логику системы формирования аппаратной недостоверности внешнюю переменную, по которой можно было бы сбросить аппаратную недостоверность и таким образом обеспечить автоматизм подключения каналов данного устройства к обмену в следующем цикле опроса. Как видно, возможностей для решения задачи уменьшения количества "ложных" запросов от неработоспособного устройства, много и хотелось бы получить квалифицированную помощь по вопросу гибкого использования ТМ. Ведь таким образом в ТМ заложен ошибочный алгоритм опросов устройств - опрашивать неработоспособное устройство не в соответствии с параметрами "период" каналов, а в соответствии с внутренней логикой системы - один раз в "цикл системы". А это существенно ограничивает гибкость использования возможностей ТМ.
Сообщения / Posts 26 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
отправлено / posted
1) А что Вам запрещает делать это уже сейчас? 2) Это как - кто определяет эту логику? У Вас она одна, у других пользователей - другая... И кто эту переменную будет сбрасывать? Напротив - заложив принцип опроса как с периодом пересчета каналов Вы тем самым рискуете вообще затормозить работу всей системы из-за того, что у Вас какой-нибудь модуль вышел из строя! С циклом пересчета выставляется флаг Отработать, по которому и производится обмен по внешним интерфейсам. Однако задача этого обмена должна быть обязательно асинхронна относительно работы всей математики и никоем образом не влиять на жестко заданный цикл пересчета, иначе у Вас процесс "поплывет" или будет тормозить, когда начнуться ожидания по таймаутам от неработающего устройства. Обменом можно и нужно управлять по Достоверности данных. Но отключив каналы от пересчета, системе как человеку нельзя уже объяснить когда их надо включить обратно, для этого необходимо ее запрограммировать на определенный алгоритм, по которому она должна будет подлючить каналы к обмену обратно. Этот алгоритм у разных пользователей может быть разным - мы не можем программировать его жестко внутри системы. Да и не существует таких стандартных алгоритмов...
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
bogdem
Junior Member / Новичок
Участник № / Member № 1076
отправлено / posted
1. Судя по ответу, Вы знаете как управлять по признаку пересчета. Подскажите.
Сообщения / Posts 26 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
отправлено / posted
Начало каждого цикла пересчета можно и не ловить - достаточно программу, которая будет управлять подключением\отключением каналов от перечсета посадить на канал с циклом пересчета узла. Для контроля за повторными попытками обмена по отключенным каналам я бы порекомендовал следующий алгоритм: Контроль достоверности осуществлять групповым образом. Как только появляется недостоверность в канале группового контроля достоверности - оключать каналы от пересчета и тут же сбрасывать значение этого канала группового контроля. На каждом такте пересчета подключать каналы обратно, и если снова возникает групповая недостоверность - опять выключать их от обмена. При желании процедуру не обязательно выполнять на каждом пересчете базы - период этой программы можно и увеличить.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
bogdem
Junior Member / Новичок
Участник № / Member № 1076
отправлено / posted
С второй частью - "Для контроля за повторными попытками обмена по отключенным каналам я бы порекомендовал следующий алгоритм:...", полностью согласен. Не знаю как "посадить на канал с циклом пересчета узла". Есть такой канал?
Сообщения / Posts 26 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
bogdem
Junior Member / Новичок
Участник № / Member № 1076
отправлено / posted
В моем случае, если я хочу получить признак пересчета, равным периоду "опроса всех каналов всех устройств 33 шт. одинаков = 50 циклов МРВ" необходимо установить для этого канала период "50 цикл"?
Сообщения / Posts 26 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
bogdem
Junior Member / Новичок
Участник № / Member № 1076
отправлено / posted
В пору сказать банальную фразу - "все гениальное - просто!". Осталось еще проверить эту идею. Спасибо!
Сообщения / Posts 26 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |