《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 世紀星標準Modbus協議驅動揭秘
世紀星標準Modbus協議驅動揭秘
徐向農
摘要: 在工業自動化發展的進程中,Modbus成為了工業控制系統中的一種通用協議。由于該協議的簡單且通用,得到眾多儀表廠商的支持,成為儀表及智能終端的一項工業標準,在工業監控系統中得到廣泛的應用。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以進行通信。它的開放性、可擴充性和標準化
Abstract:
Key words :

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

 

1、Modbus 設備選擇
  進入世紀星設備列表PLC大類中的標準Modbus協議,可以看到我們有5種Modbus設備,分別是Modbus RTU(十進制地址)、Modbus RTU(十六進制地址)、Modbus ASCII(十進制地址)、Modbus ASCII(十六進制地址)以及Modbus TCP/IP(十進制地址)。
  首先,Modbus的三種通信方式:Modbus RTU、Modbus ASCII以及Modbus TCP/IP世紀星都全面支持,用戶可以根據設備的通訊說明進行相應的選擇。
  其次,Modbus設備十進制和十六進制的區分除了方便一部分用戶的同時,在設備選擇的方面也給另一部分的用戶造成困擾,針對這個問題我會給大家兩點解釋,第一:同樣的一個設備,如果用十進制地址的Modbus驅動能連接得上的話,用十六進制地址的Modbus驅動肯定也沒問題,確定這點之后,我們提前預想周全的貼心功能就不會在選擇設備時給您造成困擾了。第二:Modbus協議已經成為工業控制系統中的一種通用協議,很多儀表廠商都采用Modbus協議與上位機進行通信,有些廠商協議的說明文檔中,采用十進制的寄存器地址說明,如表1所示。
  而有些廠商采用十六進制的寄存器地址說明,如表2所示。為避免用戶在連接變量時再去做繁瑣的十進制和十六進制的轉化工作,我們將Modbus RTU以及Modbus ASCII分別做成用十進制的寄存器地址連接變量的驅動和用十六進制的寄存器地址連接變量的驅動。舉個例子(假定表1表2中列出的寄存器支持03號功能碼),對于表1這樣的協議說明方式,我們可以選擇十進制的Modbus驅動,用4x10這個寄存器連接環境溫度這個參數;而對于表2這樣的協議說明方式,我們可以選擇十六進制的Modbus驅動,用4 x 000A這個寄存器連接環境溫度參數。


表一


表二

 

2.寄存器連接
  要正確連接一個寄存器,有三個關鍵信息要從協議說明文檔中獲得:第一是該寄存器支持的功能碼,第二是該寄存器的地址,第三是該寄存器的數據類型。
  1)功能碼
  世紀星是根據Modbus協議中的功能碼來區別寄存器名稱,具體信息如表3所述:

表三

  在廠商所提供的協議說明文檔中,都會注明寄存器所支持的功能碼,用戶可以根據上述表格對世紀星里的寄存器進行選擇。例如:支持03H功能碼的就選擇4x,支持01H功能碼的就選擇0x。
  2)寄存器地址
  寄存器地址在協議說明文檔中都會比較直觀的列出,參看表1、表2,每個具體的參數都會對應一個寄存器地址,連接寄存器時只要將地址號連接在相應的寄存器名后面即可。
  3)數據類型
  位寄存器的連接方式比較單一,如圖1所示。變量類型為I/O離散,數據類型為BIT,根據功能碼選擇寄存器名,并加上寄存器地址就可以正確連接該位寄存器。

圖一


  模擬量寄存器的連接方式就比較多樣化,如表4所示(下面對于寄存器名和寄存器地址暫不進行說明)。

表四

表五


  主電機電壓:變量類型選擇I/O整數,數據類型選擇LONG(有符號32位整數);
  主電機電流:變量類型選擇I/O實數,數據類型選擇FLOAT(我們的浮點數格式符合IEEE754標準);
  環境溫度:變量類型選擇I/O整數,數據類型選擇UINT(無符號16位整數);
  T1:變量類型選擇I/O整數,數據類型選擇INT(有符號16為整數);
  T2:變量類型選擇I/O整數,數據類型選擇BCD(16位BCD碼);
  T3:變量類型選擇I/O實數,數據類型為UINT或者INT,由于傳送數據是實際值的100倍,所以在定義變量時需要做一個線性變換,如圖2所示,使最大值[IO]為最大值的100倍,最小值[IO]是最小值的100倍,并在轉換選項中選擇線性轉換就可以在工程中直接顯示實際值;


圖二


  STATUS:變量類型選擇I/O整數,數據類型選擇UINT,需要在工程中對STATUS中的某個位進行顯示和設置時,要使用世紀星中的Bit(Tagname,BitNo)和BitSet(“Tagname”,BitNo,Discrete_Value)這兩個函數,具體的使用方式可以參考世紀星中的函數說明。

  今天給大家介紹了如何選擇Modbus設備以及如何連接寄存器,對于標準的Modbus協議來說,掌握這些已經可以從設備中讀出一個正確的數據,但有些廠家的Modbus協議在字節順序以及功能碼的使用方面和標準Modbus協議,是有一些小的出入,針對這種情況,我們的Modbus驅動也做了相應的調整,通過設置初始化字解決這個問題,其具體的設置方式我將會在下一篇介紹給大家,感謝您的關注!

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产自产视频在线观看香蕉| 日产精品久久久久久久| 再深点灬舒服灬太大了69| 天天在线天天综合网色| 尤物视频在线看| 久久精品国产免费观看| 波多洁野衣一二区三区| 四虎国产精品永久免费网址| 日本尤物精品视频在线看| 大学寝室沈樵无删减| 中文字幕在线视频网站| 日韩超碰人人爽人人做人人添| 亚洲精品免费视频| 精品国产自在现线久久| 国产又黄又大又粗的视频| 3d动漫精品一区二区三区| 好吊操视频在线| 中文字幕日韩wm二在线看| 日韩高清免费观看| 亚洲欧洲专线一区| 男女xx00动态图120秒| 国产a不卡片精品免费观看 | 欧美怡红院成免费人忱友;| 免费无码黄网站在线观看| 蜜臀AV一区二区| 国产成人高清在线播放| 3d无遮挡h肉动漫在线播放| 天堂在线最新资源| 一级毛片免费观看不卡视频| 日本免费色网站| 九九九国产精品成人免费视频| 欧美日韩高清完整版在线观看免费| 免费少妇a级毛片人成网| 老汉色av影院| 国产国产人免费人成免费视频| poren日本| 国产精品第1页在线播放| 99久久免费精品高清特色大片| 娇妻之欲海泛舟白丽交换| 中文字幕在线播放| 日韩免费一级片|