軟件配置: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編程軟件,設(shè)置庫存儲區(qū);(注意:在“庫存儲區(qū)分配”對話框中輸入庫存儲區(qū)的起始地址,注意避免該地址和程序中已經(jīng)采用或準備采用的其它地址重合。規(guī)定 Modbus 保持寄存器區(qū)從 VB0 開始(HoldStart = VB0),并且保持寄存器為1000個字(MaxHold=1000),因保持寄存器以字(兩個字節(jié))為單位,實際上這個通信緩沖區(qū)占用了VB0~VB1999共2000個字節(jié)。因此分配庫指令保留數(shù)據(jù)區(qū)時至少要從VB2000開始。當然保持區(qū)不一定要從VB0開始。)
2.在主程序中添加Modbus Slave Port0從站塊(MBUS_INIT,MBUS_SLAVE)
庫文件
•西門子Modbus從站協(xié)議庫包括兩條指令:MBUS_INIT 指令和MBUS_SLAVE 指令。•MBUS_INIT 指令用于啟用和初始化或禁止Modbus通訊。
•MBUS_SLAVE 指令用于為Modbus主設(shè)備發(fā)出的請求服務(wù)。
•MBUS_INIT 指令用于啟用和初始化或禁止Modbus從站通訊。在使用MBUS_SLAVE 指令之前,必須正確執(zhí)行MBUS_INIT 指令。指令完成后立即設(shè)定“完成”位,才能繼續(xù)執(zhí)行下一條指令。
主從站指令用法例子: www.simpaso.com/Article/tixingtu/10184.html
MBUS_INIT 指令說明:
•EN:指令使能位。•Mode:模式選擇,啟動/停止Modbus從站通信。Mode 參數(shù)允許使用以下兩個數(shù)值:1——啟動,0——停止。
•Address:從站地址,MODBUS從站地址,取值1~247。
•Baud:波特率,可選1200,2400,4800,9600,19200,38400,57600,115200。•Parity:奇偶校驗,0=無校驗;1=奇校驗;2=偶校驗。
•Delay:延時,附加字符間延時,缺省值為0。
•MaxIQ:最大I/Q位,參與通信的最大I/O點數(shù),S7-200的I/O映像區(qū)為128/128,缺省值為128。
•MaxAI:最大AI字數(shù),參與通信的最大AI通道數(shù),可為16或32。
•MaxHold:設(shè)定供Modbus地址4xxxx使用的V存儲器中的字保持寄存器數(shù)目。
•HoldStart:保持寄存器區(qū)起始地址,以&VBx指定(間接尋址方式)。
•Done:初始化完成標志,成功初始化后置1。
•Error:初始化錯誤代碼。
MBUS_SLAVE 指令說明:
MBUS_SLAVE 指令被用于為Modbus主設(shè)備發(fā)出的請求服務(wù),并且必須在每次掃描時執(zhí)行,以便允許該指令檢查和回答Modbus請求。MBUS_SLAVE 指令無輸入?yún)?shù),在每次掃描且EN 輸入開啟時執(zhí)行。
•EN:指令使能位。
•Done:Modbus執(zhí)行通信中時置1,無MODBUS 通信活動時為0。
•Error:錯誤代碼。
3.編譯完成,通過PPI電纜下載程序,下載完成后斷開PPI電纜,連接485電纜,并打開ModScan測試軟件,設(shè)置參數(shù)與定義的Modbus參數(shù)相同。
設(shè)置如下圖的參數(shù):
Device id 為3(該地址為MBUS_INIT指令中的Address)
Address為0001
Length為100 寄存器選擇03:HOLDING REGISTER
打開connect窗口如下圖所示,并設(shè)置參數(shù);選項串口的通信端口,設(shè)置通信的波特率、校驗位、停止位等參數(shù)。
單擊rotocol selection設(shè)置modbus報文傳輸?shù)姆绞綖闃藴实腞TU
單擊ok,設(shè)置modbus數(shù)據(jù)顯示的格式為swapped fp