軟件配置:ModScan測試軟件、Step7-MicroWin V4.0.6.35編程軟件
硬件配置:電腦、西門子200PLC(CPU 224XP CN REL 02.01)、PPI編程電纜、USB-TO-Serial電纜、研華ADAM4520 RS232/RS422/RS485模塊
準備:焊接RS485通訊電纜一根(Date+→DB9 3引腳、Date-→DB9 8引腳)、RS485通訊電纜連接200PLC的Port0端口、安裝modbus庫文件
1.打開Step7-MicroWin V4.0.6.35編程軟件,設置庫存儲(chu) 區;(注意:在“庫存儲(chu) 區分配”對話框中輸入庫存儲(chu) 區的起始地址,注意避免該地址和程序中已經采用或準備采用的其它地址重合。規定 Modbus 保持寄存器區從(cong) VB0 開始(HoldStart = VB0),並且保持寄存器為(wei) 1000個(ge) 字(MaxHold=1000),因保持寄存器以字(兩(liang) 個(ge) 字節)為(wei) 單位,實際上這個(ge) 通信緩衝(chong) 區占用了VB0~VB1999共2000個(ge) 字節。因此分配庫指令保留數據區時至少要從(cong) VB2000開始。當然保持區不一定要從(cong) VB0開始。)
2.在主程序中添加Modbus Slave Port0從(cong) 站塊(MBUS_INIT,MBUS_SLAVE)
庫文件
•西門子Modbus從(cong) 站協議庫包括兩(liang) 條指令:MBUS_INIT 指令和MBUS_SLAVE 指令。•MBUS_INIT 指令用於(yu) 啟用和初始化或禁止Modbus通訊。
•MBUS_SLAVE 指令用於(yu) 為(wei) Modbus主設備發出的請求服務。
•MBUS_INIT 指令用於(yu) 啟用和初始化或禁止Modbus從(cong) 站通訊。在使用MBUS_SLAVE 指令之前,必須正確執行MBUS_INIT 指令。指令完成後立即設定“完成”位,才能繼續執行下一條指令。
主從(cong) 站指令用法例子: www.fpxing.com/Article/tixingtu/10184.html
MBUS_INIT 指令說明:
•EN:指令使能位。•Mode:模式選擇,啟動/停止Modbus從(cong) 站通信。Mode 參數允許使用以下兩(liang) 個(ge) 數值:1——啟動,0——停止。
•Address:從(cong) 站地址,MODBUS從(cong) 站地址,取值1~247。
•Baud:波特率,可選1200,2400,4800,9600,19200,38400,57600,115200。•Parity:奇偶校驗,0=無校驗;1=奇校驗;2=偶校驗。
•Delay:延時,附加字符間延時,缺省值為(wei) 0。
•MaxIQ:最大I/Q位,參與(yu) 通信的最大I/O點數,S7-200的I/O映像區為(wei) 128/128,缺省值為(wei) 128。
•MaxAI:最大AI字數,參與(yu) 通信的最大AI通道數,可為(wei) 16或32。
•MaxHold:設定供Modbus地址4xxxx使用的V存儲(chu) 器中的字保持寄存器數目。
•HoldStart:保持寄存器區起始地址,以&VBx指定(間接尋址方式)。
•Done:初始化完成標誌,成功初始化後置1。
•Error:初始化錯誤代碼。
MBUS_SLAVE 指令說明:
MBUS_SLAVE 指令被用於(yu) 為(wei) Modbus主設備發出的請求服務,並且必須在每次掃描時執行,以便允許該指令檢查和回答Modbus請求。MBUS_SLAVE 指令無輸入參數,在每次掃描且EN 輸入開啟時執行。
•EN:指令使能位。
•Done:Modbus執行通信中時置1,無MODBUS 通信活動時為(wei) 0。
•Error:錯誤代碼。
3.編譯完成,通過PPI電纜下載程序,下載完成後斷開PPI電纜,連接485電纜,並打開ModScan測試軟件,設置參數與(yu) 定義(yi) 的Modbus參數相同。
設置如下圖的參數:
Device id 為(wei) 3(該地址為(wei) MBUS_INIT指令中的Address)
Address為(wei) 0001
Length為(wei) 100 寄存器選擇03:HOLDING REGISTER
打開connect窗口如下圖所示,並設置參數;選項串口的通信端口,設置通信的波特率、校驗位、停止位等參數。
單擊rotocol selection設置modbus報文傳(chuan) 輸的方式為(wei) 標準的RTU
單擊ok,設置modbus數據顯示的格式為(wei) swapped fp