Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Добрый вечер. Вопрос может банальный, но всё же: есть ПЛК и две ПР-ки. с одной плк читает переменную, в другую её пишет. Как писать переменную во вторую ПР только по её изменению? Какой триггер выбрать? Или сохранять в третьей локальной переменной состояние, сравнивать входящую и, если изменилась, то писать её с триггером "приложение"? и как это кстати делается с таким триггером?
Сделать можно как угодно, достаточно сравнить новую и записанную переменную, если изменилась, то выставить флаг на 1 цикл или 100-300 мс.
Только сегодня выложил ФБ для управления из 2 мест (сравнения переменных), вам надо сравнить одну переменную, значит ФБ можно сократить вдвое и прикрутить булевый флаг и триггер (таймер ТР), который включит триггер записи.
https://owen.ru/forum/showthread.php...st456513#11223
Последний раз редактировалось kondor3000; 04.02.2025 в 16:28.
выставить флаг - это с выбором триггера "передний фронт, получается". Как и в каких случаях писать переменную с триггером "приложение"?
Дополнение: и еще, если я прям из программы пишу значение в переменную напрямую, а слейва два - как объявлять тогда переменную, как правильно выбрать слейв? вот написал я "iSomeVar AT %QW0 : INT; - и как ПЛК догадается, в какой ПР она, если и в обоих слейвах есть такой канал?
Последний раз редактировалось TaPX; 05.02.2025 в 10:34.
Снимок экрана 2025-02-05 111702.png вот так я могу писать переменную в ПР по изменению? просто она так не доходит до ПР... Снимок экрана 2025-02-05 111711.pngСнимок экрана 2025-02-05 111717.png
Если вы записываете ПЛК мастером в два слейва, у слейвов разные адреса, значит надо сделать 2 слейва.
В двух слейвах сделайте два разных бита для записи по переднему фронту. Какой бит включите тот слейв и запишите.
ФБ вы просто скопировали половину ( и то не правильно), а бит записи с триггером не добавили.
Короче для начала сделайте просто запись по фронту бита. Проверьте, что она работает, записав бит руками.
Потом делайте запись по изменению, с выставлением бита записи.
Последний раз редактировалось kondor3000; 05.02.2025 в 15:20.
как писать по переднему фронту булевой команды, я разобрался, благодарю, всё получилось и пишется. Очень хочется понять, как работает триггер "приложение", и как писать переменные в слейвах с таким триггером в обоих вариантах: либо привязывая переменную из программы к входу, либо объявляя адрес хранения переменной с помощью "AT %..." - и в этом варианте актуален вопрос с двумя слейвами с одинаковыми именами каналов, как правильно выбрать нужный слейв
Последний раз редактировалось kondor3000; 05.02.2025 в 18:43.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk