Страница 127 из 250

Re: EasyBuilder - Скорая помощь новичкам

СообщениеДобавлено: 19 июн 2020, 11:32
fomindanil
Здравствуйте, такой вопрос, можно ли нажатием кнопки менять часть элементов на экране, например чтобы одни объекты исчезали, а другие появлялись. Но чтобы это все было на одном окне, чтобы окно не менялось.

Re: EasyBuilder - Скорая помощь новичкам

СообщениеДобавлено: 19 июн 2020, 16:40
pkl58
Можно, но не все элементы.

Re: EasyBuilder - Скорая помощь новичкам

СообщениеДобавлено: 19 июн 2020, 17:38
8bit
fomindanil писал(а):Здравствуйте, такой вопрос, можно ли нажатием кнопки менять часть элементов на экране, например чтобы одни объекты исчезали, а другие появлялись. Но чтобы это все было на одном окне, чтобы окно не менялось.


В свойствах элемента на вкладке "Безопасность" можно задать регистр для управления видимостью объекта
hide-show.png
hide-show.png (15.13 КБ) Просмотров: 6054

Re: EasyBuilder - Скорая помощь новичкам

СообщениеДобавлено: 25 июн 2020, 12:48
Роман
Здравствуйте.
Разбираюсь с панелью MT8051iP

Сейчас одна панель выполняет функцию сервера ModBus Rtu. К ней подключается несколько таких же панелей в режиме slave.
Возник вопрос: как проконтролировать что slave-панели подключены?
Если пытаться читать регистры из slave-панелей по модбасу в макросе, то макрос зависает, если slave-панель не отвечает/выключена.

С уважением,
Роман

Re: EasyBuilder - Скорая помощь новичкам

СообщениеДобавлено: 26 июн 2020, 09:16
8bit
Роман писал(а):Здравствуйте.
Разбираюсь с панелью MT8051iP

Сейчас одна панель выполняет функцию сервера ModBus Rtu. К ней подключается несколько таких же панелей в режиме slave.
Возник вопрос: как проконтролировать что slave-панели подключены?
Если пытаться читать регистры из slave-панелей по модбасу в макросе, то макрос зависает, если slave-панель не отвечает/выключена.


покажите код макроса, который зависает при неотвечающем slave

Re: EasyBuilder - Скорая помощь новичкам

СообщениеДобавлено: 26 июн 2020, 09:54
Роман
8bit писал(а):покажите код макроса, который зависает при неотвечающем slave


Код: Выделить всё
i = 0
   while i < nmb_slave
   i = i + 1
   var0 = i + 1
   SetData(var0, "Local HMI", LW, 10000, 1)
   GetData(P_max_tmp, "MODBUS RTU (Adjustable)", 4x, var0#31, 1)
   GetError(err)
   if err == 0 then
      P_max[i] = P_max_tmp
   else
      fl_err = 1
   end if
wend

Re: EasyBuilder - Скорая помощь новичкам

СообщениеДобавлено: 26 июн 2020, 13:19
АЛМ
В строке

GetData(P_max_tmp, "MODBUS RTU (Adjustable)", 4x, var0#31, 1)

Попробуйте заменить

GetData на GetDataEx

Re: EasyBuilder - Скорая помощь новичкам

СообщениеДобавлено: 26 июн 2020, 13:24
Роман
АЛМ писал(а):В строке

GetData(P_max_tmp, "MODBUS RTU (Adjustable)", 4x, var0#31, 1)

Попробуйте заменить

GetData на GetDataEx


Спасибо! По неопытности не доглядел.

Re: EasyBuilder - Скорая помощь новичкам

СообщениеДобавлено: 26 июн 2020, 16:59
8bit
Роман писал(а):
АЛМ писал(а):В строке

GetData(P_max_tmp, "MODBUS RTU (Adjustable)", 4x, var0#31, 1)

Попробуйте заменить

GetData на GetDataEx


Спасибо! По неопытности не доглядел.


в примере modbus сервер висит на COM3, поэтому и регистры для COM3
1) можно мониторить раз в 2-3 секунды и знать наличии хотя бы одного клиента:
- системный бит LB-9057 (MODBUS сервер (COM 3) получает запрос)
- системное слово LW-9574 (Число полученных данных в байтах)
- системное слово LW-9280 (Код функции запроса)
- системное слово LW-9282 (Количество регистров в запросе)
GetDataEx_04.png
GetDataEx_04.png (32.63 КБ) Просмотров: 5983

Системные регистры касательно modbus сервера описаны в главе 22.3.12 Руководства пользователя EasyBuilder

2) Функция GetDataEx (описание в мастере функций + страница 597 Руководства пользователя EasyBuilder глава 18.7.2 Функции ПЛК)
GetDataEx.png
GetDataEx.png (9.06 КБ) Просмотров: 5983


"Receives data from the PLC and continues executing next command even if there’s no response from this device."
"Получает данные от ПЛК и продолжает выполнять следующую команду, даже если от этого устройства нет ответа."

Re: EasyBuilder - Скорая помощь новичкам

СообщениеДобавлено: 26 июн 2020, 17:45
8bit
Роман писал(а):Здравствуйте.
Разбираюсь с панелью MT8051iP

Сейчас одна панель выполняет функцию сервера ModBus Rtu. К ней подключается несколько таких же панелей в режиме slave.
Возник вопрос: как проконтролировать что slave-панели подключены?
Если пытаться читать регистры из slave-панелей по модбасу в макросе, то макрос зависает, если slave-панель не отвечает/выключена.

С уважением,
Роман


еще алгоритмически можно: заставить кажого slave писать инкремент в свой регистр мастера
например: slave1 -> LW-101, slave2 -> LW-102, slave3 -> LW-103
и уже в макросе следить за этими LW и видеть изменения или их отсутствие уже по каждому slave'у