如何在TOP Server動(dòng)態(tài)尋址標(biāo)簽時(shí)得到正確的數(shù)據(jù)類型
大家在使用Top Server時(shí)沒(méi)有遇到這樣一個(gè)問(wèn)題?你在Top Server中動(dòng)態(tài)尋址標(biāo)簽,并且不想在服務(wù)器中定義靜態(tài)標(biāo)記。你正在請(qǐng)求一個(gè)floating point register(浮點(diǎn)寄存器),但是它卻作為一個(gè)Word返回,那么如何確保得到正確的數(shù)據(jù)類型?
動(dòng)態(tài)尋址標(biāo)簽時(shí)(無(wú)論客戶端連接類型是什么類型,例如SuiteLink,PDB,OPC等),TOP服務(wù)器將返回所請(qǐng)求的地址和默認(rèn)數(shù)據(jù)類型(對(duì)于Modbus,默認(rèn)數(shù)據(jù)類型是Word)。如果你希望返回特定的數(shù)據(jù)類型,請(qǐng)?jiān)跇?biāo)記引用的末尾附加@DATATYPE。
以Modbus為例:
ChannelName.DeviceName.400001將返回寄存器400001的內(nèi)容并為默認(rèn)的Word數(shù)據(jù)類型。
尋址寄存器如下:
ChannelName.DeviceName.400001@FLOAT將讀取寄存器400001和400002的內(nèi)容并將它們解釋為浮點(diǎn)值。
@DATATYPE語(yǔ)法修改為@DATATYPE,SCANRATE可以按點(diǎn)指定掃描速率,例如:
ChannelName.DeviceName.400001@FLOAT,100將請(qǐng)求寄存器4000001和4000002的內(nèi)容,將其解釋為浮點(diǎn)值,并將請(qǐng)求的掃描速率設(shè)置為100 ms(毫秒)。
以下數(shù)據(jù)類型有效:
Data Types 描述
Boolean 單位
Byte 無(wú)符號(hào)8位值
Char 有符號(hào)8位值
Word 無(wú)符號(hào)16位值
Short 有符號(hào)16位值
DWord 無(wú)符號(hào)32位值
Long 有符號(hào)32位值
BCD 兩個(gè)字節(jié)打包的BCD,四個(gè)十進(jìn)制數(shù)字
LBCD 四字節(jié)打包BCD,八位十進(jìn)制數(shù)字
Float 32位IEEE浮點(diǎn)
Double 64位IEEE浮點(diǎn)
Date 64位日期/時(shí)間
String Null終止字符數(shù)組