Страница 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