新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 組態王與單片機協議2

        組態王與單片機協議2

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

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

        本文引用地址:http://www.104case.com/article/201611/322100.htm

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

        字節數據格式:由單片機決定。

        起始位

        數據位

        校驗位

        停止位

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

        2.在組態王中定義設備地址的格式

        格式:##.# 

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

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

        3.在組態王中定義的寄存器格式

        寄存器名稱

        dd上限

        dd下限

        數據類型

        Xdd

        65535

        0

        FLOAT/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,數據類型為字節,不打包。組態王所發數據為:

        40

        30

        46

        43

        30

        30

        30

        30

        46

        30

        31

        37

        32

        0d

        字頭

        設備地址15

        標志

        讀操作

        字節型

        不打包

        數據地址15

        數據字節數1

        異或

        若正確:

        40

        30

        46

        30

        31

        36

        34

        37

        35

        0d

        字頭

        設備地址15

        數據字節數1

        數據100

        異或

        若不正確:

        40

        30

        46

        2a

        2a

        37

        36

        0d

        字頭

        設備地址15

        **

        異或

        例2:讀15號儀表,數據地址為15的數據。其中數據為100,數據類型為字節,打包。組態王所發數據為:

        40

        30

        46

        43

        32

        30

        30

        30

        46

        30

        31

        37

        30

        0d

        字頭

        設備地址15

        標志

        讀操作

        字節型

        打包

        數據地址15

        數據字節數1

        異或

        若正確:

        40

        30

        46

        30

        31

        36

        34

        37

        35

        0d

        字頭

        設備地址15

        數據字節數1

        數據100

        異或

        若不正確:

        40

        30

        46

        2a

        2a

        37

        36

        0d

        設備地址15

        **

        異或

        3.2.上位機發送寫命令

        字頭

        設備地址

        標志

        數據地址

        數據字節數

        數據…

        異或

        CR

        下位機應答:若正常:

        字頭

        設備地址

        ##

        異或

        CR

        若不正常:

        字頭

        設備地址

        **

        異或

        CR

        例1:寫15號儀表,數據地址為15。寫數據255,數據類型為字,不打包。組態王所發數據為:

        40

        30

        46

        43

        35

        30

        30

        30

        46

        30

        32

        30

        30

        46

        46

        37

        34

        0d

        字頭

        設備地址15

        標志

        寫操作

        字型

        不打包

        數據地址15

        數據字節數2

        數據255

        異或

        若正確:

        40

        30

        46

        23

        23

        37

        36

        0d

        字頭

        設備地址15

        ##

        異或

        若不正確:

        40

        30

        46

        2a

        2a

        37

        36

        0d

        字頭

        設備地址15

        **

        異或


        上一頁 1 2 下一頁

        關鍵詞: 組態王單片機協

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 穆棱市| 奉贤区| 漯河市| 嘉定区| 滕州市| 林芝县| 泰兴市| 平遥县| 化州市| 东阳市| 都兰县| 虹口区| 安仁县| 嘉黎县| 东海县| 鄢陵县| 新兴县| 三穗县| 舟曲县| 云南省| 若尔盖县| 赤水市| 巴东县| 洛宁县| 长丰县| 乌鲁木齐县| 兴和县| 哈巴河县| 鄯善县| 广州市| 化德县| 富源县| 金山区| 城口县| 邢台市| 凤山县| 岳普湖县| 淄博市| 子洲县| 长白| 观塘区|