Работа с библиотекой блоков Modbus RTU

Для ознакомления с основными возможностями библиотеки в качестве слейв-устройства используется источник питания MAISHENG WSD-6050.

Модель

Рассмотрим модель:

open_system('ritmdemo_block_modbusRTU')

Соединение с сервером Modbus устанавливается при помощи блока Modbus RTU Setup. Его параметры следующие:

Из настроек видно, что устанавливается связь по порту ttyS2, задается скорость приемопередачи равная 115200 бод. Бит четности, биты данных и стоповые биты задаются в соответствии с требованием слейв-устройства. Данному соединению присваивается внутренний идентификатор 1. В дальнейшем, данный идентификатор будет использоваться в блоках чтения и записи, например, в блоке Modbus Write Registers:

К примеру рассмотрим область Write Multiple Registers. В этой области, выход “Статус” блока чтения регистров подается на подсистему “Обработка ошибки соединения”.

Назначение этой подсистемы - отслеживать статус операции. Если статус операции равен -1, то блок Assertion выдаст предупреждение. Применяя такую конструкцию моделирования, можно останавливать исполнение модели при длительном обрыве соединения.

Моделирование

До начала записи каких-либо данных на слейв-устройство можно заметить, что его регистры, предназначенные для записи, не содержат никаких значений:

Для демонстрации записи данных на слейв-устройство установим значение желаемого выходного напряжения на блоке Input Voltage, которое будет передано в блок Modbus Write Registers в качестве данных для записи по адресу 0x0040:

На экране слейв-устройства наблюдаем записанное значение напряжения:

Чтение данных со слейв-устройства происходит при помощи блока Modbus Read Registers. В параметрах блока указываем адрес, в котором находятся интересующие нас данные:

В модели на блоке Voltage setting наблюдаем считанное значение напряжения со слейв устройства: