組態王與單片機協定1.通訊口設定: 通訊方式:RS-232,RS-485,RS-422均可。 波特率: 由單片機決定(2400,4800,9600and19200bps)。位元組數據格式:由單片機決定。起始位數據位校驗位停止位注意:在組態王中設定的通訊參數如波特率,數據位,停止位,奇偶校驗必須與單片機編程中的通訊參數一致
2.在組態王中定義設備地址的格式格式:##.# 前面的兩個字元是設備地址,範圍為0-255,此地址為單片機的地址,由單片機中的程式決定 ;後面的一個字元是用戶設定是否打包,“0”為不打包、“1”為打包,用戶一旦在定義設備時確定了打包,組態王將處理讀下位機變數時數據打包的工作。
3.在組態王中定義的暫存器格式暫存器名稱dd上限dd下限數據類型Xdd655350FLOAT/BYTE/UINT斜體字dd代表數據地址,此地址與單片機的數據地址相對應。
注意:在組態王中定義變數時,一個X暫存器根據所選數據類型(BYTE,UINT,FLOAT)的不同分別占用一個、兩個,四個位元組,定義不同的數據類型要注意暫存器後面的地址,同一數據區內不可交叉定義不同數據類型的變數。為提高通訊速度建議用戶使用連續的數據區。
例如,1、在單片機中定義從地址0開始的數據類型為BYTE型的變數:則在組態王中定義相應的變數的暫存器為X0、X1、X2、X3、X4。。。。。。。。,數據類型為BYTE,每個變數占一個位元組2、在單片機中定義從地址100開始的數據類型為UINT型的變數:則在組態王中定義相應的變數的暫存器為X100、X102、X104、X106、X108。。。。。。。。,數據類型UINT,每個變數占兩個位元組3、在單片機中定義從地址200開始的數據類型為FLOAT型的變數:則在組態王中定義相應的變數的暫存器為X200、X204、X208、X212。。。。。。。, 數據類型FLOAT,每個變數占四個位元組
3.組態王與單片機通訊的命令格式:讀寫格式(除字頭、字尾外所有位元組均為ASCII碼)
字頭設備地址標誌數據地址數據位元組數數據…異或CR說明; 字頭:1位元組1個ASCII碼,40H設備地址: 1位元組2個ASCII碼,0—255(即0---0x0ffH)標誌:1位元組2個ASCII碼,bit0~bit7,bit0= 0:讀,bit0= 1:寫。bit1= 0:不打包。 bit3bit2 = 00,數據類型為位元組。 bit3bit2 = 01,數據類型為字。 bit3bit2 = 1x,數據類型為浮點數。數據地址: 2位元組4個ASCII碼,0x0000~0xffff數據位元組數:1位元組2個ASCII碼,1—100,實際讀寫的數據的位元組數。數據…:為實際的數據轉換為ASCII碼,個數為位元組數乘2。異或:異或從設備地址到異或位元組前,異或值轉換成2個ASCII碼CR:0x0d。
通訊嘗試恢復命令(COMERROR),請求地址為0的一個BYTE數據
3.1.上位機傳送讀命令字頭設備地址標誌數據地址數據位元組數異或CR下位機應答:若正常:字頭設備地址數據位元組數數據…異或CR若不正常:字頭設備地址**異或CR
例1:讀15號儀表,數據地址為15的數據。其中數據為100,數據類型為位元組,不打包。組態王所發數據為:
403046433030303046303137320d字頭設備地址15標誌讀操作位元組型不打包數據地址15數據位元組數1異或
若正確:4030463031363437350d字頭設備地址15數據位元組數1數據100異或若不正確:4030462a2a37360d字頭設備地址15**異或
例2:讀15號儀表,數據地址為15的數據。其中數據為100,數據類型為位元組,打包。組態王所發數據為:
403046433230303046303137300d字頭設備地址15標誌讀操作位元組型打包數據地址15數據位元組數1異或
若正確:4030463031363437350d字頭設備地址15數據位元組數1數據100異或若不正確:4030462a2a37360d設備地址15**異或
3.2.上位機傳送寫命令字頭設備地址標誌數據地址數據位元組數數據…異或CR下位機應答:若正常:字頭設備地址##異或CR若不正常:字頭設備地址**異或CR
例1:寫15號儀表,數據地址為15。寫數據255,數據類型為字,不打包。組態王所發數據為:40304643353030304630323030464637340d字頭設備地址15標誌寫操作字型不打包數據地址15數據位元組數2數據255異或若正確:403046232337360d字頭設備地址15##異或若不正確:4030462a2a37360d字頭設備地址15**異或
例2:寫15號儀表,數據地址為15。寫數據65535,數據類型為浮點型,打包。組態王所發數據為:40304643463030304630343130464646463030字頭設備地址15標誌寫操作浮點型打包數據地址15數據位元組數4數據6553530300d
異或
若正確:403046232337360d字頭設備地址15##異或若不正確:4030462a2a37360d字頭設備地址15**異或
5.浮點數格式:4位元組浮點數 = 第一位元組高4位ASCII碼+第一位元組低4位ASCII碼 +第二位元組高4位ASCII碼+第二位元組低4位ASCII碼 +第三位元組高4位ASCII碼+第三位元組低4位ASCII碼 +第四位元組高4位ASCII碼+第四位元組低4位ASCII碼 第1位元組低4位 第2位元組低4位 第3位元組低4位 第4位元組低4位
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 第1位元組高4位 第2位元組高4位 第3位元組高4位 第4位元組高4位四位元組浮點數格式:(1)第一位元組 (2)第二位元組(3)第三位元組(4)第四位元組註:數符=0——正,數符=1——負階符=0——正,階符=1——負
D7 D6 D5 ~ D0 ★ 浮點數可表示範圍:-1×232~1×232數符:1位 階符:1位階碼:6位例:流量積算控制儀表瞬時流量測量值數據=100.210轉換成浮點數:100.210=270.7828125=0716+C816+6616+6616 =30ASCII+37ASCII+43ASCII+38ASCII+36ASCII+36ASCII+36ASCII+36ASCII小數部份:0.7828125 0.7828125256=200.4 0.4256=102.40.4256=102.4
10進制:第一位元組第二位元組第三位元組第四位元組
十六進制: ASCII碼:第一位元組第二位元組第三位元組第四位元組傳輸格式如下: 第1位元組低4位 第2位元組低4位 第3位元組低4位 第4位元組低4位