通過集成RS485端口或可選通信板SM CM01的RS485/RS232端口,S7-200 SMART可以作為Modbus RTU主站或者從站同多個設備進行通信。
Modbus RTU通信端口
西門子S7-200 SMART作為Modbus RTU主站時,Zui多可以控制247個從站,通信板SB CM01與CPU集成端口功能是一樣的。利用STEP7 Micro/WIN SMART指令庫編程可以使Modbus RTU主站和從站通信更為簡單。下面我們通過一個簡單的實例來練習使用S7-200 SMART Modbus RTU通信。
Modbus RTU主站
需要完成如下通信任務:1、Modbus主站讀取Modbus從站DI通道I0.0開始的16位的值;2、Modbus主站向Modbus從站前5個保持寄存器寫入數據。本次試驗所需的硬件有:兩臺S7-200 SMART CPU、一臺以太網交換機CSM1277、一臺編程計算機、一根PROFIBUS通信電纜、三根以太網電纜。硬件之間的連接如下圖中所示:
硬件連接
下面,我們先來學習編寫Modbus RTU從站程序。首先編寫Modbus從站初始化程序,在Modbus從站項目中完成硬件組態和符號定義后,在指令樹中展開指令樹庫文件夾下的Modbus RTU Slave文件夾,拖放Modbus從站初始化指令到主程序中,在文件菜單功能區單擊存儲器按鈕打開庫存儲器分配對話框,輸入該指令庫存儲器的起始地址,例如VB1000,也可以單擊建議地址按鈕,系統自動計算可用的存儲器地址。注意該存儲區不能再重復使用。
設置指令庫存儲器起始地址
使能端插入一個常開觸點,輸入首次掃描位地址SM0.1,模式參數輸入1,啟用Modbus協議,Modbus從站地址設置為3,波特率設置為9600,奇偶校驗設置為偶校驗,端口設置為使用CPU集成的RS485端口,延時參數在有線網絡運行時設置為0,可訪問的IQ點數設置為256,可訪問的AI寄存器數設置為16,可訪問的V存儲區中的字保持寄存器數設置為100,V存儲區中的保持寄存器起始地址設置為VB0,輸入初始化完成標志位地址和錯誤代碼輸出地址。
Modbus從站初始化指令
編寫Modbus從站通信程序,從指令樹中拖放Modbus從站通信指令到程序中,使能端插入一個常開觸點,輸入始終接通位地址SM0.0,輸入從站通信完成標志位地址,輸入錯誤代碼輸出地址。為了直觀的查看試驗結果編寫程序將主站寫入從站的第一個保持寄存器的數據送入QW0,用CPU面板的輸出點指示燈顯示,單擊保存按鈕保存項目。
Modbus從站通信指令
在項目樹中展開程序塊的庫文件夾,可以看到Modbus從站指令使用了三個子程序和兩個中斷程序,將程序編譯下載到PLC,設置CPU為RUN工作模式,至此,Modbus從站的編程就完成了。
編譯下載程序
以上,我們介紹了S7-200 SMART的Modbus RTU通信如何編寫從站程序,下面我們繼續來學習編寫Modbus RTU通信主站程序:
首先,我們來編寫Modbus主站初始化程序,在Modbus主站項目中完成硬件組態和符號定義后,在指令樹中展開指令樹庫文件夾下的Modbus RTU Master文件夾,拖放Modbus主站初始化指令到主程序中。
拖放Modbus主站初始化指令
與從站類似,分配庫存儲器,使能端插入一個常開觸點,輸入始終接通位地址SM0.0,模式端也插入一個常開觸點輸入地址SM0.0,啟用Modbus協議。波特率設置為9600,奇偶校驗設置為偶校驗,端口設置為使用CPU集成的RS485端口,超時參數設置為1000毫秒,輸入初始化完成標志位地址和錯誤代碼輸出地址。
設置Modbus主站初始化指令參數
編寫實現Modbus主站讀寫Modbus從站的通信程序。要啟動對Modbus從站的讀寫請求和處理響應需要使用Modbus通信指令,請注意同一時刻只能有一條Modbus通信指令處于激活狀態,使用多條該指令時需要編寫程序實現輪詢。如下圖所示,程序段2實現的功能是首次掃描時置位使用Modbus通信標志位,復位其它Modbus通信指令使能位。
程序段2
程序段3實現的功能是,當啟用或者第一次調用Modbus通信指令時,從地址為3的Modbus從站中讀取地址10001開始的16個數據,也就是讀取DI通道從I0.0開始的十六位的值,讀取到的數據存放到主站VB0開始的存儲區中。
程序段3
程序段4實現的功能是,第一次調用完成后復位啟用標志位,復位第一次調用使能位,復位第二次調用完成位,置位第二次調用使能位。
程序段4
程序段5實現的功能是,第二次調用時向地址為3的Modbus從站寫入5個保持寄存器數據,從CPU的VB10到VB19獲取5個字數據,然后寫入到Modbus從站中的地址40001到40005。
程序段5
程序段6實現的功能是,第二次調用完成后復位第二次調用使能位,復位第一次調用完成位,置位第一次調用使能位。這樣就通過輪詢來實現了讀Modbus從站輸入位和寫Modbus從站保持寄存器的功能,單擊保存按鈕保存項目,在項目樹中展開程序塊下的庫文件夾,可以看到Modbus主站指令使用了三個子程序和一個中斷程序。
程序段6
將程序編譯下載到PLC,設置CPU為RUN工作模式,這樣Modbus主站的編程就完成了。
- S7-1200和S7-1200 之間的UDP通信如何組態?如何配置參數? 2024-12-02
- 如何將西門子S7-200的庫文件導至200SMART中使用? 2024-12-02
- 西門子S7-1200編程實例,基本邏輯運算指令如何使用? 2024-12-02
- 回原點的作用是什么?西門子S7-1200運動控制中的回原點如何使用? 2024-12-02
- 西門子S7-1200plc的軸組態與點動控制詳解 2024-12-02
- S7-1200 與 S7-300 PN/S7-400 PN UDP STEP7 通信 2024-12-02
- 西門子PLC通信200smart與1200PLCS7通信 2024-12-02
- 變頻器的通訊控制 2024-12-02
- 變頻器參數如何設定?變頻器參數設定步驟 2024-12-02
- 干貨分享:伺服驅動器的常見故障和解決方法 2024-12-02
- 什么是伺服控制系統?如何實現伺服控制? 2024-12-02
- 什么是RS485總線?怎么使用RS485總線?一文了解清楚 2024-12-02
- PLC和變頻器如何控制電動機?實例分享 2024-12-02
- 西門子S7-200SMART系統塊的組態,如何組態CPU、信號板和擴展模塊? 2024-12-02
- 西門子S7-200SMART整數運算指令如何使用?【編程實例】 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684