發(fā)布時(shí)間:2023-10-04 來源:眾智博遠(yuǎn)
西門子在 STEP 7-Micro/WIN SMART 中正式推出 Modbus RTU 主站/從站協(xié)議庫(kù),Modbus RTU 指令位于 STEP7-Micro/WIN SMART 項(xiàng)目樹中“指令”文件夾的“庫(kù)”文件夾中。如圖1.Modbus RTU庫(kù)指令所示。
S7-200 SMART 與調(diào)試助手之間 Modbus RTU 通信
圖1.Modbus RTU庫(kù)指令
注意: 1. Modbus RTU 主站指令庫(kù)的功能是通過在用戶程序中調(diào)用預(yù)先編好的程序功能塊實(shí)現(xiàn)的,該庫(kù)對(duì) CPU 集成的 RS 485 通訊口 和 CM 01 信號(hào)板有效。該指令庫(kù)將設(shè)置通信口工作在自由口模式下。 2. Modbus RTU 主站指令庫(kù)使用了一些用戶中斷功能,編其他程序時(shí)不能在用戶程序中禁止中斷。 3. Modbus RTU 主站指令庫(kù)可以同時(shí)應(yīng)用于CPU 集成的 RS 485 通訊口 和 CM01 信號(hào)板,此時(shí)集成的RS 485口使用Modbus RTU Master(v2.0)中指令,CM01信號(hào)板使用Modbus RTU Master2(v2.0)中指令,如果只有一個(gè)主站則不做區(qū)分。
使用環(huán)境: ① STEP 7 Micro/WIN SMART ( 軟件版本 V2.5 ) ② ModScan32 ③ Modbus Slave 所完成的通信任務(wù): ① ModScan32 接收 8 個(gè)字節(jié)數(shù)據(jù): <-- ( S7-200 SMART 側(cè)做從站響應(yīng) ) VW1000~VW1014 ② Modbus Slave 接收 8 個(gè)字節(jié)數(shù)據(jù): <-- ( S7-200 SMART 側(cè)做主站寫 ) VW1000~VW1014
1. 打開ModScan32軟件
2. 點(diǎn)擊“Setup”---“Display Definition”---設(shè)定"Slave Address"為3---“Point Type”(本例程以保持型寄存器為例)---“Length”為8
如圖2所示,設(shè)置完成后點(diǎn)擊OK
圖2.Display Definition
3. 點(diǎn)擊“Connection”----“Connect”
圖3. 建立連接
① Connect選擇 Direct Connection to COM3,根據(jù)實(shí)際情況選擇不同的串口; ② 串口參數(shù)的設(shè)置與CPU保持一致
1.打開STEP 7 Micro/WIN SMART>項(xiàng)目樹>指令樹>庫(kù)>Modbus RTU Slave(v3.1),調(diào)用MBUS_INIT和MBUS_SLAVE,如圖4、圖5所示。
圖4. Modbus RTU Slave指令庫(kù)
圖5. MBUS_SLAVE
2.鼠標(biāo)選中程序塊文件夾,單擊右鍵,下拉菜單中選擇庫(kù)存儲(chǔ)器,如圖6所示。
圖6.點(diǎn)擊庫(kù)存儲(chǔ)器
3.在庫(kù)存儲(chǔ)區(qū)分配對(duì)話框中手動(dòng)輸入存儲(chǔ)區(qū)的起始地址。此實(shí)例為VB0開始,以使指令庫(kù)可以正常工作。確保庫(kù)存儲(chǔ)區(qū)與程序中其他已使用的地址不沖突。使用建議地址無法確定是否有地址重疊,所以手動(dòng)輸入正確的庫(kù)存儲(chǔ)區(qū)首地址。如圖7所示。
圖7.庫(kù)存儲(chǔ)區(qū)地址分配
4.編譯項(xiàng)目,下載程序。
通信結(jié)果如下:
圖8. 測(cè)試結(jié)果
1. 打開Modbus Slave軟件
2. 點(diǎn)擊"Setup"---"Slave Definition"---"Slave"為從站地址---設(shè)定Function”(本例程以保持型寄存器為例)---"Quantity"為8---"Display"為Signed
如圖9所示,設(shè)置完成后點(diǎn)擊OK
圖9.Slave Definition
3. 點(diǎn)擊"Connection"----"Connect"
圖10. 建立連接
① Connect選擇 Serial Port; ② Mode 選擇RTU; ③Port3表示使用的串口(COM3),根據(jù)實(shí)際情況選擇不同的串口,串口參數(shù)的設(shè)置與CPU保持一致。
1.打開STEP 7 Micro/WIN SMART>項(xiàng)目樹>指令樹>庫(kù)>Modbus RTU Master(v2.0),調(diào)用MBUS_CTRL和MBUS_MSG,如圖11和圖12所示。
圖11. 用 SM0.0 調(diào)用 Modbus RTU 主站初始化與控制子程序
圖12. 調(diào)用Modbus RTU 主站讀寫子程序
常見的錯(cuò)誤:
2.鼠標(biāo)選中程序塊文件夾,單擊右鍵,下拉菜單中選擇庫(kù)存儲(chǔ)器,如圖13所示。
圖13.點(diǎn)擊庫(kù)存儲(chǔ)器
3.在庫(kù)存儲(chǔ)區(qū)分配對(duì)話框中手動(dòng)輸入存儲(chǔ)區(qū)的起始地址。此實(shí)例為VB0開始,以使指令庫(kù)可以正常工作。確保庫(kù)存儲(chǔ)區(qū)與程序中其他已使用的地址不沖突。使用建議地址無法確定是否有地址重疊,所以手動(dòng)輸入正確的庫(kù)存儲(chǔ)區(qū)首地址。如圖14所示。
圖14.庫(kù)存儲(chǔ)區(qū)地址分配
4.編譯項(xiàng)目,下載程序。
將M0.1置位為1,然后在狀態(tài)圖表中創(chuàng)建變量,VW1000-VW1014 共8個(gè)字,監(jiān)視值如圖15所示。
圖15.讀取服務(wù)器數(shù)據(jù)
本例程僅供參考,程序中的CPU版本、類型可能與用戶實(shí)際使用不同,用戶可能需要先對(duì)例子程序做修改和調(diào)整,才能將其用于測(cè)試。本例程的作者和擁有者對(duì)于該例程的功能性和兼容性不負(fù)任何責(zé)任,使用該例程的風(fēng)險(xiǎn)完全由用戶自行承擔(dān)。由于它是免費(fèi)的,所以不提供任何擔(dān)保,錯(cuò)誤糾正和熱線支持,用戶不必為此聯(lián)系西門子技術(shù)支持與服務(wù)部門。