超聲波流量計(jì)modbus協(xié)議簡(jiǎn)介
Modbus是一種串行通信協(xié)議,是Modicon公司(現(xiàn)在的施耐德電氣 Schneider Electric)于1979年為使用可編程邏輯控制器(PLC)通信而發(fā)表。Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn)(De facto),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式。
Modbus是一種一主一從的一對(duì)一通信方式(主機(jī)發(fā)一幀,從機(jī)回一幀的形式),當(dāng)然也一主多從,但實(shí)際也是一對(duì)一通信,同一時(shí)刻只能有一個(gè)從機(jī)進(jìn)行響應(yīng)。如果需要和多個(gè)從機(jī)同時(shí)通信,這里也支持使用廣播,即主機(jī)發(fā)送指令,所有從機(jī)接收指令并執(zhí)行,但不進(jìn)行應(yīng)答。可以參考國(guó)標(biāo)標(biāo)準(zhǔn)(以下簡(jiǎn)稱國(guó)標(biāo)),GBT 19582-2。
當(dāng)進(jìn)行一主多從通信時(shí),主機(jī)通過從機(jī)ID號(hào)來區(qū)分要通信的從機(jī)設(shè)備。從機(jī)ID范圍為1~247,0為廣播地址,248~255為用戶自定義地址。
用我公司生產(chǎn)的超聲波流量計(jì)舉例,根據(jù)通訊協(xié)議上寫明40001是超聲波流量的瞬時(shí)流量,數(shù)據(jù)類型寫的是float,以此我們來說明,40001說的是使用的保持寄存器,對(duì)應(yīng)的功能碼是03號(hào),1指的是寄存器從1號(hào)開始,因?yàn)閲?guó)內(nèi)的組態(tài)軟件都是從1開始的,但是原始報(bào)文對(duì)應(yīng)的是16進(jìn)制的報(bào)文0,因?yàn)閒loat浮點(diǎn)數(shù)是占2個(gè)寄存器地址,4個(gè)字節(jié),因此匯總所有的信息可以知道因發(fā)出去的指令為010300000002后面需要加CRC校驗(yàn)的,開頭的01指的是儀表的站號(hào),由此進(jìn)行組合,當(dāng)然開頭的站號(hào)是會(huì)進(jìn)行變更的,因?yàn)?85的通訊協(xié)議內(nèi)規(guī)定站號(hào)是從1-255的,以上是10進(jìn)制,轉(zhuǎn)為16進(jìn)制為01-FF,綜合以上解釋,最終形成的16進(jìn)制串口請(qǐng)求指令為010300000002C40B,發(fā)送請(qǐng)求指令到超聲波流量的通訊端口上,超聲波流量計(jì)通訊端口上獲取到請(qǐng)求指令后,會(huì)回復(fù)對(duì)應(yīng)的回復(fù)指令,回復(fù)的指令也同樣遵行標(biāo)準(zhǔn)的modbus RTU指令標(biāo)準(zhǔn),以上訴指令為例,回復(fù)因?yàn)?104XXXXXXXX+CRC,
01為站號(hào)對(duì)應(yīng)回復(fù),04是代表浮點(diǎn)數(shù)是4個(gè)字節(jié),2個(gè)寄存器,04后面會(huì)有對(duì)應(yīng)的4字節(jié)的16進(jìn)制的數(shù)據(jù),該數(shù)據(jù)就是表示浮點(diǎn)數(shù)的值,目前是16進(jìn)制表示的,需要進(jìn)行浮點(diǎn)數(shù)轉(zhuǎn)化才可以,最后加上CRC校驗(yàn),以上就是一次標(biāo)準(zhǔn)的超聲波流量計(jì)標(biāo)準(zhǔn)的485通訊,包含請(qǐng)求和回復(fù),一次完成的通訊就完成了,每次請(qǐng)求數(shù)據(jù)與再次請(qǐng)求數(shù)據(jù)之間的間隔一般需要在1秒以上。如果一個(gè)總線上需要獲取多個(gè)超聲波流量計(jì),通訊間隔時(shí)間需要累加起來計(jì)算。
(空格分隔,最多3個(gè),單個(gè)標(biāo)簽最多10個(gè)字符)
立即詢價(jià)
您提交后,專屬客服將第一時(shí)間為您服務(wù)