PDA

Просмотр полной версии : Связи ПЛК110 [M02] с модулями ввода-вывода М110 (диагностика обрыва, групповой обмен)



FPavel
12.05.2022, 14:26
Здравствуйте, уважаемые специалисты.

Посоветуйте, пожалуйста, по связи с модулями ввода вывода.

Имею конфигурацию: ПЛК110-32 [M02], три модуля ввода-вывода М110 (дискретный ввод, аналоговый ввод, аналоговый вывод).
Связь между ПЛК и модулями через порт RS485-1 (клеммы) по ModBus организована при помощи "конфигурации ПЛК".

Возникли вопросы:

1. Чтение аналоговых входов из модулей настроено по 1 одному Real регистру функцией ModBus 0x03. Через "конфигурацию" возможно чтение группы регистров функцией 0x04?

2. Как обнаружить обрыв связи? По LastError <> 0? Сразу останавливать техпроцесс или подождать 1-2 секунды? Сброс аварии - автоматический или программа должна записать 0?

3. Для такого количества модулей насколько критично по времени будет работать через "конфигурацию"? Или нужно пересилить себя и организовать обмен при помощи библиотек подобных modbus.lib?

4. На ftp-сервере https://ftp.owen.ru/CoDeSys23/05_Library/ последняя и безошибочная версия библиотеки? У меня на компе она ещё 2009 г.

5. Какую скорость лучше поставить для устойчивого обмена 115200/57600/38400?

6. И ещё, при чтении примеров обмена с модулями увидел необычный код, компилирующийся без ошибок, но непонятный по смыслу.
В конфигурации ПЛК объявлен модуль ModBus Master, ниже UMB, содержащий какой-то регистр ввода или вывода, с именем out7. В исходнике на ST встречаются строки, состоящие только из имени этого регистра

out7;Что выполняется в этой строке?

YuriBel
12.05.2022, 15:20
Касательно группового обмена, поищите тему про чтение/запись группы регистров через элемент String. В зависимости от типа вашего аналогового модуля можно все параметры (или как минимум половину) получить одним запросом.
Насколько критично использование конфигурации зависит от задачи, которую вы решаете.

kondor3000
12.05.2022, 15:40
Чтение, запись группы регистров с применением String выкладывал petera https://owen.ru/forum/showthread.php?t=22915&page=40&p=244022&viewfull=1#post244022
Здесь, в последнем сообщении мой пример опроса модуля МВ110 8А с применением String https://owen.ru/forum/showthread.php?t=35094
3 модуля через String будет опрашивать быстро. Скорость 115200, если не очень длинная линия связи, линия с экраном и нет сильных помех, например от частотников.
По LastError <> 0 можно определить потерю связи, а что делать дальше зависит от тех. процесса уже. Например модуль дискретных выходов можно перевести в безопасный режим, снять задачи нагрузки и (или) включить Стоп.
Переменная out7 просто выведена в программу, в работе будет показывать значение.

FPavel
12.05.2022, 16:09
Спасибо.

Попробую групповым запросом через String. Упоминание о таком способе встречал, но было ощущение, что это рекомендация предположительного характера. Теперь в примере увижу детали. Как только в руках окажется модуль ввода - проверю. Теперь уверен, что получится.

Линия связи короткая - ПЛК и модули плотно друг к другу, т.е. линии связи не более 200 мм. Единственно, в том же шкафу разместили три маленьких (5,5 кВт) частотника. Про связь через "конфигурацию" видел сообщение на форуме, что не будет превышать 38400, а 115200 - только программно с библиотекой modbus.lib. Вероятно, буду пробовать 38400.

А про вывод переменной в программу - не уяснил.

Спасибо за ссылки - вряд ли сам стал искать в мегатеме на 200+ страниц. Спасибо.

kondor3000
12.05.2022, 16:15
А про вывод переменной в программу - не уяснил.


Автору наверно так удобнее было, смотреть нужное в одном месте, не открывая много экранов.
Для той же цели существует Менеджер просмотров в "ресурсы " CodeSys 2, здесь 3 сообщение по этому вопросу https://owen.ru/forum/showthread.php?t=10555&page=878&p=380405#post380405

FPavel
12.05.2022, 16:32
Да, может быть, программисту было так удобнее. Удивляет компилятор, позволяющий бессмысленную с точки зрения выполняемого действия строку.

Cs-Cs
12.05.2022, 16:56
Такс... про групповой опрос вот была сборная тема (там есть разные примеры от участников форума): https://owen.ru/forum/showthread.php?t=35094
Про контроль связи ищу тему, я кому-то свой концепт рассказывал: https://owen.ru/forum/showthread.php?t=35768
Скорость обмена зависит от длины линии и того, как и чем она смонтирована. Если ПЛК и модули стоят в одном щите (шкафу), то надо использовать специальный кабель для RS-485 и ставить скорость 115 200. Если модули вынесены куда-то - то нужен ещё более качественный кабель и снижать скорость. Я ставлю опыты на 38 400 на одном объекте (у меня обычно все модули IO внутри щита).

FPavel
12.05.2022, 19:19
Спасибо. И за идею Ошибка+Серия ошибок, и за оценки для параметров времени.

Сейчас у меня только ПЛК, а модули в щите на объекте, реально опробовать смогу через несколько недель. Но хорошая идея пригодится.

Cs-Cs
12.05.2022, 19:32
FPavel Пожалуйста, на здоровье!
Сама реакция на ошибки должна уже зависеть от твоей логики: может работу станка остановить, может уйти в аварию, может переключиться на запасной датчик, может ещё что-то.