<object id="ir2le"></object>
  • 加入收藏 在線留言 聯系我們
    關注微信
    手機掃一掃 立刻聯系商家
    全國服務熱線15267534595
    公司新聞
    西門子S7-200與變頻器Modbus RTU通訊實例詳解
    發布時間: 2023-11-12 21:51 更新時間: 2024-12-26 09:10
    Modbus通訊協議簡介Modbus是由Modicon(現為施耐德電氣公司的一個品牌)在1979年發明的,是全球第一個真正用于工業現場的總線協議。ModBus網絡是一個工業通信系統,由帶智能終端的可編程序控制器和計算機通過公用線路或局部專用線路連接而成。其系統結構既包括硬件、亦包括軟件。它可應用于各種數據采集和過程監控。ModBus網絡只有一個主機,所有通信都由他發出。網絡可支持247個之多的遠程從屬控制器,但實際所支持的從機數要由所用通信設備決定。采用這個系統,各PC可以和中心主機交換信息而不影響各PC執行本身的控制任務。 1 MODBUS RTU協議在S7-200中的應用原理1.1 MODBUSRTU協議與S7-200相互關系簡介    S7-200 CPU上的通訊口Port0可以支持MODBUS RTU協議,成為MODBUS RTU從站。此功能是通過S7-200的自由口通訊模式實現,因此可以通過無線數據電臺等慢速通訊設備傳輸。想在S7-200 CPU與其他支持MODBUS RTU的設備使用MODBUS RTU協議通訊,需要由有S7-200 CPU做MODBUS主站。S7-200 CPU做主站必須由用戶自己用自由口模式,按相關協議編程。2 從站指令的用法:    S7-200控制系統應用中,MODBUS RTU從站指令庫只支持CPU上的通訊0口(Port0)。要實現MODBUS RTU通訊,需要Step7-Micro/WIN32V3.2以上版本的編程軟件,而且須安裝Step7-Micro/WIN32V3.2 Instruction Library(指令庫)。MODBUS RTU功能是通過指令庫中預先編好的程序功能塊實現的。MODBUSRTU協議在S7-200中應用的基本過程(1) 首先檢查S7-200控制系統中所用Micro/WIN軟件版本,應當是Step7-Micro/WIN V3.2以上版本。(2) 檢查Micro/WIN的指令樹中是否存在MODBUSRTU從站指令庫(圖1),庫中應當包括MBUS_INIT和MBUS_SLAVE兩個子程序。如果沒有,須安裝Micro/WIN32V3.2 Instruction Library(指令庫)軟件包編程時使用SM0.1—調用子程序MBUS_INIT進行初始化,使用SM0.0—調用研究MBUS_SLAVE,并指定相應參數。關于參數的詳細說明,可在子程序的局部變量表中找到。調用MODBUS通訊指令庫參數意義如下: ●模式選擇:啟動/停止MODBUS,1=啟動;0=停止;● 從站地址:MODBUS從站址,取值1~247;● 波特率:可選1200,2400,4800,9600,19200,38400,57600;● 奇偶校驗:0=無校驗;1=奇校驗;2=偶校驗; ● 延時:附加字符間延時,缺省值為0; ● Zui大I/Q位:參與通訊的Zui大I/O點數,S7-200I/O映像區為128/128,缺省值為128;● Zui大AI字數:參與通訊的Zui大AI通道數,可為16或32;● Zui大保持寄存器區:參與通訊的V存儲區字(VW);● 保持寄存器區起始址:以&VBx指定(間接尋址方式);● 初始化完成標志:成功初始化后置1; ● 錯誤代碼:0=無錯誤。1.3 注意的問題    調用Step7-Mciro/WIN32 V3.2 Instruction Library(指令庫)需要分配庫指令數據區(LibraryMemory)。庫指令數據區是相應庫子程序和中斷程序所要用到變量存儲空間。編程時不分配庫指令數據區,編譯時會產生許多相同的錯誤。由子程序參數HoldStart和MaxHold指定保持寄存器區,是S7-200 CPUV數據存儲區中分配,此數據區不能和庫指令數據區有任何重疊,否則運行時會產生錯誤,不能正常通訊。注意MODBUS 中保持寄存器區按“字”尋址,即MaxHold規定是VW而VB個數。 3 主站指令的用法:1. MODBUS RTU 主站指令庫的功能是通過在用戶程序中調用預先編好的程序功能塊實現的,該庫對 Port 0 和 Port 1 有效。該指令庫將設置通信口工作在自由口模式下。2. MODBUS RTU 主站指令庫使用了一些用戶中斷功能,編其他程序時不能在用戶程序中禁止中斷。3. MODBUS RTU 主站庫對CPU的版本有要求。CPU 的版本必須為 2.00 或者2.01(即訂貨號為 6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的 S7-200 CPU 不支持。使用 MODBUS RTU 主站指令庫,可以讀寫 MODBUS RTU 從站的數字量、模擬量 I/O 以及保持寄存器。要使用 MODBUS RTU 主站指令庫,須遵循下列步驟:安裝西門子標準指令庫按照要求編寫用戶程序調用 MODBUS RTU 主站指令庫MODBUSRTU 主站功能編程1. 調用 MODBUS RTU 主站初始化和控制子程序使用 SM0.0 調用 MBUS_CTRL 完成主站的初始化,并啟動其功能控制:用 SM0.0 調用 MODBUS RTU 主站初始化與控制子程序各參數意義如下:a.      EN 使能:必須保證每一掃描周期都被使能(使用 SM0.0)b. Mode 模式: 為 1 時,使能 MODBUS 協議功能;為 0 時恢復為系統 PPI 協議c. Baud 波特率: 支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。d. Parity 校驗: 校驗方式選擇0=無校驗1=奇較驗2=偶較驗e. Timeout 超時: 主站等待從站響應的時間,以毫秒為單位,典型的設置值為1000 毫秒(1 秒),允許設置的范圍為 1 - 32767。注意: 這個值必須設置足夠大以保證從站有時間響應。f. Done 完成位: 初始化完成,此位會自動置1。可以用該位啟動 MBUS_MSG 讀寫操作(見例程)g. Error 初始化錯誤代碼(只有在 Done 位為1時有效):0= 無錯誤1= 校驗選擇非法2= 波特率選擇非法3= 模式選擇非法

    聯系方式

    • 電  話:18126392341
    • 聯系人:梁濤
    • 手  機:15267534595
    • 微  信:15267534595