Страница 1 из 2

Триггер на регистр

СообщениеДобавлено: 19 дек 2023, 21:59
IBAH
Панель МТ8051ip
Я так понимаю сделать триггер можно сделать только на битовую переменную?
Мне надо при изменении регистра выполнить макрос.
Ставлю триггера на каждый бит. один регистр 16 бит. Очень утомительно

Re: Триггер на регистр

СообщениеДобавлено: 19 дек 2023, 23:20
dimensy
В макросе отслеживайте изменение регистра и взводите триггер или вызывайте нужный макрос

Re: Триггер на регистр

СообщениеДобавлено: 19 дек 2023, 23:38
IBAH
Макрос может выполнятся с частотой 10Гц. А мне надо гораздо быстрее. Я транзитирую протокол

Re: Триггер на регистр

СообщениеДобавлено: 20 дек 2023, 06:57
dimensy
Не уверен, что триггер будет быстрее. Но ладно, попробуйте тогда завести значение регистра в журнал событий, а там уже по событию взводите триггер
А что значит транзитировать протокол?

Re: Триггер на регистр

СообщениеДобавлено: 20 дек 2023, 14:30
IBAH
Не хиляет. Там триггер только нас сравнение с константой. Да и все равно не покатит, журнал событий раком встанет.

Транзитирую протокол. Прокидываю некоторые регистры контроллера в панель следующего уровня по интерфейсу Модбас сервер RS485.
То есть панель у меня является избирательным шлюзом между контроллером и скадой следующего уровня

Re: Триггер на регистр

СообщениеДобавлено: 20 дек 2023, 14:35
AlexandrGr
А читаете вы регистры контроллера где и с какой частотой?

Re: Триггер на регистр

СообщениеДобавлено: 20 дек 2023, 15:05
IBAH
Да хз, драйвер определяет, пауза между запросами 10мс

как только значение нужного регистра изменилось, я его копирую макросом в область LW, и наоборот. Все замечательно, только на один регистр надо поставить 32 триггера. Если бы они к экселе редактировались, то нефиг делать, а через кнопочки тяжело, обязательно накосячу

Re: Триггер на регистр

СообщениеДобавлено: 20 дек 2023, 15:18
AlexandrGr
копирую макросом в область LW

Копируете откуда?

Удалено

СообщениеДобавлено: 20 дек 2023, 15:22
IBAH
Удалено

Re: Триггер на регистр

СообщениеДобавлено: 20 дек 2023, 15:24
IBAH
AlexandrGr писал(а):
копирую макросом в область LW

Копируете откуда?

Код: Выделить всё
macro_command main()
short a
short b
GetData(a, "MODBUS RTU (Zero-based Addressing)", "PresNasos", 1)
GetData(b, "Local HMI", "PresNasosLW", 1)
if a<>b then
  SetData(a, "Local HMI", "PresNasosLW", 1)
end if
end macro_command