新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 組態(tài)王與單片機協(xié)議2

組態(tài)王與單片機協(xié)議2

作者: 時間:2016-11-27 來源:網(wǎng)絡 收藏
1.通訊口設置:

通訊方式:RS-232,RS-485,RS-422均可。

本文引用地址:http://2s4d.com/article/201611/322100.htm

波特率:由單片機決定(2400,4800,9600and19200bps)。

字節(jié)數(shù)據(jù)格式:由單片機決定。

起始位

數(shù)據(jù)位

校驗位

停止位

注意:在組態(tài)王中設置的通訊參數(shù)如波特率,數(shù)據(jù)位,停止位,奇偶校驗必須與單片機編程中的通訊參數(shù)一致

2.在組態(tài)王中定義設備地址的格式

格式:##.?!?/p>

前面的兩個字符是設備地址,范圍為0-255,此地址為單片機的地址,由單片機中的程序決定 ;

后面的一個字符是用戶設定是否打包,“0”為不打包、“1”為打包,用戶一旦在定義設備時確定了打包,組態(tài)王將處理讀下位機變量時數(shù)據(jù)打包的工作。

3.在組態(tài)王中定義的寄存器格式

寄存器名稱

dd上限

dd下限

數(shù)據(jù)類型

Xdd

65535

0

FLOAT/BYTE/UINT

斜體字dd代表數(shù)據(jù)地址,此地址與單片機的數(shù)據(jù)地址相對應。

注意:在組態(tài)王中定義變量時,一個X寄存器根據(jù)所選數(shù)據(jù)類型(BYTE,UINT,FLOAT)的不同分別占用一個、兩個,四個字節(jié),定義不同的數(shù)據(jù)類型要注意寄存器后面的地址,同一數(shù)據(jù)區(qū)內(nèi)不可交叉定義不同數(shù)據(jù)類型的變量。為提高通訊速度建議用戶使用連續(xù)的數(shù)據(jù)區(qū)。

例如,

1、在單片機中定義從地址0開始的數(shù)據(jù)類型為BYTE型的變量:

則在組態(tài)王中定義相應的變量的寄存器為X0、X1、X2、X3、X4。。。。。。。。,數(shù)據(jù)類型為BYTE,每個變量占一個字節(jié)

2、在單片機中定義從地址100開始的數(shù)據(jù)類型為UINT型的變量:

則在組態(tài)王中定義相應的變量的寄存器為X100、X102、X104、X106、X108。。。。。。。。,數(shù)據(jù)類型UINT,每個變量占兩個字節(jié)

3、在單片機中定義從地址200開始的數(shù)據(jù)類型為FLOAT型的變量:

則在組態(tài)王中定義相應的變量的寄存器為X200、X204、X208、X212。。。。。。。,數(shù)據(jù)類型FLOAT,每個變量占四個字節(jié)

3.組態(tài)王與單片機通訊的命令格式:

讀寫格式(除字頭、字尾外所有字節(jié)均為ASCII碼)

字頭

設備地址

標志

數(shù)據(jù)地址

數(shù)據(jù)字節(jié)數(shù)

數(shù)據(jù)…

異或

CR

說明;

字頭:1字節(jié)1個ASCII碼,40H

設備地址: 1字節(jié)2個ASCII碼,0—255(即0---0x0ffH)

標志:1字節(jié)2個ASCII碼,bit0~bit7,

bit0= 0:讀,bit0= 1:寫。

bit1= 0:不打包。

bit3bit2 = 00,數(shù)據(jù)類型為字節(jié)。

bit3bit2 = 01,數(shù)據(jù)類型為字。

bit3bit2 = 1x,數(shù)據(jù)類型為浮點數(shù)。

數(shù)據(jù)地址: 2字節(jié)4個ASCII碼,0x0000~0xffff

數(shù)據(jù)字節(jié)數(shù):1字節(jié)2個ASCII碼,1—100,實際讀寫的數(shù)據(jù)的字節(jié)數(shù)。

數(shù)據(jù)…:為實際的數(shù)據(jù)轉(zhuǎn)換為ASCII碼,個數(shù)為字節(jié)數(shù)乘2。

異或:異或從設備地址到異或字節(jié)前,異或值轉(zhuǎn)換成2個ASCII碼

CR:0x0d。

通訊嘗試恢復命令(COMERROR),請求地址為0的一個BYTE數(shù)據(jù)

3.1.上位機發(fā)送讀命令

字頭

設備地址

標志

數(shù)據(jù)地址

數(shù)據(jù)字節(jié)數(shù)

異或

CR

下位機應答:若正常:

字頭

設備地址

數(shù)據(jù)字節(jié)數(shù)

數(shù)據(jù)…

異或

CR

若不正常:

字頭

設備地址

**

異或

CR

例1:讀15號儀表,數(shù)據(jù)地址為15的數(shù)據(jù)。其中數(shù)據(jù)為100,數(shù)據(jù)類型為字節(jié),不打包。組態(tài)王所發(fā)數(shù)據(jù)為:

40

30

46

43

30

30

30

30

46

30

31

37

32

0d

字頭

設備地址15

標志

讀操作

字節(jié)型

不打包

數(shù)據(jù)地址15

數(shù)據(jù)字節(jié)數(shù)1

異或

若正確:

40

30

46

30

31

36

34

37

35

0d

字頭

設備地址15

數(shù)據(jù)字節(jié)數(shù)1

數(shù)據(jù)100

異或

若不正確:

40

30

46

2a

2a

37

36

0d

字頭

設備地址15

**

異或

例2:讀15號儀表,數(shù)據(jù)地址為15的數(shù)據(jù)。其中數(shù)據(jù)為100,數(shù)據(jù)類型為字節(jié),打包。組態(tài)王所發(fā)數(shù)據(jù)為:

40

30

46

43

32

30

30

30

46

30

31

37

30

0d

字頭

設備地址15

標志

讀操作

字節(jié)型

打包

數(shù)據(jù)地址15

數(shù)據(jù)字節(jié)數(shù)1

異或

若正確:

40

30

46

30

31

36

34

37

35

0d

字頭

設備地址15

數(shù)據(jù)字節(jié)數(shù)1

數(shù)據(jù)100

異或

若不正確:

40

30

46

2a

2a

37

36

0d

設備地址15

**

異或

3.2.上位機發(fā)送寫命令

字頭

設備地址

標志

數(shù)據(jù)地址

數(shù)據(jù)字節(jié)數(shù)

數(shù)據(jù)…

異或

CR

下位機應答:若正常:

字頭

設備地址

##

異或

CR

若不正常:

字頭

設備地址

**

異或

CR

例1:寫15號儀表,數(shù)據(jù)地址為15。寫數(shù)據(jù)255,數(shù)據(jù)類型為字,不打包。組態(tài)王所發(fā)數(shù)據(jù)為:

40

30

46

43

35

30

30

30

46

30

32

30

30

46

46

37

34

0d

字頭

設備地址15

標志

寫操作

字型

不打包

數(shù)據(jù)地址15

數(shù)據(jù)字節(jié)數(shù)2

數(shù)據(jù)255

異或

若正確:

40

30

46

23

23

37

36

0d

字頭

設備地址15

##

異或

若不正確:

40

30

46

2a

2a

37

36

0d

字頭

設備地址15

**

異或


上一頁 1 2 下一頁

評論


技術(shù)專區(qū)

關閉