如何在TOP Server动态寻址标签时得到正确的数据类型
大家在使用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终止字符数组