Вход

Просмотр полной версии : отслеживание изменения переменной



ВладиславВладимирович
28.06.2026, 20:36
Добрый день, коллеги!

Есть ли какое-то стандартное(библиотечное) решение для отслеживания изменения переменной числового типа (не бул).
Нужно в тот момент когда оператор изменяет значение типа ворд на СП310, в ПЛК200 вывешивать флаг на запись в слейв устройство гарантированно не пропустив фронт.
Опрашивать по времени не вариант - линия рс485 у плк очень нагружена, получается долго.

kondor3000
28.06.2026, 21:20
Это пишется на ST без проблем, под любой нужный финт, например при изменении WORD, на 1 цикл выставляется флаг


function_block Sel_I // Sel_I
var_input
I1 : WORD;
end_var
var_output
Q : bool;
end_var
var
I_1 : WORD;
end_var
___________________________________

Q:=I_1<> I1;
I_1:= I1;

Сергей0308
28.06.2026, 21:23
Добрый день, коллеги!

Есть ли какое-то стандартное(библиотечное) решение для отслеживания изменения переменной числового типа (не бул).
Нужно в тот момент когда оператор изменяет значение типа ворд на СП310, в ПЛК200 вывешивать флаг на запись в слейв устройство гарантированно не пропустив фронт.
Опрашивать по времени не вариант - линия рс485 у плк очень нагружена, получается долго.

Даже в самом бюджетном устройстве(ПР) имеется запись по изменению, странно, если такого нет в более дорогих устройствах!

ВладиславВладимирович
28.06.2026, 22:08
Да, сначала сам сделал такую штуку, но значения почему-то не всегда записываются в конечное устройство.
Добавил блинк с активацией по таймеру - стало работать надежно, но думал, что, возможно, есть какой-то вариант без изобретения велосипедов.

ВладиславВладимирович
28.06.2026, 22:09
Забавно, но, вроде, нет. Во 2м кодесисе было, а теперь нет:)

Валенок
28.06.2026, 23:15
Вообще не понятно - кто что где отслеживает и кто кем является по отношению друг другу. Какая невнятная абстракция какие-то блинки

EFrol
29.06.2026, 07:55
А чё? В СП3xx бит уведомления уже не работает?
89679

ВладиславВладимирович
29.06.2026, 14:11
Пока не разобрался как это должно правильно работать. При первом изменении в вполе ввода, соответствующий бит уведомления зависает в тру и больше не переходит в фолс. Соответственно пока не получилось получить желаемый эффект, запись происходит один раз. Возможно, его нужно самому как-то обнулять?

pppppppo_98
29.06.2026, 14:59
Пока не разобрался как это должно правильно работать. При первом изменении в вполе ввода, соответствующий бит уведомления зависает в тру и больше не переходит в фолс. Соответственно пока не получилось получить желаемый эффект, запись происходит один раз. Возможно, его нужно самому как-то обнулять?

Ну поставьте передний фронт (R_TRIG) на первичный сигнал и будет тебе счастье. Не щабудь только что распознование переднего фронта отстает на один такт, и длительность тоже один такт