圖20 S7-400單站系統(tǒng)做客戶端時(shí)不同的功能碼的參數(shù)定義
由于客戶端和服務(wù)器均使用相同的功能塊FB108“MODBUSCP ”的參數(shù)需要初始化,因此分別在OB100及OB1中調(diào)用FB108,在OB100中調(diào)用FB108完成相關(guān)參數(shù)的初始化,FB108的管腳分布參見3.3章節(jié)中的圖10說(shuō)明。
打開ModSim32軟件,在“Connection--->connect”中打開連接屬性對(duì)話框,連接接口選擇“Modbus/TCP svr”,TCP/IP Server Port為本地服務(wù)器的端口502,如下圖21所示:
圖21 ModSim32中設(shè)置端口號(hào)
下載硬件組態(tài)及程序到CPU中,給參數(shù)ENQ_ENR發(fā)送脈沖信號(hào);在打開的ModSim32軟件窗口設(shè)置寄存器連接類型、起始地址、長(zhǎng)度等,如下圖22所示:
圖22 ModSim32中Modbus數(shù)據(jù)參數(shù)定義
關(guān)于SIMATIC中DB偏移量、Modbus物理編址、應(yīng)用層編址對(duì)應(yīng)關(guān)系請(qǐng)參考本文中2.3章節(jié)圖14的說(shuō)明
之后在CP443-1 Client就可以建立和遠(yuǎn)程ModSim32 Server的連接了,在Netpro中可以看到連接已經(jīng)建立起來(lái),如下圖23所示:
圖23 Modscan32激活與S7-400的連接
在Step7的項(xiàng)目程序中新建一個(gè)變量監(jiān)控表,插入需要監(jiān)控的參數(shù)和數(shù)據(jù)區(qū)變量,可以看到ModSim32軟件與S7-400的數(shù)據(jù)通訊已經(jīng)建立起來(lái)了,雙方可以進(jìn)行正常的保持寄存器數(shù)據(jù)讀寫操作,如下圖24所示:
圖24 S7-400單站系統(tǒng)作為客戶端與ModSim32軟件通訊
由于是通過PC測(cè)試軟件模擬第三方設(shè)備與SIMATIC CPU的集成PN口進(jìn)行Modbus TCP通訊,因此在實(shí)際的第三方設(shè)備與CPU的集成PN口進(jìn)行通訊時(shí)需要注意以下幾點(diǎn):
1) 由于訂貨號(hào)2XV9450-1MB02程序中會(huì)占用CPU 較大的裝載和工作存儲(chǔ)區(qū),因此對(duì)于性能比較低特別是S7-300的低端CPU進(jìn)行通訊時(shí)必須考慮一定的富余量。
2) 對(duì)于SIMATIC S7,參數(shù)DB_x的數(shù)據(jù)區(qū)建議使用不同的DB 塊,使用同一個(gè)DB的不同地址區(qū)會(huì)造成地址編排混亂,另外參數(shù)Start_x與END_x 參數(shù)不能出現(xiàn)地址疊加情況。
3) 第三方設(shè)備的數(shù)據(jù)區(qū)與SIMATIC S7的數(shù)據(jù)DB塊的地址對(duì)應(yīng)關(guān)系可以先按照第三方的數(shù)據(jù)區(qū)域Modbus地址的偏移關(guān)系之后計(jì)算相應(yīng)的偏移量。
4)建議使用項(xiàng)目中的樣例程序,只須修改連接ID,定義通訊雙方的IP地址、端口號(hào)及相應(yīng)的數(shù)據(jù)存儲(chǔ)區(qū)等,能減少編程量,只須把樣例程序放到一個(gè)單獨(dú)的FC塊中即可,樣例程序中定義了足夠的數(shù)據(jù)區(qū),連接成功及錯(cuò)誤次數(shù)指示等。
5) Modbus TCP每一包的數(shù)據(jù)最多只能發(fā)送125個(gè)寄存器或2000個(gè)比特位,超過該范圍必須進(jìn)行分包處理。
6) S7-300/400作為Client能與多少個(gè)Server建立通訊或者作為Server時(shí)能與多少個(gè)Client通訊取決于產(chǎn)品所支持的TCP連接數(shù),Modbus/TCP協(xié)議并沒有對(duì)此進(jìn)行約束和限制。
未經(jīng)授權(quán)的Modbus TCP軟件可用于測(cè)試和學(xué)習(xí),不允許用于商業(yè)行為;未經(jīng)授權(quán)的軟件測(cè)試時(shí)CPU 的INTF指示燈紅色閃爍,并在CPU故障緩沖區(qū)生成錯(cuò)誤信息;同時(shí),Modbus TCP功能塊報(bào)錯(cuò),如圖25、26所示: