1.S7-200 SMART 是否支持 Modbus ASCII 通信模式?
STEP 7-Micro/WIN SMART 軟件未提供Modbus ASCII 通信模式指令庫(kù)。S7-200 SMART CPU若用于Modbus ASCII 通信時(shí),則需要用戶使用自由口通信模式進(jìn)行編程。
2.S7-200 SMART CPU 集成的RS485 端口(端口 0 )以及SB CM01 信號(hào)板(端口 1 )兩個(gè)通信端口能否同時(shí)作為 Modbus RTU 主站或者同時(shí)作為 Modbus RTU從站?
S7-200 SMART V2.2版本支持兩個(gè)通信端口同時(shí)做MODBUS RTU主站,不支持同時(shí)做MODBUS RTU從站。
3.S7-200 SMART CPU作為 Modbus RTU 主站如何訪問 Modbus 地址范圍大于49999 的保持寄存器?
通常 Modbus 協(xié)議的保持寄存器范圍在 40001 到 49999 之間,這個(gè)范圍對(duì)于多數(shù)應(yīng)用來(lái)說已經(jīng)足夠了,但有些 Modbus 從站保持寄存器區(qū)的地址會(huì)超出該范圍。Modbus RTU 主站協(xié)議庫(kù)支持保持寄存器地址范圍為(40001 到 49999) 或者(400001 到 465536)。如果 Modbus 從站地址范圍為 400001 465536,只需在調(diào)用 MBUS_MSG 子程序時(shí)給 Addr 參數(shù)賦相應(yīng)的值即可,如 416768。
4.S7-200 SMART CPU作為 Modbus RTU 主站,多次調(diào)用 MBUS_MSG 指令時(shí),為什么該指令會(huì)出現(xiàn) 6# 錯(cuò)誤代碼?
1.同一時(shí)間只能有一條 MBUS_MSG 指令處于激活狀態(tài),如果激活多條 MBUS_MSG 指令,將執(zhí)行***條 MBUS_MSG 指令,所有后續(xù) MBUS_MSG 指令將中止執(zhí)行并出現(xiàn) 6# 錯(cuò)誤代碼。多條 MBUS_MSG 指令的執(zhí)行需要采用輪詢方式 。
2. Modbus庫(kù)存儲(chǔ)區(qū)中分配的建議地址區(qū)與編程中已使用的V存儲(chǔ)區(qū)有重疊。
5.S7-200 SMART CPU作為 Modbus RTU 主站,從站故障或者通信線路斷開時(shí),主站會(huì)嘗試發(fā)送多次請(qǐng)求報(bào)文,從而導(dǎo)致通信時(shí)間過長(zhǎng)。如何減少主站的重發(fā)次數(shù),以提高通信效率?
MBUS_MSG 指令被激活時(shí)將發(fā)送 Modbus 請(qǐng)求報(bào)文幀,如果在Timeout 參數(shù)定義的時(shí)間間隔內(nèi)主站未接收到從站應(yīng)答,Modbus RTU 主站協(xié)議庫(kù)默認(rèn)的情況下還會(huì)再發(fā)送 2 次 Modbus 請(qǐng)求報(bào)文幀;在***后一次請(qǐng)求報(bào)文幀發(fā)送后,經(jīng)過 Timeout 參數(shù)定義的時(shí)間間隔后還未收到應(yīng)答時(shí), MBUS_MSG 指令的 Done 完成位才被設(shè)置為 1 。將 mModbusRetries 變量的數(shù)值由 2 改為 0 ,即可取消 Modbus 請(qǐng)求報(bào)文幀的重試次數(shù)。mModbusRetries 變量的***地址可通過查詢Modbus RTU 主站協(xié)議庫(kù)的符號(hào)表獲取,如圖 1. Modbus RTU 主站指令符號(hào)表所示。
圖 1. Modbus RTU 主站指令符號(hào)表