<object id="ayu7o"></object>

      <object id="ayu7o"></object>

    1. <menuitem id="ayu7o"></menuitem>
      <object id="ayu7o"></object>
      加入收藏 在線留言 聯系我們
      關注微信
      手機掃一掃 立刻聯系商家
      全國服務熱線18475208684
      公司新聞
      西門子S7-200 SMART Modbus RTU附樣例程序下載
      發布時間: 2024-05-23 15:23 更新時間: 2024-12-02 08:00
      s7-200 smart Modbus 主站通訊

      圖片image-202403

      Modbus 通訊簡介

      在工業領域,Modbus無處不在,無論你是否用過,大概你肯定聽過,那么Modbus是什么呢?Modbus是Modicon公司于1979年為使用可編程邏輯控制器通信而發表,現在已經發展成為工業領域標準通訊協議之一,廣泛應用于PLC與設備、儀表之間進行數據采集使用;

      Modbus 是公開通信協議,其Zui簡單的串行通信部分僅規定了在串行線路的基本數據傳輸格式。Modbus 具有兩種串行傳輸模式,ASCII 和 RTU,它們定義了數據如何打包、解碼的不同方式。支持 Modbus 協議的設備一般都支持 RTU  格式。

      Modbus 是一種單主站的主/從通信模式。Modbus 網絡上只能有一個主站存在,主站在 Modbus 網絡上沒有地址,從站的地址范圍為 0 -  247,其中 0 為廣播地址,從站的實際地址范圍為 1 - 247(即可鏈接設備數247)。注:理論上可鏈接設備247,但由于輪詢時間,信號干擾,阻抗等因素,實際應用中Zui多一般不超過32臺設備;

      需要注意的是我們通常說Modbus是RS485通訊,實際上這種說法是不準確的,Modbus是通訊協議,而RS485是通訊傳輸方式,同樣還有RS232,光纖,以太網等傳輸方式,標準Modbus協議都可以通過這些傳輸方式傳播。在 S7-200 smart CPU 通信口上實現的是 RS485 半雙工通信,使用的是 S7-200 SMART 的自由口功能。

      S7-200 Smart 主站指令庫

      西門子在 STEP 7-Micro/WIN SMART 中已經集成了 Modbus RTU 主站協議庫(西門子標準庫指令)。使用 Modbus RTU 主站指令庫,可以讀寫 Modbus RTU 從站的數字量、模擬量 I/O 以及保持寄存器。

      圖片image-202403

      注意:

      1. Modbus RTU 主站指令庫的功能是通過在用戶程序中調用預先編好的程序功能塊實現的,該庫對 CPU 集成的 RS 485 通訊口 和 CM 01 信號板有效。該指令庫將設置通信口工作在自由口模式下。
      2. Modbus RTU 主站指令庫使用了一些用戶中斷功能,編其他程序時不能在用戶程序中禁止中斷。
      3. Modbus RTU 主站指令庫可以同時應用于CPU 集成的 RS 485 通訊口 和 CM01 信號板,此時集成的RS 485口使用Modbus RTU Master(v2.0)中指令,CM01信號板使用Modbus RTU Master2(v2.0)中指令,如果只有一個主站則不做區分。
      S7-200 Smart 主站功能編程
    2. Modbus RTU 主站初始化和控制子程序

      1. 調用 Modbus RTU 主站初始化和控制子程序,使用 SM0.0 調用 MBUS_CTRL 完成主站的初始化,并啟動其功能控制:

        圖片image-202403

        各參數意義如下:

        EN使能:必須保證每一掃描周期都被使能(使用 SM0.0)
        Mode模式:為 1 時,使能 Modbus 協議功能;為 0 時恢復為系統  PPI 協議
        Baud波特率:支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。
        Parity校驗:校驗方式選擇    
        0=無校驗    
        1=奇較驗    
        2=偶較驗
        Port端口號:0 = CPU 集成的 RS 485 通訊口 ;      
        1 = 可選 CM 01 信號板 。
        Timeout超時:主站等待從站響應的時間,以毫秒為單位,典型的設置值為 1000  毫秒(1 秒),允許設置的范圍為 1 - 32767。
        注意: 這個值必須設置足夠大以保證從站有時間響應。
        Done完成位:初始化完成,此位會自動置1。可以用該位啟動MBUS_MSG 讀寫操作(見例程)
        Error錯誤代碼初始化錯誤代碼(只有在 Done 位為1時有效):      
        0= 無錯誤    
        1= 校驗選擇非法    
        2= 波特率選擇非法    
        3= 超時無效    
        4= 模式選擇非法    
        9= 端口無效    
        10= 信號板端口 1 缺失或未組態
    3. 調用 MBUS_MSG,發送一個Modbus 請求;

      1. 調用 Modbus RTU 主站讀寫子程序MBUS_MSG,發送一個Modbus 請求;

        圖片image-202403

        各參數意義如下:

        EN使能:同一時刻只能有一個讀寫功能(即  MBUS_MSG)使能     注意:建議每一個讀寫功能(即 MBUS_MSG)都用上一個 MBUS_MSG 指令的 Done 完成位來激活,以保證所有讀寫指令循環進行(見例程)。
        First讀寫請求位:每一個新的讀寫請求必須使用脈沖觸發
        Slave從站地址:可選擇的范圍  1 - 247
        RW讀寫請求:0 = 讀, 1 = 寫     注意:1. 數字量輸出和保持寄存器支持讀和寫功能2. 數字量輸入和模擬量輸入只支持讀功能
        Addr讀寫從站的數據地址:選擇讀寫的數據類型        
        00001 至 0xxxx - 數字量輸出        
        10001 至 1xxxx - 數字量輸入        
        30001 至 3xxxx - 模擬量輸入        
        40001 至 4xxxx - 保持寄存器
        Count數據個數通訊的數據個數(位或字的個數)注意:  Modbus主站可讀/寫的Zui大數據量為120個字(是指每一個 MBUS_MSG 指令)
        DataPtr數據指針:1.    如果是讀指令,讀回的數據放到這個數據區中        
        2. 如果是寫指令,要寫出的數據放到這個數據區中
        Done完成位讀寫功能完成位
        Error錯誤代碼:只有在 Done 位為1時,錯誤代碼才有效
        0 = 無錯誤
        1 =  響應校驗錯誤
        2 = 未用
        3 = 接收超時(從站無響應)
        4 = 請求參數錯誤(slave address, Modbus address, count,  RW)
        5 = Modbus/自由口未使能
        6 = Modbus正在忙于其它請求
        7 = 響應錯誤(響應不是請求的操作)
        8 = 響應CRC校驗和錯誤
        101 =  從站不支持請求的功能
        102 = 從站不支持數據地址
        103 = 從站不支持此種數據類型
        104 = 從站設備故障
        105 = 從站接受了信息,但是響應被延遲
        106  = 從站忙,拒絕了該信息
        107 = 從站拒絕了信息
        108 = 從站存儲器奇偶錯誤
    4. 在 CPU 的 V 數據區中為庫指令分配存儲區;

      Modbus Master 指令庫需要一個286個字節的全局 V 存儲區。

      調用STEP 7 - Mciro/WIN SMART Instruction Library(指令庫)需要分配庫指令數據區(Library Memory)。庫指令數據區是相應庫的子程序和中斷程序所要用到的變量存儲空間。如果在編程時不分配庫指令數據區,編譯時會產生許多相同的錯誤。

      操作步驟:

      1. 在指令樹的Project(項目)中,以鼠標右鍵單擊Program Block(程序塊),在彈出的快捷菜單中選擇Library Memory。

        圖片image-202403
      2. 在彈出的選項卡中設置庫指令數據區,可以自己填地址,也可選擇建議地址自動分配;注意:分配后的地址,不能再用在其他程序中;

        圖片image-202403
      3. 配置結束,下載程序即可進行通訊測試;

      關于 Modbus RTU 主站協議庫的補充說明

      Modbus 地址

      通常 Modbus 地址由 5 位數字組成,包括起始的數據類型代號,以及后面的偏移地址。Modbus Master 協議庫把標準的 Modbus 地址映射為所謂  Modbus 功能號,讀寫從站的數據。Modbus Master 協議庫支持如下地址:

    5. 00001 - 09999:數字量輸出( 線圈)
    6. 10001 - 19999:數字量輸入(觸點)
    7. 30001 - 39999:輸入數據寄存器(通常為模擬量輸入)
    8. 40001 - 49999:數據保持寄存器

    9. 聯系方式

      • 電  話:13922889745
      • 經理:向小姐
      • 手  機:18475208684
      • 微  信:18475208684