技術頻道

      MODBUS協(xié)議在世紀星中的應用

      引言

      隨著工業(yè)自動化的發(fā)展,MODBUS成為了工業(yè)控制系統(tǒng)中的一種通用協(xié)議。由于該協(xié)議的簡單且通用,得到了眾多儀表廠商的支持,成為儀表及智能終端的一項工業(yè)標準,在工業(yè)監(jiān)控系統(tǒng)中得到了廣泛的應用。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(例如以太網(wǎng))和其它設備之間可以進行通信。它的開放性、可擴充性和標準化使不同廠商生產(chǎn)的控制設備可以簡單可靠地連成工業(yè)網(wǎng)絡,進行系統(tǒng)的集中監(jiān)控,從而成為最流行的協(xié)議之一。同樣,世紀星組態(tài)軟件也提供了支持上位機和下位設備進行MODBUS通信的驅動程序,使用戶可以方便使用裝有世紀星軟件的上位機和下位的設備進行通信。

      MODBUS通信協(xié)議

      MODBUS協(xié)議是莫迪康公司1978年發(fā)明的一種用于電子控制器進行控制和通信的協(xié)議。此協(xié)議支持傳統(tǒng)的RS232RS422RS485標準和以太網(wǎng)設備。不同廠商生產(chǎn)的符合MODBUS協(xié)議的控制設備可以連成工業(yè)網(wǎng)絡,進行集中監(jiān)控。MODBUS協(xié)議采用主從(master-slave)技術,是一種問答方式的通信協(xié)議。每次通信均由主機發(fā)出數(shù)據(jù)請求信息,從機接收到正確消息后就可以發(fā)送數(shù)據(jù)到主機以響應請求;主機也可以直接發(fā)信息修改從機的數(shù)據(jù),實現(xiàn)雙向讀寫。

      MODBUS協(xié)議支持兩種數(shù)據(jù)傳送模式,即ASCII碼和MODBUS-RTU

      (1)MODBUS-RTU

      1 主機詢問數(shù)據(jù)幀報文

      世紀長秋 世紀星組態(tài)軟件

      2從機回答數(shù)據(jù)幀報文

      世紀長秋 世紀星組態(tài)軟件

      (2)ASCII

      3主機詢問數(shù)據(jù)幀報文

      世紀長秋 世紀星組態(tài)軟件

      4從機回答數(shù)據(jù)幀報文

      世紀長秋 世紀星組態(tài)軟件

      MODBUS在世紀星中的應用

      在世紀星中,除了支持MODBUS-RTUASCII碼兩種數(shù)據(jù)傳送模式外,還支持MODBUS TCP/IP 傳送方式。事實上,MODBUS TCP/IP的命令格式和MODBUS-RUT是很相似的,MODBUS TCP/IP只是缺少兩個字節(jié)的CRC校驗。在MODBUS協(xié)議中,是根據(jù)不同的功能碼來完成不同的讀寫功能的,世紀星中支持的功能碼及其功能如表5所示:

      5 世紀星所支持的功能碼

      世紀長秋 世紀星組態(tài)軟件

      在硬件設備中,數(shù)據(jù)存儲在寄存器內(nèi),每個存儲數(shù)據(jù)的寄存器對應一個寄存器地址,上位機就是根據(jù)這些地址組織命令去讀寫寄存器里的數(shù)據(jù)。一個兩個字節(jié)的整型數(shù)據(jù)存儲在一個寄存器地址中,一個四字節(jié)的整型或浮點型數(shù)據(jù)則要存儲在連續(xù)的兩個寄存器地址中,通常都是高地址存放數(shù)據(jù)的高字,低地址存放數(shù)據(jù)的低字。

      由于很多用MODBUS協(xié)議的儀表廠家都在以自己的方式來說明儀表上的參數(shù)以及它對應的寄存器地址,所以一部分廠家是以十六進制來標記寄存器地址,而另一部分廠家用十進制。為了使用戶在工程里建立變量時方便的和儀表上的寄存器連接,世紀星分別在MODBUS-RTUASCII碼兩種通信方式下,支持十六進制通道號和十進制通道號兩種變量連接方式,因此,就免去了用戶做很多的十六進制和十進制之間轉換的工作。

      在設備的說明書中,一般會指定寄存器地址,數(shù)據(jù)類型,該地址的寄存器支持的功能碼等要素,以MODBUS-RTU 十六進制的驅動為例,如果寄存器地址為0005H,數(shù)據(jù)類型為兩個字節(jié)的整形,支持03H功能碼讀數(shù)據(jù),則對應到世紀星軟件中需要連接的變量為4x0005,變量類型為I/O整數(shù),數(shù)據(jù)類型可以分為有符號的INT或無符號的UINT 或者BCD碼,在進行通信時,世紀星發(fā)送的以及設備返回的命令如下表所示:

      主機發(fā)送:

      世紀長秋 世紀星組態(tài)軟件

      從機返回:

      世紀長秋 世紀星組態(tài)軟件

      由設備返回的命令,可以知道設備返回了兩個字節(jié)的有效數(shù)據(jù)(00 1A),則寄存器地址為0005H里的數(shù)據(jù)為001AH=26

      如果寄存器地址為0009H,數(shù)據(jù)類型為兩個字節(jié)的整型,支持06H功能碼寫數(shù)據(jù),則對應到世紀星軟件中需要連接的變量為4x0009,變量類型為I/O整數(shù),數(shù)據(jù)類型可以為有符號的INT或無符號的UINT 或者BCD碼,在通信時,世紀星發(fā)送的以及設備返回的命令如下表所示(寫入數(shù)據(jù)258=0102H)

      主機發(fā)送:

      世紀長秋 世紀星組態(tài)軟件

      從機返回:

      世紀長秋 世紀星組態(tài)軟件

      經(jīng)過發(fā)送上表中的命令,0102H便成功寫入到寄存器地址為0009H號的寄存器中。

      如果寄存器地址為0010H,數(shù)據(jù)類型為四個字節(jié)的整型或浮點型,支持10H功能碼寫數(shù)據(jù),則對應到世紀星軟件中需要連接的變量為4x0010,變量類型為I/O實數(shù),數(shù)據(jù)類型可以為有整型的LONG或浮點型的FLOAT,在通信時,世紀星發(fā)送的以及設備返回的命令如下表所示(寫入數(shù)據(jù)258=0102H)

      主機發(fā)送:

      世紀長秋 世紀星組態(tài)軟件

      從機返回:

      世紀長秋 世紀星組態(tài)軟件

      經(jīng)過發(fā)送上表中的命令,0102H便成功寫入到寄存器地址為0010H號的寄存器中,0000H成功寫入了寄存器地址為0011H號的寄存器中。

      上述內(nèi)容就是在世紀星中根據(jù)設備說明書連接保持寄存器的變量連接方式,以及通信的過程,其它的例如輸入寄存器,輸入線圈等都和保持寄存器是類似的,通過特定的功能碼對特定地址的寄存器進行讀寫操作,這里就不一一介紹了。

      小結

      在平時用戶使用世紀星和支持MODBUS協(xié)議的儀表進行通信的過程中,我們和客戶也有很多的交流,在多數(shù)情況下,世紀星都能很正常的和儀表進行通信,但現(xiàn)在還是避免不了的一種情況是,有些用戶的儀表支持的并不是標準的MODBUS協(xié)議。MODBUS是一種通用的協(xié)議,但就細節(jié)來說,很多廠家還是各有各的用法,這使我們認識到了我們的MODBUS通信還是缺少一些靈活性,而我們一定會針對這種情況做一些改進工作,力求更多的使用MODBUS協(xié)議的客戶能夠方便使用我們的軟件和儀表高效可靠的通信。客戶的滿意,永遠是我們努力追求的目標。

      文章版權歸西部工控xbgk所有,未經(jīng)許可不得轉載。

      主站蜘蛛池模板: 亚洲Av高清一区二区三区| 精品国产高清自在线一区二区三区| 中文字幕一区二区三区在线播放| 一区高清大胆人体| 一区二区高清在线| 亚洲av乱码中文一区二区三区| 久久se精品一区二区| 久久综合一区二区无码| 精品视频一区在线观看| 无码aⅴ精品一区二区三区 | 亚洲第一区精品观看| 国产精品无码一区二区在线观| 精品人妻码一区二区三区| 福利一区二区三区视频在线观看| 一区二区三区日本视频| 丰满人妻一区二区三区视频| 国产综合精品一区二区| 日韩人妻无码免费视频一区二区三区| 亚洲国产视频一区| 精品国产一区二区三区久久久狼| 色欲综合一区二区三区| 久久免费区一区二区三波多野| 亚洲综合色自拍一区| 国内偷窥一区二区三区视频| 国产精品毛片一区二区三区 | 国产视频一区二区在线播放| 日本一区二区三区免费高清在线 | 国产精品视频一区二区噜噜| 国产乱码一区二区三区爽爽爽| 中文字幕精品一区二区三区视频| 97精品国产福利一区二区三区| 久久se精品一区精品二区| 久久91精品国产一区二区| 麻豆文化传媒精品一区二区 | 国产精品99无码一区二区| 国产福利电影一区二区三区久久久久成人精品综合 | 午夜福利一区二区三区在线观看 | 亚洲中文字幕丝袜制服一区| 亲子乱av一区二区三区| 无码少妇一区二区三区浪潮AV| 日韩高清国产一区在线|