PDA

Просмотр полной версии : Связь СП307Р с МВ210 - 202



Евгений_М
13.04.2021, 16:28
Добрый день! Помогите пожалуйста. Панель в связке с модулем обрабатывают сигнал с 2х энкодеров. Модуль считает импульсы, панель через макрос обрабатывает результаты. Все вроде бы хорошо, но нужно чтоб с одной кнопки, реализуемой на панели, обнулялись счетчики в модуле. Для этого нужно записать 1 в регистр модуля. Хотел реализовать обнуление через макрос используя функцию write(), но почему то не получается. Вроде как вообще не пишет в 226 и 227 регистр модуля ничего. Может кто подскажет как реализовать? Просто организовав кнопку как графический элемент и обратившись в регистр модуля 226 функцией 4х получается, но это одна кнопка один регистр, а надо 2 регистра....:confused::confused:

glazastik
13.04.2021, 16:38
Функциональной кнопкой? Добавить туда запись регистра 226 и запись регистра 227

Евгений_М
13.04.2021, 16:41
А можно подробнее как функциональной кнопкой писать в 2 регистра одновременно?? Там в окне настроек устанавливается 1 регистр или динамический адрес...

glazastik
13.04.2021, 16:57
54505
вроде просто

Евгений_М
13.04.2021, 17:18
Спасибо большое. Вопросов больше нет, в начале затупил, признаю...:)

Евгений_М
13.04.2021, 17:21
А по макросам не проконсультируете, почему не получается функцией write() запись в регистр? Может какие особенности у функции? Почему с кнопки работает а с макроса нет?

Евгений_М
13.04.2021, 17:22
Функцией reads() успешно читаю с этого же модуля...

Евгений Кислов
13.04.2021, 17:23
А по макросам не проконсультируете, почему не получается функцией write() запись в регистр? Может какие особенности у функции? Почему с кнопки работает а с макроса нет?

Выложите код вашего макроса, пожалуйста.

Евгений_М
13.04.2021, 17:52
Только завтра, я уже не на работе...

Евгений_М
14.04.2021, 17:32
Вообщем пытался записать так, по ряду причин картинку или весь макрос скинуть не могу, но остальное к делу не имеет значение...
Write(NET_0, 1,MODBUS_TCP_BIT_4X, 226, 0, TYPE_BIT, 1);

и такой вариант пытался:
BOOL int = 1;
Write(NET_0, 1,MODBUS_TCP_BIT_4X, 226, 0, TYPE_BIT, int);

Если тип WORD, то как....

Евгений Кислов
15.04.2021, 08:17
Нужно использовать вот такой код:

Write(NET_0, 1, MODBUS_TCP_REG_4X, 226, 0, TYPE_WORD, 0);