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