Спасибо за идею. Получается, но не всё.
Выбираем событие старт, устанавливаем галочку, справа пишем название POU (например INIT), которое будет вызываться при событии СТАРТ. В самом POU пишем что нам надо.
Далее в PLC-PRG(CFC) вводим элемент с названием INIT. После изучения документации на библиотеку SysLibCallback получаем:
Event.jpg
Так и не понял: что такое dwFilter.
Всё компилируется и работает, однако при попытке изменения модбас переменной из конфигуратора, она снова принимает прежнее значение.
Коллеги: что делаю не так?
а зачем её где то еще добавлять, ПЛК стартует, наступает событие старт, выполняется единожды функция, где Вы не смотря на область объявления, присваиваете нужным переменным свои первоначальные значения и все.
загрузите прогу, после старта задайте какой-нибудь переменной отличное от начального значение, нажмите стоп потом старт и переменная должна обновится до первоначального
В том-то и дело, что функция почему-то не выполняется, ни единожды, ни циклически - вообще никак.а зачем её где то еще добавлять, ПЛК стартует, наступает событие старт, выполняется единожды функция
Что ещё нужно сделать помимоИли как правильно вызвать эту самую функцию?Выбираем событие старт, устанавливаем галочку, справа пишем название POU (например INIT), которое будет вызываться при событии СТАРТ. В самом POU пишем что нам надо.
Вроде всё правильно, а у меня не работает. Проект в студию:
П17_В27.rar
Отслеживаю модбас переменную PVent_Enable.
Целевая платформа выбрана PLC160-L.
Target.jpg
Как такового дублирования не происходит. При таком объявлении
никаких новых переменных не появляется - проверил по данным компиляции (Использовано данных: Энергонезависимых данных: )В 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 за помощь
А вот у меня что-то не получается с модулем Статистика. запускаю с реальным ПЛК, в онлайн вижу нулевые значения всех переменных. Что не так?
111129_StatisticsModule.jpg