- 艾寶物聯(lián)IOBOV? ─ 工業(yè)無(wú)線(xiàn)測控專(zhuān)家
常見(jiàn)問(wèn)題
S7-200 SMART是否支持Modbus ASCII通信模式?
STEP 7-Micro/WIN SMART軟件未提供Modbus ASCII通信模式指令庫。S7-200 SMART CPU若用于Modbus ASCII通信時(shí),則需要用戶(hù)使用自由口通信模式進(jìn)行編程。
S7-200 SMART CPU集成的RS485 端口(端口 0 )以及SB CM01信號板(端口 1)兩個(gè)通信端口能否同時(shí)作為Modbus RTU主站或者同時(shí)作為Modbus RTU從站?
S7-200 SMART v2.2版本支持兩個(gè)通信端口同時(shí)做MODBUS RTU主站,不支持同時(shí)做MODBUS RTU從站。
S7-200 SMART CPU作為 Modbus RTU 主站如何訪(fǎng)問(wèn) Modbus 地址范圍大于49999 的保持寄存器?
通常Modbus協(xié)議的保持寄存器范圍在40001到49999之間,這個(gè)范圍對于多數應用來(lái)說(shuō)已經(jīng)足夠了,但有些Modbus從站保持寄存器區的地址會(huì )超出該范圍。Modbus RTU主站協(xié)議庫支持保持寄存器地址范圍為(40001到49999)或者(400001到465536)。如果Modbus 從站地址范圍為400001到465536,只需在調用 MBUS_MSG 子程序時(shí)給Addr參數賦相應的值即可,如416768。
S7-200 SMART CPU作為Modbus RTU主站,多次調用MBUS_MSG指令時(shí),為什么該指令會(huì )出現6#錯誤代碼?
1.同一時(shí)間只能有一條MBUS_MSG指令處于激活狀態(tài),如果激活多條MBUS_MSG指令,將執行第一條MBUS_MSG指令,所有后續MBUS_MSG指令將中止執行并出現6#錯誤代碼。多條MBUS_MSG指令的執行需要采用輪詢(xún)方式。
2. Modbus庫存儲區中分配的建議地址區與編程中已使用的V存儲區有重疊。
S7-200 SMART CPU作為Modbus RTU主站,從站故障或者通信線(xiàn)路斷開(kāi)時(shí),主站會(huì )嘗試發(fā)送多次請求報文,從而導致通信時(shí)間過(guò)長(cháng)。如何減少主站的重發(fā)次數,以提高通信效率?
MBUS_MSG指令被激活時(shí)將發(fā)送Modbus請求報文幀,如果在Timeout參數定義的時(shí)間間隔內主站未接收到從站應答,Modbus RTU主站協(xié)議庫默認的情況下還會(huì )再發(fā)送2次Modbus請求報文幀;在最后一次請求報文幀發(fā)送后,經(jīng)過(guò)Timeout 參數定義的時(shí)間間隔后還未收到應答時(shí),MBUS_MSG指令的Done完成位才被設置為1。將mModbusRetries變量的數值由2改為0,即可取消Modbus請求報文幀的重試次數。mModbusRetries變量的絕對地址可通過(guò)查詢(xún)Modbus RTU主站協(xié)議庫的符號表獲取。
為什么有的HMI軟件使用Modbus RTU協(xié)議可以讀取作為Modbus RTU從站S7-200 SMART CPU的數據,但是不能寫(xiě)入數據?
可能此軟件使用Modbus功能15寫(xiě)多個(gè)開(kāi)關(guān)量輸出功能到S7-200 SMART CPU時(shí),沒(méi)有遵守從站協(xié)議中“以整字節地址邊界(如Q0.0、Q2.0)開(kāi)始、以8的整數倍為位個(gè)數”的規約。定義HMI 軟件嚴格執行此規律可以避免發(fā)生寫(xiě)入錯誤的情況。
為什么有的 HMI 軟件使用 Modbus RTU 協(xié)議讀取作為 Modbus RTU 從站 S7-200 SMART CPU 的浮點(diǎn)型數據時(shí)會(huì )出現錯誤?
可能此HMI軟件使用Modbus RTU通信協(xié)議時(shí),處理保持寄存器中浮點(diǎn)數的存儲格式與西門(mén)子的浮點(diǎn)數存儲格式不同。西門(mén)子的PLC遵循“高字節低地址、低字節高地址”的規約。
Modbus RTU的保持寄存器以“字”為單位,1個(gè)浮點(diǎn)型數據則由2個(gè)“字”構成。HMI軟件在處理時(shí)可能會(huì )將保持寄存器的兩個(gè)“字”互換位置,造成不能識別以西門(mén)子格式表示的浮點(diǎn)數。如果HMI軟件一方無(wú)法處理這種浮點(diǎn)數,則可在S7-200 SMART CPU中編程將存入保持寄存器區的浮點(diǎn)數的高“字”和低“字”互換。
S7-200 SMART緊湊型CPU作為Modbus RTU從站時(shí),已經(jīng)將MBUS_INIT指令的Mode 輸入參數設置為“1”了,但是MBUS_SLAVE指令還是會(huì )出現10#錯誤(從站功能未啟用)?
S7-200 SMART緊湊型CPU不能擴展信號模塊,不具有模擬量輸入通道,如果MBUS_INIT指令的MaxAI輸入參數設置不為“0”,則MBUS_SLAVE指令會(huì )出現10#錯誤。
S7-200 SMART CPU作為Modbus RTU從站時(shí),是否支持Modbus RTU主站發(fā)送的廣播命令?
S7-200 SMART CPU作為Modbus RTU從站時(shí),不支持廣播命令。