А также:

4. Модули

Модули ввода-вывода WAGO

Q: Какую информацию несет в себе заказной номер модуля?
A [М. Ананских]: Заказной номер имеет вид 75X-YZZ/MMM-NNN. Первые три цифры (75X) указывают номер серии, 750 (обычный) или 753 (со съемным клеммником). Первая цифра после дефиса (Y) указывает на тип модуля: 3 - каплер, 4 - входной модуль, 5 - модуль вывода, 6 - специальный или системный, 8 - контроллер и 9 - аксессуары. При этом, последние две цифры до косой черты (ZZ) уточняют тип модуля. Так, номера от 400 до 449 - дискретные входы, от 450 до 499 - аналоговые входы, от 500 до 549 - дискретные выходы, от 550 до 599 - аналоговые выходы, от 600 до 649 - системные модули и от 650 до 699 - специальные модули. Цифры, следующие после косой черты, определяют вариант модуля, причем в случае базового варианта (XXX-YZZ/000-000) косая черта и цифры после неё обычно не пишутся. Цифры до дефиса (MMM) задают специальное исполнение модуля. Так, 003 означает возможность настройки параметров, а 025 - расширенный температурный диапазон (от -20 до +60 градусов). Цифры после дефиса (NNN) задают конфигурацию модуля (например, тип характеристики термопары).

3.1 Коммуникационные модули

Q: Нестабильный обмен по Modbus RTU через 750-653/003-000, свободно конфигурируемый модуль RS-485. При использовании Modbus RTU Master (из библиотеки Modb_I05.lib) не могу побороть проблемы обмена по Modbus RTU. Постоянная ошибка 153. Есть какие-то особенности использования данной библиотеки, точнее функции Modbus Master RTU?

A [А. Барбот]: Возможно, дело в отсутствии continuous sending настройки модуля (через WAGO-IO-Check). После ее включения обмен пойдет успешнее.

A [М. Ананских]: Эта настройка включает режим буферизации при передаче данных модулем. Без неё возникают задержки между передачей отдельных байтов, что воспринимается узлами как ошибка согласно протоколу Modbus RTU. Со стороны контроллера WAGO, это выглядит как отсутствие ответа от ведомого узла на посланный ему запрос. По умолчанию эта настройка отключена. Рекомендуется включать данную опцию. После установки с помощью WAGO I/O CHECK она сохраняется в NVRAM модуля. Все сказанное  касается и 750-650/003-000.

Есть пример с подробным описанием нужных настроек.


Q: Как правильно подключить к модулю 750-650 (RS-232) другой контроллер или компьютер? Как подключить к нему обычный или GSM модем?

A [М. Ананских]: Методика подключения контроллера с помощью модуля 750-650 к компьютеру описана в руководстве A100700 (к сожалению, только на немецком языке). Для успеха важно понимать назначение основных сигналов интерфейса RS-232. В нем устройства делятся на два типа: DTE (оконечные устройства, например, компьютер или контроллер), которые передают и принимают данные, и DCE (коммуникационные устройства, такие как модем), с помощью которых эти данные передаются. Для обмена данными используются сигналы RxD (принимаемые данные) и TxD (передаваемые данные). При этом для DTE сигнал RxD является входным, а TxD - выходным, а для DCE их назначение обратно. Это позволяет подключать DCE к DTE прямым кабелем. Для соединения двух DTE между собой используется перекрестный кабель, в котором RxD одного устройства соединен с TxD другого, и наоборот.

Для соединения с компьютером нужно сигнал TxD (передача) модуля 750-650 соединить с RxD (контакт  2 разъема DB-9F) компьютера, а RxD модуля с TxD (контакт 3) компьютера, и соединить Common (общий) c GND (контакт 5). Контакты RTS и CTS лучше всего соединить между собой перемычкой, отключив аппаратное согласование связи в компьютере.

Два модуля 750-650 соединяются крест-накрест: TxD - RxD, RxD - TxD, RTS - CTS, CTS - RTS (последние два провода можно заменить перемычками с обеих сторон), Common - Common.

Модем подключается к 750-650 напрямую: TxD - TxD (контакт 3), RxD - RxD (контакт 2), Common - GND (контакт 5), RTS - RTS (контакт 7) и CTS - CTS (контакт 8).


Q: Сколько коммуникационных модулей одновременно может быть подключено к одному контроллеру? Означает ли размер выходного буфера в 16 байт ограничение на максимальную длину посылки?

A [М. Ананских]: Теоретически, можно было бы подключить до 64 модулей, а к 32-разрядным контроллерам даже больше. Однако не все так просто.

Дело в том, что каждый модуль передает по одному слову за один цикл шины K-bus. Для того, чтобы передать второе слово, организуется дополнительный цикл шины. Чем больше модулей, тем большее время требуется для их опроса. Так, при использовании контроллера 750-842 с одним модулем 750-650, для обновления данных этого модуля потребуется 630 микросекунд. Это значит, что мы сможем записывать данные в выходной буфер и считывать данные из входного буфера со скоростью не выше, чем 3 байта за 630 мкс. Конечно, нужно еще добавить сюда время выполнения пользовательской программы.

А вот если взять 63 таких модуля (плюс один оконечный), время обновления будет уже 4350 микросекунд. При скорости обмена 9600 бит/с, новый байт во входной буфер может поступать примерно каждую миллисекунду. Значит, при таком количестве модулей есть реальный шанс, что входной буфер переполнится! Выходной буфер, наоборот, будет опустевать раньше, чем мы передадим в него следующие три байта. Из-за этого будут наблюдаться перерывы между байтами в сообщении, что некоторыми протоколами обмена (например, Modbus RTU) трактуется как ошибка.

Таким образом, размер выходного буфера в 16 байт влияет не на максимальную длину посылки, а на скорость обмена.


Q: Может ли контроллер WAGO отправлять и принимать SMS?

A: Да, при помощи коммуникационного модуля 750-650 и GSM-модема. Для этого есть библиотека SMS_01.lib. Правда, она не поддерживает сообщения на русском языке. К ней есть документация на английском и пример.


Q: Как включить опцию "Continuous send" у неконфигурируемого коммуникационного модуля (не /003-000)?

A: [М. Ананских] Официально - никак. Но есть обходной путь.


3.2 Модули аналогового ввода

Q: На модуль ввода сигналов с термопар (750-469) подал на вход 0 mV (закоротив контакты), однако контроллер считывает значение 23..25 градусов.
A: Все верно, 0 mV означает температуру, равную температуре холодного спая термопары. Датчик температуры холодного спая установлен внутри модуля.

Q: Как работать с модулем измерения мощности 750-493? Есть ли для него специальная библиотека, и где её найти?

A [М. Ананских]: С модулем можно общаться через его регистры, как и со всеми другими модулями. Описание регистров дано в документации  на модуль. Однако проще воспользоваться готовой библиотекой PowerMeasurement_02.lib, поскольку для неё имеется готовый пример.

Q: Нам нужно измерять мощность (ток и напряжение) не трехфазного, а трех однофазных источников. Можно ли это сделать с помощью модуля 750-493?
A [М. Ананских]: Да, можно, если у этих источников общая нейтраль. С модуля можно получить RMS значения токов и напряжений, которые можно использовать для вычисления мощностей.

3.3 Специальные модули

Q: Пример Example_Enocean.pro не работает с библиотекой Enocean_04.lib, не инициализируется блок FbEnoceanReceive.

A [А. Барбот]: Проблема решается обновлением прошивки контроллера (750-841). Новая прошивка FW14. Старая FW10. Предположительно не работает на FW<11. Проверено, работает на FW14.


Q: Сколько модулей управления шаговыми двигателями можно использовать в одном узле ввода-вывода?
A [Mark DeCramer]: Количество модулей управления шаговыми двигателями зависит от используемого каплера/контроллера. 32-разрядные контроллеры WAGO поддерживают до шестнадцати модулей 750-67X на один узел. 16-разрядные контроллеры WAGO обычно ограничены тремя модулями на узел.