圖5 服務器功能塊庫程序結構
注意:Modscan32軟件可以從網上免費下載得到,本例中使用的版本為V7.0版,由于各版本的功能不盡相同,因此需要注意版本問題。
本例中所用的硬件設備如下表:
名稱 |
數量 |
訂貨號 |
S7-400電源模塊PS 407 10A |
1 |
6ES7407-0KA01-0AA0 |
S7-400 CPU414-3PN/DP |
1 |
6ES7414-3EM05-0AB0(V5.2) |
S7-400 CP443-1 |
1 |
6GK7443-1EX41-0XE0(V1.0) |
S7-400 機架 |
1 |
6ES7400-1JA00-0AA0 |
網線 |
若干 |
|
筆記本電腦 |
1 |
|
表1 服務器硬件清單
所用到軟件如下表:
名稱 |
訂貨號 |
STEP7 V5.5 組態(tài)編程軟件 英文版 |
|
“ ModbusTCP CP V4.3” 軟件選項包 |
2XV9450-1MB00 |
Modscan32 V7.0 |
|
表2 服務器軟件清單
打開Step7軟件,新建一個工程項目文件,命名為“M_TCP_CP_V43(Server)”, 在項目下插入一個S7-400站,如下圖6所示:
圖6 新建S7-400 Station
雙擊插入的SIMATIC 400 Station的“Hardware”,打開硬件組態(tài),在硬件組態(tài)界面下分別插入機架,電源PS407、CPU414-3PN/DP、CP443-1,本例中將CP的IP地址設為192.168.70.2,如下圖7所示:
圖7 硬件組態(tài)并設置CP443-1的IP地址
打開Netpro網絡組態(tài),選中CPU414-3PN/DP,插入一個新連接,連接伙伴為Unspecified,連接類型為TCP Connection,如下圖8所示:
圖8 網絡組態(tài)-新建TCP connection
打開連接屬性對話框中的“General Inbation”,由于CP443-1做Server被動連接,因此不勾選“Active connection estabishment”選項,ID保持缺省即可,在“Address”欄中同樣由于CP443-1做Server,因此填入連接的Port號設置為502,組態(tài)完成后,編譯保存,將例程站點“SIMATIC 400(Server)”中的程序(System data不需要拷貝)拷貝到該項目中并下載(注意:OB100中調用的FB108的id和laddr需根據組態(tài)確認)。對于通訊伙伴Remote的IP地址可以不填,即允許任意IP地址的客戶端發(fā)起連接,如下圖9所示:
圖9 S7-400為服務器的TCP connection參數設置
對于服務器和客戶端的端口號(下述中以Port代替)的選擇需要注意以下幾點:
1)一般情況下服務器端的Port號modbus TCP規(guī)范缺省為502,客戶端的Port號設置為客戶端允許的號即可,另外各廠商產品也有一些限制,對于SIMATIC產品一般從2000之后開始。
2)對于一個系統(tǒng)來說,當創(chuàng)建多個TCP連接時,要保證IP地址和Port號不重合,即同一個IP地址下創(chuàng)建多個TCP連接時Port號必須不同,而不同的系統(tǒng)因IP地址不同可以使用相同的Port號,例如本例中如果需要創(chuàng)建多個TCP連接作為Server時因只有一個IP,因此Port號必須不同。
由于“ ModbusTCP CP V4.3”選項包支持功能碼FC1,2,3,4,5,6,15,16,不同的功能碼測試過程中類似,因此下面以FC03(讀寫保持寄存器)為例來說明通訊測試的整個過程,對于其他功能碼的測試將不再重復描述,對于Modbus的數據類型可參考下表3: