如何在TOP Server动态寻址标签时得到正确的数据类型

280 阅读2分钟

大家在使用Top Server时没有遇到这样一个问题?你在Top Server中动态寻址标签,并且不想在服务器中定义静态标记。你正在请求一个floating point register(浮点寄存器),但是它却作为一个Word返回,那么如何确保得到正确的数据类型?

动态寻址标签时(无论客户端连接类型是什么类型,例如SuiteLink,PDB,OPC等),TOP服务器将返回所请求的地址和默认数据类型(对于Modbus,默认数据类型是Word)。如果你希望返回特定的数据类型,请在标记引用的末尾附加@DATATYPE

以Modbus为例:

ChannelName.DeviceName.400001将返回寄存器400001的内容并为默认的Word数据类型。

寻址寄存器如下:

ChannelName.DeviceName.400001@FLOAT将读取寄存器400001和400002的内容并将它们解释为浮点值。

@DATATYPE语法修改为@DATATYPE,SCANRATE可以按点指定扫描速率,例如:

ChannelName.DeviceName.400001@FLOAT,100将请求寄存器4000001和4000002的内容,将其解释为浮点值,并将请求的扫描速率设置为100 ms(毫秒)。

以下数据类型有效:

Data Types       描述

Boolean            单位

Byte                  无符号8位值

Char                  有符号8位值

Word                无符号16位值

Short                有符号16位值

DWord             无符号32位值

Long                 有符号32位值

BCD                  两个字节打包的BCD,四个十进制数字

LBCD                四字节打包BCD,八位十进制数字

Float                32位IEEE浮点

Double            64位IEEE浮点

Date                64位日期/时间

String              Null终止字符数组