и какой смысл в дублировании переменных?
Вид для печати
Спасибо за идею. Получается, но не всё.
Выбираем событие старт, устанавливаем галочку, справа пишем название POU (например INIT), которое будет вызываться при событии СТАРТ. В самом POU пишем что нам надо.
Далее в PLC-PRG(CFC) вводим элемент с названием INIT. После изучения документации на библиотеку SysLibCallback получаем:
Вложение 5033
Так и не понял: что такое dwFilter.
Всё компилируется и работает, однако при попытке изменения модбас переменной из конфигуратора, она снова принимает прежнее значение. :(
Коллеги: что делаю не так?
а зачем её где то еще добавлять, ПЛК стартует, наступает событие старт, выполняется единожды функция, где Вы не смотря на область объявления, присваиваете нужным переменным свои первоначальные значения и все.
загрузите прогу, после старта задайте какой-нибудь переменной отличное от начального значение, нажмите стоп потом старт и переменная должна обновится до первоначального
В том-то и дело, что функция почему-то не выполняется, ни единожды, ни циклически - вообще никак.Цитата:
а зачем её где то еще добавлять, ПЛК стартует, наступает событие старт, выполняется единожды функция
Что ещё нужно сделать помимоИли как правильно вызвать эту самую функцию?Цитата:
Выбираем событие старт, устанавливаем галочку, справа пишем название POU (например INIT), которое будет вызываться при событии СТАРТ. В самом POU пишем что нам надо.
Вроде всё правильно, а у меня не работает. Проект в студию:
Вложение 5043
Отслеживаю модбас переменную PVent_Enable.
Целевая платформа выбрана PLC160-L.
Вложение 5044
Как такового дублирования не происходит. При таком объявлении
никаких новых переменных не появляется - проверил по данным компиляции (Использовано данных: Энергонезависимых данных: )Цитата:
В Global_Variables(RETAIN) задаю переменную с таким же адресом уже с начальным значением
Поскольку событие СТАРТ у меня почему-то не работает, остаётся действовать таким способом (пост #30).
:) не сдавайтесь, в конфигурации ПЛК есть еще модуль статистика, а там битовый канал "Power Status", его привязываете к такому кодугде rtg - это R_TRIG,а INIFUN та функция где устанавливаете первоначальные значенияЦитата:
rtg(CLK:=power_status);
IF rtg.Q THEN INIFUN(0,0,0); END_IF
Загадка разрешилась. EVENT_START и POWER_STATUS работают.
Ключик: режим эмуляции нужно убрать. Работает только с реальным контроллером (online)!
Спасибо capzap и swerder за помощь :)
А вот у меня что-то не получается с модулем Статистика. запускаю с реальным ПЛК, в онлайн вижу нулевые значения всех переменных. Что не так?
Вложение 5117