4.1.4.3. Modbus
|
Модуль
|
Описание
|
|
Коммуникационный модуль для опроса данных по протоколу Modbus TCP
| |
|
Коммуникационный модуль для опроса данных по протоколу Modbus RTU
| |
|
Коммуникационный модуль для передачи данных по протоколу Modbus TCP
| |
|
Коммуникационный модуль для передачи данных по протоколу Modbus RTU
|
Адресное пространство
Адресное пространство протокола Modbus представляет собой 4 сегмента памяти.
|
Сегмент
|
Описание
|
Размер
|
Чтение/Запись
|
|
Discrete Inputs
|
дискретные входы
|
одиночный бит
|
чтение
|
|
Coils
|
ячейки
|
одиночный бит
|
чтение и запись
|
|
Input Registers
|
входные регистры
|
16-битное слово
|
чтение
|
|
Holding Registers
|
регистры хранения
|
16-битное слово
|
чтение и запись
|
Доступ к элементам каждого сегмента осуществляется с помощью 16-битной адресации. При такой адресации, каждый из четырех сегментов может вмещать до 65536 элементов (адресов).
Типы данных
Для работы с данными в рамках протокола Modbus реализованы протокольные типы данных:
|
Протокольный тип
|
Тип
значения
|
Направление передачи
|
Описание
|
|
TS
|
bool
|
Slave → Master
|
Телесигнализация
|
|
TC
|
bool
|
Master → Slave
|
Телеуправление
|
|
TM2
|
int2/uint2
|
Slave → Master
|
Телеизмерение
|
|
TMF4
|
float
|
Slave → Master
|
Телеизмерение
|
|
TMC
|
int4/uint4
|
Slave → Master
|
Телесчет
|
|
TMF8
|
double
|
Slave → Master
|
Телеизмерение
|
|
TM2_TIME
|
int2/uint2
|
Slave → Master
|
Телеизмерение c меткой времени
|
|
TMF4_TIME
|
float
|
Slave → Master
|
Телеизмерение c меткой времени
|
|
TMC_TIME
|
int4/uint4
|
Slave → Master
|
Телесчет c меткой времени
|
|
TMF8_TIME
|
double
|
Slave → Master
|
Телеизмерение c меткой времени
|
|
TR2
|
int2/uint2
|
Master → Slave
|
Телерегулирование
|
|
TRF4
|
float
|
Master → Slave
|
Телерегулирование
|
|
TR4
|
int4/uint4
|
Master → Slave
|
Телерегулирование
|
|
STR
|
string
|
Slave → Master
|
Телеизмерение
|
|
STR-COMMAND
|
string
|
Master → Slave
|
Телерегулирование
|
Чтобы выбрать протокольный тип для работы с определенным сегментом памяти воспользуйтесь таблицей ниже.
|
Cегмент
|
Допустимые протокольные типы
|
|
Discrete Inputs
|
TS
|
|
Coils
|
TS, TC
|
|
Input Registers
|
TS, TM2, TMF4, TMC, TM2_TIME, TMF4_TIME, TMC_TIME, STR
|
|
Holding Registers
|
TS, TC, TM2, TMF4, TMC, TMF8, TM2_TIME, TMF4_TIME, TMC_TIME, TMF8_TIME, TR2, TRF4, TR4, STR, STR-COMMAND
|
Протокольный тип данных, указанный для сигнала, должен быть согласован с типом данных сигнала в соответствии с таблицей ниже. Если типы данных будут не согласованы, то сигнал не будет принят на обслуживание модулем.
|
Протокольный тип
|
Тип в Astra.Server
| |||||||||||
|
int1
|
uint1
|
int2
|
uint2
|
int4
|
uint4
|
int8
|
uint8
|
float
|
double
|
string
|
bool
| |
|
TS
|
|
|
|
|
|
|
|
|
|
|
|
да
|
|
TС
|
|
|
|
|
|
|
|
|
|
|
|
да
|
|
TM2
|
|
|
да
|
да*
|
да
|
да*
|
да
|
да*
|
да
|
да
|
|
|
|
TMF4
|
|
|
|
|
|
|
|
|
да
|
да
|
|
|
|
TMC
|
|
|
|
|
да
|
да*
|
да
|
да*
|
|
|
|
|
|
TM2_TIME
|
|
|
да
|
да*
|
да
|
да*
|
да
|
да*
|
|
|
|
|
|
TMF4_TIME
|
|
|
|
|
|
|
|
|
да
|
да
|
|
|
|
TMC_TIME
|
|
|
|
|
да
|
да*
|
да
|
да*
|
|
|
|
|
|
TR2
|
|
|
да
|
да*
|
|
|
|
|
|
|
|
|
|
TRF4
|
|
|
|
|
|
|
|
|
да
|
|
|
|
|
TR4
|
|
|
|
|
да
|
да*
|
|
|
|
|
|
|
|
STR
|
|
|
|
|
|
|
|
|
|
|
да
|
|
|
STR-COMMAND
|
|
|
|
|
|
|
|
|
|
|
да
|
|
Где да* — выполняется, если тип данных беззнаковый, иначе сигнал не принимается на обслуживание.
Если необходим мониторинг на стороне подчиненной станции однобитовых управляющих команд (телеуправление, протокольный тип TC), то в дереве сигналов следует создать сигнал типа bool, который будет носителем информации о поступающих командах.
|
Поддерживаемые функции
Стандартные функции протокола Modbus приведены в таблице:
|
Код функции
|
Название
|
Действие
|
Сегмент
|
|
01 (0x01)
|
Read Coils
|
Чтение состояния дискретных выводов
|
Coils
|
|
02 (0x02)
|
Read Discrete Inputs
|
Чтение состояния дискретных вводов
|
Discrete Inputs
|
|
03 (0x03)
|
Read Holding Registers
|
Чтение регистров хранения
|
Holding Registers
|
|
04 (0x04)
|
Read Input Registers
|
Чтение входных регистров
|
Input Registers
|
|
05 (0x05)
|
Write Single Coil
|
Запись одного дискретного вывода
|
Coils
|
|
06 (0x06)
|
Write Single Register
|
Запись одного регистра хранения
|
Holding Registers
|
|
16 (0x10)
|
Write Multiple registers
|
Запись нескольких регистров хранения
|
Holding Registers
|
|
20 (0x14)
|
Read File Record
|
Чтение данных из файла
|
Files
|