AstraRegul
Релиз 2024.08.31.00
×

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
 
 
 
 
 
 
 
 
 
 
 
да
 
 
 
 
 
 
 
 
 
 
 
да
TM2
 
 
да
да*
да
да*
да
да*
да
да
 
 
TMF4
 
 
 
 
 
 
 
 
да
да
 
 
TMC
 
 
 
 
да
да*
да
да*
 
 
 
 
TMF8
 
 
 
 
 
 
 
 
 
да
 
 
TM2_TIME
 
 
да
да*
да
да*
да
да*
 
 
 
 
TMF4_TIME
 
 
 
 
 
 
 
 
да
да
 
 
TMC_TIME
 
 
 
 
да
да*
да
да*
 
 
 
 
TMF8_TIME
 
 
 
 
 
 
 
 
 
да
 
 
TR2
 
 
да
да*
 
 
 
 
 
 
 
 
TRF4
 
 
 
 
 
 
 
 
да
 
 
 
TR4
 
 
 
 
да
да*
 
 
 
 
 
 
STR
 
 
 
 
 
 
 
 
 
 
да
 
STR-COMMAND
 
 
 
 
 
 
 
 
 
 
да
 
 
Где да* - выполняется, если тип данных беззнаковый, иначе сигнал не принимается на обслуживание. Например, при преобразовании из протокольного типа данных ТМ2 в канонический тип данных uint2 необходимо в адресе сигнала указать "Signed=(False)".