西門子plcs7-300 集成pn口作客戶端與s7-300/400/1200/1500的 s7 單邊通信(tia)
s7-300 集成pn口作客戶端與s7-300/400/1200/1500的 s7 單邊通信(tia)s7單邊通信,僅需在客戶端側(cè)進(jìn)行組態(tài)編程;服務(wù)器側(cè)cpu無需組態(tài)編程。
所以在編程組態(tài)和建立連接方面,s7-300pn口做客戶端,只需要在 s7-300cpu 側(cè)建立單邊連接,使用單邊編程方式 put,get 指令進(jìn)行通信。
s7-300集成pn口側(cè)組態(tài)編程
服務(wù)器側(cè):s7-1200/1500cpu注意事項(xiàng)
所完成的通信任務(wù):
s7-300 集成pn口cpu 作為客戶端讀取 對方s7 cpu中 db1 的數(shù)據(jù)到 s7-300 的 db3 中。
s7-300 集成pn口cpu 作為客戶端將本地 db4 中的數(shù)據(jù)寫到 對方 s7 cpu中 db2 中。
項(xiàng)目創(chuàng)建環(huán)境:tia v13 sp1
s7-300集成pn口側(cè)組態(tài)編程新建項(xiàng)目并完成硬件配置(具體步驟請參見文檔:cpu硬件組態(tài)入門)
圖1. 組態(tài)設(shè)置子網(wǎng)
網(wǎng)絡(luò)組態(tài)
打開 “network view(網(wǎng)絡(luò)視圖)” 配置網(wǎng)絡(luò),首先點(diǎn)中左上角的“connections(網(wǎng)絡(luò))”圖標(biāo),選擇“s7 connection(s7連接)”,然后選中300 cpu,右鍵選擇“add new connection(添加新連接)”如圖所示。
圖2. 添加連接
然后在“create new connection(連接)”窗口中,選擇“unspecified”,然后點(diǎn)擊“add”建立 s7 連接,如圖2.所示。
圖3.建立 s7 連接
“s7_connection_1(s7_連接_1)”為建立的連接,選中連接,在屬性的“general(常規(guī))”條目中填寫對方設(shè)備的ip地址,如下圖4.所示。
圖4. 定義連接對方的 ip 地址
圖5. 定義通訊雙方的 tsap 號
注意:
通信的對方設(shè)備為
s7-300集成pn口或cp卡 ,tsap地址:03.02s7-400集成pn口或cp卡 ,tsap地址:03.xx; xx為400cpu設(shè)計(jì)插槽號s7-1200集成pn口 ,tsap地址:03.00,或03.01s7-1500集成pn口或cp卡,tsap地址:03.01
圖6. 連接 id 號
注意:此處的id號,將在編程的put,get塊中填寫(16進(jìn)制)
配置完網(wǎng)絡(luò)連接,編譯保存并下載。
圖7. 通訊連接狀態(tài)
指令塊編程
在 ob1 中,從“instruction(指令)” >“communication(通信)” >“s7 communication(s7通信)”下,調(diào)用get、put通信指令,創(chuàng)建接收和發(fā)送數(shù)據(jù)塊 db3 和 db4,定義成 101 個字節(jié)的數(shù)組,程序調(diào)用如下圖8.所示。
圖8. 程序調(diào)用功能
功能塊管腳說明:
call “get” db1 //調(diào)用 get,使用背景db塊:db1;
req m10.0+p沿 //上升沿觸發(fā)或使用系統(tǒng)時(shí)鐘 ;
id w#16#0001 //連接號,要與連接配置中一致,創(chuàng)建連接時(shí)的連接號,如圖5.所示;
ndr m30.0 //為1時(shí),接收到新數(shù)據(jù);
error m30.1 //為1時(shí),有故障發(fā)生;
status mw32 //狀態(tài)代碼;
addr_1 p#db1.dbx0.0 byte 10 //從通信伙伴數(shù)據(jù)區(qū)讀取數(shù)據(jù)的地址;
rd_1 p#db3.dbx0.0 byte 10 //本地接收數(shù)據(jù)地址;
call “put” db2 //調(diào)用 put,使用背景db塊:db2;
req m10.0+p沿 //上升沿觸發(fā)或使用系統(tǒng)時(shí)鐘 ;
id w#16#0001 //連接號,要與連接配置中一致,創(chuàng)建連接時(shí)的連接號,如圖5.所示;
done m30.2 // 為1時(shí),發(fā)送完成;
error m30.3 // 為1時(shí),有故障發(fā)生;
status mw34 // 狀態(tài)代碼;
addr_1 p#db2.dbx0.0 byte 10 // 發(fā)送到通信伙伴數(shù)據(jù)區(qū)的地址;
sd_1 p#db4.dbx0.0 byte 10 // 本地發(fā)送數(shù)據(jù)區(qū)。
監(jiān)控結(jié)果
通過在 s7-300 側(cè)編程進(jìn)行 s7 通訊,實(shí)現(xiàn)兩個 cpu 之間數(shù)據(jù)交換,以s7-1200為例,結(jié)果如下圖。
圖9. 監(jiān)控結(jié)果
服務(wù)器側(cè):s7-1200/1500cpu注意事項(xiàng)當(dāng)通信的對方cpu為s7-1200或s7-1500時(shí),有如下步驟必須設(shè)置。
1. s7-1200,s7-1500用于通信存放數(shù)據(jù)的db塊,必須設(shè)置為“非優(yōu)化”(即默認(rèn)的勾選取消掉)如圖10所示:
圖10. s7-1x00的數(shù)據(jù)塊非優(yōu)化設(shè)置
2. s7-1200cpu固件v4.0以上和s7-1500cpu,在cpu屬性--->保護(hù)--->連接機(jī)制中,
勾選“允許從遠(yuǎn)程伙伴...”,如圖11所示,