Алексей КИПОВЕЦ
Как делаю я в связке Панель-мастер\ПЛК-слейв:Вот только подскажите как сделать проверку этих ключевых переменных на 0 и запись в них безопасных значений? Хотя бы пример приведите, а то пока с таким не сталкивался.
1. Все переменные, объявленные в соответствующем порту ПЛК-слейв по умолчанию являются ретайн.
2. При перепрошивке\сбросе ПЛК они теряются, т. е. сбрасываются в нули (но остаются при выключении\включении ПЛК).
3. Для того, что бы избежать запуска установки\машины с неправильными (нулевыми) уставками\параметрами делаю проверку следующим образом:
В ПЛЦ_ПРГ:
---Код:var init:bool; (*Флаг первичной инициализации, при включении ПЛК он всегда FALSE. Обычная BOOL-переменная*) end_var
-------Код:(*В самом начале ПЛЦ_ПРГ*) IF NOT init THEN (*Если init не TRUE, то делаем далее*) FirstInit(); (*Вызов программы первичной проверки и инициализации*) init:=TRUE; (*Присваиваем TRUE, что бы больше не было вызова FirstInit до следующего перевключения\перезагрузки ПЛК*) END_IF; IF RecoveryFlag THEN (*Переменная BOOL GLOBAL*) ==Делаем вызов всплывающего окна с предупреждением о сбросе значений переменных к значениям по умолчанию== ==Сбрасываем RecoveryFlag в FALSE по подтверждению и закрытию окна== END_IF;
Создаем ПОУ FirstInit на ST
В секции VAR переменные не нужны, т. к. все используемые переменные, объявленные в соответствующем порту ПЛК-слейв по умолчанию являются так же и GLOBAL
----
-------Код:PROGRAMM FirstInit (*Тело программы*) IF Var1=0 AND Var2=0 AND Var3=0 THEN (*Var1..Var3 - переменные, объявленные в соответствующем порту ПЛК-слейв, которые по логике работы установки по определению НЕ могут иметь нулевое значение. Обычно нескольких переменных достаточно, что бы понять, что произошел сброс в нули всех переменных в регистрах ПЛК-слейв*) Var1:=*некое безопасное значение 1*; Var2:=*некое безопасное значение 2*; . . VarN:=*некое безопасное значение N*; RecoveryFlag:=TRUE; (*Флаг факта сброса значений переменных в значения по умолчанию. Можно использовать для вызова всплывающего окна на Панели с предупреждением и квитированием(закрытие окна и сброс флага*) END_IF;
Преимущества данного способа:
1. Все сохраняемые переменные находятся в одном месте, что удобно при отладке на реальной установке.
2. При потере связи с Панелью ПЛК работает со значениями переменных, оставшихся в регистрах на момент потери связи.
3. Функции Панели сокращаются только до отображения и изменения переменных, т. к. всю математику (масштабирование и пр) можно делать в ПЛК.
---
Не претендую на идеологическую правильнось и кошерность, просто делюсь опытом, который применял на практике.




Ответить с цитированием