Спасибо за наводку!
Пошло!
Front_R(CLK:=IN);
IF Front_R.Q THEN
OUT := NOT OUT;
END_IF
Не додумался до NOT
Вид для печати
vsa Тебе нужен R_TRIG, который ты поставишь на вход импульсов, чтобы он отрабатывал ОДИН раз, когда на входе TRUE.
А потом пишешь банально так: OUT := NOT OUT;
(всё-таки накидал код)
Код:FUNCTION_BLOCK T_TRIG
(* Copyright © 2024 Cs-Cs.Net Laboratory & Studio https://cs-cs.net *)
VAR_INPUT
Trig : BOOL := FALSE;
END_VAR
VAR_OUTPUT
Out : BOOL := FALSE;
END_VAR
VAR
fbRTrig : R_TRIG;
END_VAR
fbRTrig(CLK:= Trig);
IF (fbRTrig.Q) THEN
Out := NOT Out;
END_IF
Проблема с ПЛК 73. Почему-то modbus возвращает функцию на чтение регистра сам в себя. На картинке normal_receive нормальный ответ от устройства, а на картинке это фукнция modbus, которая идет от ПЛК к устройству. Из-за этого данные скачут, вне зависимости от проверок. Вложение 82077Вложение 82078Вложение 82079
Писал код по примеру от разработчиков к библиотеке Modbus. Сам заметил что флаг complete не устанавливается. Но, к сожалению, не могу понять почему. Можете, пожалуйста, подсказать как он работает или указать на какой-либо пример?Цитата:
С кодом.