<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開(kāi)發(fā)網(wǎng)

      電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
      搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> PLC基礎(chǔ)入門(mén)教程 >> 正文

      分分鐘玩轉(zhuǎn)通訊!西門(mén)子plc的Modbus通訊MBUS_CTRL 、MBUS_MSG和MBUS_INIT、MBUS_SLAVE指令

      作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2023/1/18

      Modbus通訊標(biāo)準(zhǔn)協(xié)議可以通過(guò)各種傳輸方式傳播,如RS-232C、RS-485、光纖、無(wú)線電等。Modbus具有兩種串行傳輸模式,ASC2和RTU模式。支持Modbus協(xié)議的一般都支持RTU模式,通信雙方(主站和從站)必須同時(shí)支持上述模式中的一種。一般都使用RTU模式。

      Modbus是一種單主站的主/從通信模式,Modbus網(wǎng)絡(luò)上只能有一個(gè)主站存在(注意和PPI協(xié)議的區(qū)別),主站在Modbus網(wǎng)絡(luò)上沒(méi)有地址,從站的地址范圍為0-247,其中0為廣播地址,從站的實(shí)際地址范圍為1-247。

      主站  

      NO.1 初始化

      使用MODBUS通訊協(xié)議,必須首先初始化程序,使用MBUS_CTRL可初始化、監(jiān)視或禁用Modbus通訊,在使用MBUS_MSG指令之前,必須正確執(zhí)行MBUS_CTRL指令。指令完成后立即設(shè)定'完成'位,才能繼續(xù)執(zhí)行下一條指令。在每次掃描且 EN輸入打開(kāi)時(shí)執(zhí)行該指令。

       

      MBUS_CTRL指令必須在每次掃描時(shí)(包括首次掃描)被調(diào)用,


                          MBUS_CTRL指令        


      Mode('模式')輸入數(shù)值選擇通訊協(xié)議。輸入值1(可用SM0.0替代或者直接用數(shù)值1)將CPU端口分配給Modbus協(xié)議并啟用該協(xié)議。輸入值0將CPU端口分配給PPI系統(tǒng)協(xié)議并禁用Modbus協(xié)議。

      Baud (波特率)一般選擇9600。

      Parity (奇偶校驗(yàn)) 參數(shù)被設(shè)為與Modbus從站奇偶校驗(yàn)相匹配。所有設(shè)置使用一個(gè)起始位和一個(gè)停止位。一般選擇偶校驗(yàn)2.

      Timeout('超時(shí)')參數(shù)設(shè)為等待來(lái)自從站應(yīng)答的毫秒時(shí)間數(shù)。'超時(shí)'數(shù)值可以設(shè)置的范圍為1毫秒到32767毫秒。典型值是1000毫秒(1秒)(一般都設(shè)定為1000)

      。'超時(shí)'參數(shù)應(yīng)該設(shè)置的足夠大,以便從站有時(shí)間對(duì)所選的波特率作出應(yīng)答。

      '超時(shí)'參數(shù)用于確定Modbus從站是否對(duì)請(qǐng)求做出應(yīng)答。'超時(shí)'值確定Modbus主設(shè)備在發(fā)送了請(qǐng)求的最后一個(gè)字符后,將要等待多長(zhǎng)時(shí)間才會(huì)有應(yīng)答的第一個(gè)字符。如果在'超時(shí)'規(guī)定的時(shí)間內(nèi)至少收到應(yīng)答的一個(gè)字符,Modbus主設(shè)備將從Modbus從站接收到整個(gè)應(yīng)答。

      Done(完成) MBUS_CTRL指令完成時(shí),'完成'輸出打開(kāi)。

      Error(錯(cuò)誤) 輸出包含執(zhí)行該指令的結(jié)果。下表定義了在執(zhí)行MBUS_CTRL指令時(shí)會(huì)產(chǎn)生的錯(cuò)誤條件。指定一個(gè)字節(jié)來(lái)存放錯(cuò)誤代碼。

      錯(cuò)誤代碼         說(shuō)明

      0       無(wú)錯(cuò)誤

      1       奇偶校驗(yàn)選擇無(wú)效

      2       波特率選擇無(wú)效

      3       超時(shí)選擇無(wú)效

      4       模式選擇無(wú)效

      初始化完成!

       

       

       

       NO.2 啟動(dòng)Modbus協(xié)議

      讀操作

      MBUS_MSG(端口0使用)指令(或用于端口1的MBUS_MSG_P1)用于啟動(dòng)對(duì)Modbus從站的請(qǐng)求并處理應(yīng)答。

      當(dāng)EN輸入和'首次'輸入打開(kāi)時(shí),BUS_MSG指令啟動(dòng)對(duì)Modbus從站的請(qǐng)求。發(fā)送請(qǐng)求、等待應(yīng)答、并處理應(yīng)答通常需要多次掃描。EN輸入必須打開(kāi)以啟用請(qǐng)求的發(fā)送,并應(yīng)該保持打開(kāi)直到'完成'位(M10.1)被置位。


      MBUS_MSG指令 


      First(首次啟動(dòng)),在有新請(qǐng)求要發(fā)送時(shí)才打開(kāi)以進(jìn)行一次掃描,通過(guò)一個(gè)邊沿檢測(cè)元素(例如上升沿)打開(kāi),這將導(dǎo)致請(qǐng)求被傳送一次。

      Slave(從站地址) 從站的地址,允許的范圍是0到247,地址0是廣播地址,只能用于寫(xiě)請(qǐng)求。不存在對(duì)地址0的廣播請(qǐng)求的應(yīng)答。從站的實(shí)際地址范圍為1-247(從站的地址(Slave)在1-247范圍內(nèi)任選一個(gè)數(shù)即可,但需要和從站程序中的地址對(duì)應(yīng),否則通訊失敗)。主站在Modbus網(wǎng)絡(luò)上沒(méi)有地址。

      RW('讀寫(xiě)') 指定是用來(lái)讀取還是寫(xiě)入該消息。'讀寫(xiě)'參數(shù)允許使用下列兩個(gè)值。

      0  讀

      1        寫(xiě)

      Addr (地址) 是指向讀取或?qū)懭氲钠鹗糓odbus地址,'地址'的指定取值范圍基于Modbus從站支持的地址。一般都取40001。

      Count (計(jì)數(shù)) 指定在該請(qǐng)求中讀取或?qū)懭氲臄?shù)據(jù)元素的數(shù)目,MBUS_MSG指令將讀取或?qū)懭胱畲?20個(gè)字或1920個(gè)位(240字節(jié)的數(shù)據(jù))。'計(jì)數(shù)'的實(shí)際限值將取決于Modbus從站中的限制。

      DataPtr(地址指針) 指向S7-200 CPU的V存儲(chǔ)器中與讀取或?qū)懭胝?qǐng)求相關(guān)的數(shù)據(jù)的間接地址指針。DataPtr值作為間接地址指針傳遞到MBUS_MSG。例如,如果要寫(xiě)入Modbus從站的數(shù)據(jù)從S7-200 CPU中的地址VW200開(kāi)始,則DataPtr的數(shù)值將會(huì)是&VB200 (VB200的地址)。指針必須始終是VB類(lèi)型,即使它們指向字?jǐn)?shù)據(jù)。

       

      Done(完成位) 輸出在發(fā)送請(qǐng)求和接收應(yīng)答時(shí)關(guān)閉。'完成'輸出在應(yīng)答完成或MBUS_MSG指令因錯(cuò)誤而中止時(shí)打開(kāi)。完成信息存入輔助寄存器中(如M10.1)

      Error(錯(cuò)誤) 輸出僅當(dāng)'完成'輸出打開(kāi)時(shí)有效,反饋錯(cuò)誤代碼,存入輔助位寄存器中(如MB6)

      MBUS_MSG。

      錯(cuò)誤代碼         說(shuō)明

      0       無(wú)錯(cuò)誤

      1       應(yīng)答時(shí)奇偶校驗(yàn)錯(cuò)誤:僅當(dāng)使用偶校驗(yàn)或奇校驗(yàn)時(shí)才會(huì)發(fā)生。傳輸被干擾,可能會(huì)收到不正確的數(shù)據(jù)。該錯(cuò)誤通常是由電氣故障(例如錯(cuò)誤接線或者影響通訊的電噪聲)引起的。

      2       未使用

      3       接收超時(shí):在'超時(shí)'時(shí)間內(nèi),沒(méi)有來(lái)自從站的應(yīng)答?赡苡幸韵乱恍┰颍号c從站的電氣連接有問(wèn)題、主設(shè)備和從站設(shè)置為不同的波特率/奇偶校驗(yàn)設(shè)置,以及錯(cuò)誤的從站地址。

      4       請(qǐng)求參數(shù)出錯(cuò):一個(gè)或多個(gè)輸入?yún)?shù)(從站、讀寫(xiě)、地址或計(jì)數(shù))被設(shè)置為非法值。檢查文檔中輸入?yún)?shù)的允許值。

      5       Modbus主設(shè)備未啟用:在調(diào)用MBUS_MSG前,每次掃描時(shí)都調(diào)用MBUS_CTRL。

      6       Modbus忙于處理另一個(gè)請(qǐng)求:一次只能激活一條MBUS_MSG指令。

      7       應(yīng)答時(shí)出錯(cuò): 收到的應(yīng)答與請(qǐng)求不相關(guān)。這表示從站中出現(xiàn)了某些錯(cuò)誤,或者錯(cuò)誤的從站應(yīng)答了請(qǐng)求。

      8       應(yīng)答時(shí)CRC錯(cuò)誤: 傳輸被干擾,可能會(huì)收到不正確的數(shù)據(jù)。該錯(cuò)誤通常是由電氣故障(例如錯(cuò)誤接線或者影響通訊的電噪聲)引起的。

      101  從站不支持在該地址處所請(qǐng)求的功能:請(qǐng)參閱'使用Modbus主設(shè)備指令'幫助主題中的所需Modbus從站功能支持表。

      102  從站不支持?jǐn)?shù)據(jù)地址:'地址'加上'計(jì)數(shù)'所要求的地址范圍超出了從站所允許的地址范圍。

      103  從站不支持?jǐn)?shù)據(jù)類(lèi)型:該'地址'類(lèi)型不被從站支持。

      104  從站故障

      105  從站已接受消息但應(yīng)答延遲:這是MBUS_MSG的錯(cuò)誤,用戶(hù)程序應(yīng)在稍后重新發(fā)送請(qǐng)求。

      106  從站忙,因此拒絕消息:可以再次嘗試相同的請(qǐng)求,以獲得應(yīng)答。

      107  從站因未知原因而拒絕消息。

      108  從站存儲(chǔ)器奇偶校驗(yàn)錯(cuò)誤:從站中有錯(cuò)誤。

       

      低位編號(hào)的錯(cuò)誤代碼(1到8)是由MBUS_MSG指令檢測(cè)到的錯(cuò)誤。這些錯(cuò)誤代碼通常指示與MBUS_MSG指令的輸入?yún)?shù)有關(guān)的問(wèn)題,或接收來(lái)自從站的應(yīng)答時(shí)出現(xiàn)的問(wèn)題。奇偶校驗(yàn)和CRC錯(cuò)誤指示存在應(yīng)答但是數(shù)據(jù)未正確接收。這通常是由電氣故障(例如連接有問(wèn)題或者電噪聲)引起的。

      高位編號(hào)的錯(cuò)誤代碼(從101開(kāi)始)是由Modbus從站返回的錯(cuò)誤。這些錯(cuò)誤指示從站不支持所請(qǐng)求的功能,或者所請(qǐng)求的地址(或數(shù)據(jù)類(lèi)型或地址范圍)不被Modbus從站支持。

       

      由于一次只能激活一條MBUS_MSG指令。所以在第一條MBUS_MSG指令完成后,啟動(dòng)第二條指令,同時(shí)必須復(fù)位第一條指令。如果啟用了多條MBUS_MSG指令,則將處理所執(zhí)行的第一條MBUS_MSG指令,之后的所有MBUS_MSG指令將中止并產(chǎn)生錯(cuò)誤代碼6。


       


      寫(xiě)操作

      M10.0動(dòng)作之后啟動(dòng)第二條MBUS_MSG指令(寫(xiě)指令)(所謂通訊就是主/從的讀、寫(xiě)或者讀寫(xiě)的交互過(guò)程),將主站的數(shù)據(jù)寫(xiě)入到從站的處理器中。


      MBUS_MSG指令 


      Slave(從站地址) 同讀操作不變,地址與從站相一致。

      RW寫(xiě)1,啟動(dòng)“寫(xiě)”功能。

      Addr 不能與“讀”地址重合。

      Count 同上。

      DataPtr 同上,不能與讀操作地址重復(fù)。

      Done 同上,存儲(chǔ)器不能重復(fù)。

      Error 同上,位寄存器最好不要重復(fù)。

      寫(xiě)操作完成后,置位讀操作,復(fù)位寫(xiě)操作。


      讀寫(xiě)循環(huán)執(zhí)行


       

      數(shù)據(jù)傳送,(進(jìn)行對(duì)話)

      MOV_B指令 



      從站

      MBUS_INIT指令被用于啟用和初始化或禁止Modbus通訊。在使用MBUS_SLAVE指令之前,必須正確執(zhí)行MBUS_INIT指令。指令完成后立即設(shè)定'完成'位,才能繼續(xù)執(zhí)行下一條指令。


      MBUS_INIT指令 


      Mode(模式) 為1,啟用Modbus協(xié)議。

      Addr(地址) 與主站的尋址對(duì)應(yīng)一致。

      Baud (波特率)一般選擇9600。

      Parity (奇偶校驗(yàn)) 參數(shù)被設(shè)為與Modbus從站奇偶校驗(yàn)相匹配。所有設(shè)置使用一個(gè)起始位和一個(gè)停止位。一般選擇偶校驗(yàn)2.(和主站保持一致)

      Delay('延時(shí)')參數(shù)通過(guò)將指定的毫秒數(shù)增加至標(biāo)準(zhǔn)Modbus信息超時(shí)的方法延長(zhǎng)標(biāo)準(zhǔn)Modbus信息結(jié)束超時(shí)條件。該參數(shù)的典型數(shù)值在有線網(wǎng)絡(luò)上應(yīng)為0。

      MaxIQ 參數(shù)將供Modbus地址0xxxx和1xxxx使用的I和Q點(diǎn)數(shù)設(shè)為0至128之間的數(shù)值。建議使用的MaxIQ數(shù)值是128,該數(shù)值可在S7-200中存取所有的I和Q點(diǎn)。

      MaxAI參數(shù)將供Modbus地址3xxxx使用的字輸入(AI)寄存器數(shù)目設(shè)為0至32之間的數(shù)值。

      建議使用的MaxAI數(shù)值如下,這些數(shù)值可允許存取所有的S7-200模擬輸入:(根據(jù)CPU型號(hào)選擇數(shù)值)

      0用于CPU 221

      16用于CPU 222

      32用于CPU 224、224XP、226和226XM。

      MaxHold 參數(shù)設(shè)定供Modbus地址4xxxx使用的V存儲(chǔ)器中的字保持寄存器數(shù)目。例如,為了允許主設(shè)備存取2000個(gè)字節(jié)的V存儲(chǔ)器,將MaxHold 設(shè)為1000個(gè)字的數(shù)值(保持寄存器)。

      HoldStart參數(shù)是V存儲(chǔ)器中保持寄存器的起始地址,Modbus主設(shè)備可存取V內(nèi)存MaxHold個(gè)字?jǐn)?shù),從HoldStart開(kāi)始。

      Done(完成)MBUS_INIT指令完成時(shí),'完成'輸出打開(kāi)。

      Error(錯(cuò)誤)'錯(cuò)誤'輸出字節(jié)包含執(zhí)行指令的結(jié)果。

      錯(cuò)誤代碼         說(shuō)明

      0       無(wú)錯(cuò)誤

      1       內(nèi)存范圍錯(cuò)誤

      2       非法波特率或奇偶校驗(yàn)

      3       非法從屬地址

      4       非法Modbus參數(shù)值

      5       保持寄存器與Modbus從屬符號(hào)重疊

      6       收到奇偶校驗(yàn)錯(cuò)誤

      7       收到CRC錯(cuò)誤

      8       非法功能請(qǐng)求/功能不受支持

      9       請(qǐng)求中的非法內(nèi)存地址

      10     從屬功能未啟用


      MBUS_SLAVE指令被用于為Modbus主設(shè)備發(fā)出的請(qǐng)求服務(wù)。

      如果'完成'關(guān)閉,錯(cuò)誤參數(shù)不會(huì)改變。


      MBUS_SLAVE從站指令 


       



      40001至4xxxx是映射至V存儲(chǔ)器的保持寄存器。

      所有Modbus地址均以1為基位。

      下表顯示映射至S7-200地址的Modbus地址。

      4xxxx        HoldStart+2 x (xxxx-1)。

      40011   1000+2*(11-1)=1020 。


      接收數(shù)據(jù)


       

      Tags:modbus通訊,西門(mén)子plc,指令  
      責(zé)任編輯:admin
      相關(guān)文章列表
      西門(mén)子200SMART PLC編程通過(guò)指針輕松實(shí)現(xiàn)多個(gè)數(shù)據(jù)排列
      西門(mén)子S7-200SMART PLC如何實(shí)現(xiàn)星三角降壓?jiǎn)?dòng)多次調(diào)用?子程序編
      西門(mén)子PLC子程序?qū)嵗琒7-200 SMART PLC帶參數(shù)子程序應(yīng)用實(shí)例
      詳解步進(jìn)電機(jī)與PLC的接線,西門(mén)子、三菱等PLC接線(總結(jié)篇)PLC和
      三菱/信捷 PLC PLSR/DPLSR 多段雙向脈沖帶加減速脈沖輸出指令詳解
      三菱/信捷 PLC脈沖停止[STOP] 指令詳解
      西門(mén)子PLC編程實(shí)例  4個(gè)基本控制電路設(shè)計(jì)方法
      三菱FX2N系列PLC的TO指令、FROM指令解析,緩沖存儲(chǔ)器BFM
      三菱plc特殊功能模塊讀取與寫(xiě)入指令,TO指令和FROM指令,緩沖存儲(chǔ)
      S7-200smart 恒溫PID控制_STEP7中PID設(shè)置溫度自動(dòng)控制編程
      西門(mén)子plc傳送帶操作控制,傳輸帶控制
      西門(mén)子PLC實(shí)現(xiàn)汽車(chē)涂裝前處理生產(chǎn)線中的磷化槽液位控制
      |分享| S7-200SMART常用指令(二)
      S7-200SMART PLC 模擬量輸入案例,AM06模擬量擴(kuò)展模塊和SIT_R指令
      |實(shí)用|一文讓你讀懂使用中斷功能  ATCH和DTCH和RETI、DISI
      神級(jí)匯總,西門(mén)子PLC中斷指令及例程 ATCH和ENI
      STEP7【步驟詳解】西門(mén)子 PLC PID組態(tài)設(shè)置及PID常見(jiàn)問(wèn)題解答
      西門(mén)子plc怎么產(chǎn)生PWM信號(hào),脈沖輸出向?qū)WM輸出向?qū)?/a>
      西門(mén)子200SMART與眾辰變頻器的MODBUS通信實(shí)例40001和十六進(jìn)制的轉(zhuǎn)
      西門(mén)子PLC控制的專(zhuān)用自動(dòng)攻絲系統(tǒng)設(shè)計(jì),運(yùn)動(dòng)控制伺服控制系統(tǒng)設(shè)計(jì)
      請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱(chēng):
      1分 2分 3分 4分 5分

      還可以輸入 200 個(gè)字
      [ 查看全部 ] 網(wǎng)友評(píng)論
      推薦文章
      最新推薦
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁(yè)面
      下到頁(yè)底
      晶體管查詢(xún)
      主站蜘蛛池模板: 色天天综合色天天碰| 人人狠狠综合88综合久久| 激情综合婷婷丁香五月蜜桃| 亚洲国产综合人成综合网站| 狠狠色丁香九九婷婷综合五月 | 成人综合激情另类小说| 伊人久久久大香线蕉综合直播| 色综合久久久无码中文字幕| 成人精品综合免费视频| 亚洲综合一区二区国产精品| 狠狠综合久久av一区二区| 亚洲综合国产精品| 国产天天综合永久精品日| 中文网丁香综合网| 国产91久久综合| 国产成人亚洲综合网站不卡| 伊人久久大香线蕉综合Av| 精品无码综合一区二区三区| 亚洲国产综合精品中文第一区| 色欲综合久久躁天天躁| 久久综合精品视频| 久久婷婷五月综合色99啪ak| 亚洲国产综合精品中文第一| 久久综合香蕉久久久久久久| 狠狠色丁香久久婷婷综合| 熟天天做天天爱天天爽综合网| 色天使亚洲综合在线观看| 伊人色综合久久天天| 亚洲综合一区无码精品| 色综合AV综合无码综合网站| 亚洲色欲久久久综合网东京热| 亚洲伊人精品综合在合线| 狠狠88综合久久久久综合网 | 99v久久综合狠狠综合久久| 香蕉尹人综合在线观看| 亚洲综合av一区二区三区不卡 | 色婷婷综合久久久久中文| 亚洲综合在线观看视频| 久久综合综合久久综合| 亚洲免费综合色在线视频| 久久桃花综合桃花七七网|