Ввод значений регистров

<< Click to Display Table of Contents >>

Navigation:  Modbus Universal MasterOPC Server > Быстрый старт > Пример 1 - проверка работы с симулятором >

Ввод значений регистров

ModRSSim настроен. Теперь введем в регистры значения, чтобы удостоверится что OPC сервер ведет опрос корректно. ModRSSim поддерживает написание скриптов на языке Visual Basic, например для генерации случайных значений (подробее см Автоматизация с помощью скрипта), но в данном примере мы будем осуществлять простой ручной ввод в регистры.

Изменить вручную значения нескольких регистров, а затем выполним их опрос из Modbus OPC сервера. Например, нам необходимо опросить 3 регистра:

1.Регион Holding Registers - адрес регистра 12 - тип данных word;

2.Регион Input Registers - адрес регистра 6 - тип данных float;

3.Регион Coils - адрес регистра 8 - тип данных bool.

Найдем эти регистры и введем в них значения.

1. Holding Registers.

Установим в настройках ModRSSim регион Holding Registers и тип данных word 16.

vvod_znachenij_registrov

Теперь нам нужно найти 12 регистр, и ввести в него значение.

В ModRSSim адреса регистров представлены в стандартном виде. Стандартный Modbus адрес, определяет номер используемой функции чтения, записи и адрес переменной. При стандартной адресации существует четыре области памяти:

Дискретные флаги (COILS): адреса 00001...09999, чтение функция 0x01, запись - функция 0x0F;

Дискретные входы (DISCRETE_INPUTS): адрес 10001...19999, чтение - функции 0x02;

Входные регистры (INPUT_REGISTERS): адрес 30001...39999, чтение - функция 0x04;

Хранимые регистры (HOLDING_REGISTERS): адрес 40001...49999, чтение - функция 0x03, запись - функция 0x10.

Для преобразования стандартного Modbus адреса, к представлению адресов OPC сервера (а также представлению в документации большинства Modbus устройств), необходимо выполнить следующее:

1.По первой цифре стандартного адреса определить регион, к которому принадлежит данный регистр;

2.Убрать из стандартного адреса первую цифру и вычесть единицу.

У нас задача обратная поэтому нужно прибавить к исходному адресу единицу и подставить соответствующий номер региона. В нашем случае 12 регистр это адрес 400013. Найдем его в таблице и выполним двойной щелчок мыши:

vvod_znachenij_registrov1

Откроется окно ввода - в него можно ввести значение. Для примера введет 50 и нажмем ОK - оно отобразится в таблице.

vvod_znachenij_registrov2

2. Input Registers

Выберем регион - Analog Input, а также установим тип данных - float 32.

vvod_znachenij_registrov3

Найдем 6 регистр - 300007 и выполним в него ввод дробного числа, например 12.25.

vvod_znachenij_registrov4

При этом в соседнем регистре также будут прописаны значения - это корректно, дело в том что Float переменная имеет размерность 4 байта, и поэтому занимает 2 Modbus регистра, в нашем случае регистры 6 (300007) и 7 (300008).

3. Coils

Переключимся на регион Coils. У данного региона тип данных всегда - bool. В таблице он представлен значения 0 (false) и 1 (true).

Найдем регистр 8 и введем в него 1 - то есть подадим сигнал True.

vvod_znachenij_registrov5

Задание значений в симуляторе закончено - можно приступить к конфигурированию OPC сервера.