1. 加入收藏 在線留言 聯系我們
        關注微信
        手機掃一掃 立刻聯系商家
        全國服務熱線13185520415

        云浮市西門子低壓電器授權總經銷商 西門子WinCC軟件授權總經銷商

        提醒:因為軟件開發行業無明確禁止法規, 該企業僅提供軟件開發外包定制服務,項目需取得國家許可,嚴禁非法用途。 違法舉報
        更新時間
        2024-12-02 08:00:00
        價格
        請來電詢價
        西門子PLC
        西門子總代理商
        西門子變頻器 西門子電機
        西門子一級代理
        西門子觸摸屏
        西門子授權經銷商
        聯系電話
        13510737515
        聯系手機
        13185520415
        聯系人
        董海波
        立即詢價

        詳細介紹


        Modbus RTU是S7-1200/1500常用的串口通信協議,很多項目都會用這種方式連接大量儀表,因為通常都是基于半雙工的RS485接口,所以同一時刻只能訪問一個站,對于每個站的訪問就需要用到輪詢的方式。我們在這里就為大家講一下如何去編寫輪詢程序。

        1.1

        Modbus RTU 主站通信

        Modbus RTU的通信作業是主站去讀從站的某個地址區的數據或者把數據寫入從站的指定地址。讀和寫作為兩個作業彼此不能沖突,從站同一時間也只能接收一個作業請求(被讀或者被寫),所以在主站程序中需要完全錯開兩種作業。


        如圖1所示為Modbus RTU 主站的初始化。

        圖片

        圖1、Modbus RTU 主站初始化程序


        這一塊重點關注的是這幾個部分:· 因為絕大多數Modbus RTU都是基于RS485,所以對初始化程序的背景數據塊的Mode變量賦值為4,此外也可以在背景數據塊直接修改起始值。· REQ賦值,可以是FirstScan,也可以是常數True/1。· PORT填寫正確,一定是對應串口模塊的硬件標識符。· MB_DB參數為后面Modbus_Master的背景數據塊中的MB_DB變量。· 如果同一CPU下有多個串口模塊都使用Modbus RTU 主站通信,則圖1程序調用多次,且背景數據塊不能相同。· 以上程序在主程序(程序循環)而非啟動OB中調用。· 當初始化完成后DONE位會有一個掃描周期的1,這可以作為后面輪詢程序的啟動信號。

        圖片


        后續將調用Modbus_Master,很多時候工程師都是直接使用時鐘脈沖去觸發每個讀寫作業,對單個站往往直接使用時鐘脈沖,多個站可能使用時鐘脈沖+計數器或者時鐘脈沖上升沿/下降沿。這些方法并不是不行,只是偶爾會導致些錯誤,例如在Modbus RTU中是16#8200,究其原因是前面提到的“程序中需要錯開兩種作業”,也就是這樣做會偶爾導致前一作業沒執行完,后一作業就已經觸發!
        相關產品

        聯系方式

        • 電  話:13510737515
        • 聯系人:董海波
        • 手  機:13185520415
        • 微  信:13185520415