超聲波流量計modbus協(xié)議簡介
Modbus是一種串行通信協(xié)議,是Modicon公司(現在的施耐德電氣 Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發(fā)表。Modbus已經成為工業(yè)領域通信協(xié)議的業(yè)界標準(De facto),并且現在是工業(yè)電子設備之間常用的連接方式。
Modbus是一種一主一從的一對一通信方式(主機發(fā)一幀,從機回一幀的形式),當然也一主多從,但實際也是一對一通信,同一時刻只能有一個從機進行響應。如果需要和多個從機同時通信,這里也支持使用廣播,即主機發(fā)送指令,所有從機接收指令并執(zhí)行,但不進行應答??梢詤⒖紘鴺藰藴剩ㄒ韵潞喎Q國標),GBT 19582-2。
當進行一主多從通信時,主機通過從機ID號來區(qū)分要通信的從機設備。從機ID范圍為1~247,0為廣播地址,248~255為用戶自定義地址。
用我公司生產的超聲波流量計舉例,根據通訊協(xié)議上寫明40001是超聲波流量的瞬時流量,數據類型寫的是float,以此我們來說明,40001說的是使用的保持寄存器,對應的功能碼是03號,1指的是寄存器從1號開始,因為國內的組態(tài)軟件都是從1開始的,但是原始報文對應的是16進制的報文0,因為float浮點數是占2個寄存器地址,4個字節(jié),因此匯總所有的信息可以知道因發(fā)出去的指令為010300000002后面需要加CRC校驗的,開頭的01指的是儀表的站號,由此進行組合,當然開頭的站號是會進行變更的,因為485的通訊協(xié)議內規(guī)定站號是從1-255的,以上是10進制,轉為16進制為01-FF,綜合以上解釋,最終形成的16進制串口請求指令為010300000002C40B,發(fā)送請求指令到超聲波流量的通訊端口上,超聲波流量計通訊端口上獲取到請求指令后,會回復對應的回復指令,回復的指令也同樣遵行標準的modbus RTU指令標準,以上訴指令為例,回復因為0104XXXXXXXX+CRC,
01為站號對應回復,04是代表浮點數是4個字節(jié),2個寄存器,04后面會有對應的4字節(jié)的16進制的數據,該數據就是表示浮點數的值,目前是16進制表示的,需要進行浮點數轉化才可以,最后加上CRC校驗,以上就是一次標準的超聲波流量計標準的485通訊,包含請求和回復,一次完成的通訊就完成了,每次請求數據與再次請求數據之間的間隔一般需要在1秒以上。如果一個總線上需要獲取多個超聲波流量計,通訊間隔時間需要累加起來計算。
掃一掃 微信咨詢
©2024 江蘇佰創(chuàng)儀表集團有限公司 版權所有 備案號:蘇ICP備19019925號-3 技術支持:儀表網 Sitemap.xml 總訪問量:168448 管理登陸