PDA

Просмотреть полную версию : Флаг наличия связи, или как присвоить значение переменной из HoldingReg?


Dima P.
12.01.2018, 10:59
В проекте есть переменная Flag (созданная как "Вход", в переменных ModBus расположена в зоне HoldingReg).
Удаленный Master постоянно записывает в нее 1. Идея в том, чтобы в проекте SMLogix проанализировать ее значение, а затем сбросить в ноль. Если при следующем анализе Flag == 1, значит связь с мастером есть. Если по прошествии времени она осталась в нуле, значит связи нет.

Вопрос: как присвоить этой переменной значение 0?

Контроллер SMH2010.

Arsie
12.01.2018, 11:15
В проекте есть переменная Flag (созданная как "Вход", в переменных ModBus расположена в зоне HoldingReg).
Удаленный Master постоянно записывает в нее 1. Идея в том, чтобы в проекте SMLogix проанализировать ее значение, а затем сбросить в ноль. Если при следующем анализе Flag == 1, значит связь с мастером есть. Если по прошествии времени она осталась в нуле, значит связи нет.

Вопрос: как присвоить этой переменной значение 0?

Контроллер SMH2010.

Эта задача решается переменной HeartBeat - Сердцебиение. Удалённый мастер постоянно записывает в неё инкрементирующееся значение. Если значение меняется (сердце бьётся), значит связь жива. Если сердце остановилось, значит её нет. По равномерности инкремента также можно судить о качестве связи.

Также эта задача решается с помощью анализа активности на порту. Если мастер вообще хоть какие-то запросы шлёт, значит связь есть. Блок Device(link).

Dima P.
12.01.2018, 13:23
Спасибо за оперативный ответ. Блок Device(link) - как раз то, что мне надо.

А если, условно, я бы захотел реализовать так, как описал выше, смог бы я из проекта изменить такую переменную? Это вообще возможно?

Gromov
12.01.2018, 13:35
В trim5 и smh4 это точно возможно. Для smh2010 в условиях smlogix не получится так просто взять и изменить входную переменную modbus.