4.1.1.2.3.2.3. Типы данных
Типы данных сигналов Astra.Server
Тип данных определяет множество значений, которые может принимать сигнал.
Для обмена данными с подчиненной станцией тип данных сигнала Astra.Server должен совпадать с типом данных соответствующего сигнала подчиненной станции.
Тип
|
Описание
|
Допустимые значения
|
Int1
|
Знаковое целое 1 байт
|
[-128; 127]
|
UInt1
|
Беззнаковое целое 1 байт
|
[0; 255]
|
Int2
|
Знаковое целое 2 байта
|
[-32 768; 32 767]
|
UInt2
|
Беззнаковое целое 2 байта
|
[0; 65 535]
|
Int4
|
Знаковое целое 4 байта
|
[-2 147 483 648; 2 147 483 647]
|
UInt4
|
Беззнаковое целое 4 байта
|
[0; 4 294 967 295]
|
Int8
|
Знаковое целое 8 байт
|
[–9 223 372 036 854 775 808; 9 223 372 036 854 775 807]
|
UInt8
|
Беззнаковое целое 8 байт
|
[0; 18 446 744 073 709 551 615]
|
Float
|
Значение с плавающей запятой 4 байта
|
[±1.5×10-45; ±3.4×1038]. Точность 6-9 цифр
|
Double
|
Значение с плавающей запятой 8 байт
|
[±5.0×10-324; ±1.7×10308]. Точность 15-17 цифр
|
Bool
|
Логическое значение
|
true, false
|
String
|
Текстовая строка в кодировке UTF16
|
до 2 миллиардов знаков, каждый знак занимает 16 бит (2 байта)
|
Протокольные типы
Модуль Modbus RTU Master, оперируя данными в соответствии с протоколом, может предоставлять их в виде следующих типов (таблица ниже). Такие типы данных называются протокольными.
Протокольный тип
|
Тип значения
|
Направление передачи
|
Описание
|
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
|
Телерегулирование
|
Как видно из таблицы сигналы по отношению к модулю делятся по направлению передачи на две группы:
входящий сигнал, в который будет записываться полученное значение с подчиненной станции. Направление передачи для сигнала от Slave к Master, где Slave – подчиненная станция, Master – модуль Modbus RTU Master;
исходящий сигнал – сигнал, значение которого при изменении будет передаваться подчиненной станции. Направление передачи для сигнала от Master к Slave.
Модуль позволяет настроить сигналы доставки, которые необходимы для подтверждения доставки исходящих сигналов до подчиненной станции и содержат результат выполнения операции. Значения сигналов доставки представлены в таблице.
Модуль позволяет использовать сегмент адресного пространства Holding Registers для передачи сигналов телеуправления и телесигнализации. Регистр адресного пространства протокола Modbus используется как набор в качестве 16 сигналов телеуправления или телесигнализации. При конфигурировании такого способа доставки сигналов в адресе сигнала указывается номер бита (BitPosition).
Так как элементы адресного пространства Holding Registers и Coils имеют тип доступа на чтение и запись данных, то имеется возможность отправлять сигналы телерегулирования (телеуправления) и получать сигналы телеизмерения (телесчет, телесигнализация) на один регистр памяти. Для этого необходимо создать два сигнала типов – входящий и исходящий. При этом не будет ошибки пересечения адресов. Запись и чтение с одного регистра применяется для проверки полученных данных подчиненной станцией и для проверки текущих значений параметров объекта телерегулирования.
Протокольный тип данных, указанный для сигнала, должен быть согласован с типом данных сигнала в соответствии с таблицей. Если типы данных будут не согласованы, то сигнал не будет принят на обслуживание модулем. Правило пользования таблицей: в первом столбце выбрать тип используемых данных и соотнести ему тип сигнала.
Протокольный тип
|
Тип в Astra.Server
| |||||||||||
int1
|
uint1
|
int2
|
uint2
|
int4
|
uint4
|
int8
|
uint8
|
float
|
double
|
string
|
bool
| |
TS
|
|
|
|
|
|
|
|
|
|
|
|
да
|
TС
|
|
|
|
|
|
|
|
|
|
|
|
да
|
TM2
|
|
|
да
|
да*
|
да
|
да*
|
да
|
да*
|
да
|
да
|
|
|
TMF4
|
|
|
|
|
|
|
|
|
да
|
да
|
|
|
TMC
|
|
|
|
|
да
|
да*
|
да
|
да*
|
|
|
|
|
TMF8
|
|
|
|
|
|
|
|
|
|
да
|
|
|
TM2_TIME
|
|
|
да
|
да*
|
да
|
да*
|
да
|
да*
|
|
|
|
|
TMF4_TIME
|
|
|
|
|
|
|
|
|
да
|
да
|
|
|
TMC_TIME
|
|
|
|
|
да
|
да*
|
да
|
да*
|
|
|
|
|
TMF8_TIME
|
|
|
|
|
|
|
|
|
|
да
|
|
|
TR2
|
|
|
да
|
да*
|
|
|
|
|
|
|
|
|
TRF4
|
|
|
|
|
|
|
|
|
да
|
|
|
|
TR4
|
|
|
|
|
да
|
да*
|
|
|
|
|
|
|
STR
|
|
|
|
|
|
|
|
|
|
|
да
|
|
STR-COMMAND
|
|
|
|
|
|
|
|
|
|
|
да
|
|
Где да* - выполняется, если тип данных беззнаковый, иначе сигнал не принимается на обслуживание. Например, при преобразовании из протокольного типа данных ТМ2 в канонический тип данных uint2 необходимо в адресе сигнала указать "Signed=(False)".