長沙玥勵(lì) 西門子 6ES7431-1KF20-0AB0 詳細(xì)使用說明
S7 協(xié)議是 SIEMENS S7系列產(chǎn)品之間通訊使用的標(biāo)準(zhǔn)協(xié)議,其優(yōu)點(diǎn)是通信雙方無論是在同一 MPI 總線上、同一 PROFIBUS 總線上或同一工業(yè)以太網(wǎng)中,都可通過 S7 協(xié)議建立通信連接,使用相同的編程方式進(jìn)行數(shù)據(jù)交換而與使用何種總線或網(wǎng)絡(luò)無關(guān)。S7 通信按組態(tài)方式可分為單邊通信和雙邊通信,單邊通信通常應(yīng)用于以下情況:
本文檔簡要介紹在STEP7 V5.5環(huán)境下,S7-300 集成PN口的CPU基于工業(yè)以太網(wǎng)的S7單邊通信的組態(tài)步驟,用于實(shí)現(xiàn)與S7-300/400/1200/1500 CPU之間的S7 通信。
設(shè)備 | 數(shù)量 | 訂貨號 | 注釋 |
CPU 315-2 PN/DP | 2 | 6ES7317-2EH14-0AB0 | V3.2 |
表 1主要硬件列表
設(shè)備 | 數(shù)量 | 訂貨號 | 注釋 |
STEP 7 Professional V5.5 | 1 | 6ES7511-1AK00-0AB0 | V1.8 |
CPU 1212C | 1 | 6ES7212-1AE40-0XB0 | V4.2 |
表 2軟件環(huán)境
2.1 通過如下的步驟配置編程電腦的IP地址:
選擇電腦的“ 控制面板 > 網(wǎng)絡(luò)和共享 > 本地連接>屬性”打開 Internet Protocol Version 4(TCP/IPv4),設(shè)置PC的 IP 地址,本例中為192.168.0.131。
圖1.設(shè)置PC地址
2.2 在STEP7 中組態(tài)315-2PN/DP CPU,雙擊X2卡槽,再點(diǎn)擊屬性按鈕以設(shè)置IP地址。(具體步驟請參見文檔:CPU硬件組態(tài)入門)
圖2.S7-300硬件組態(tài)
圖3.PN-IO屬性
2.3 設(shè)置好IP地址后(本例中為192.168.0.1),點(diǎn)擊New按鈕添加一條子網(wǎng)Ethernet(1),如果已經(jīng)存在子網(wǎng),也可選中該子網(wǎng)直接點(diǎn)OK按鈕即可。
圖4.添加IP地址和子網(wǎng)
2.4 點(diǎn)擊快捷菜單中的Configure Network按鈕進(jìn)入Netpro視圖。
圖5.點(diǎn)擊Configure Network按鈕
2.5 在Netpro視圖的CPU上點(diǎn)右鍵選擇Insert New Connection添加新連接。
圖6.添加新連接
2.6 通訊伙伴選擇非指定(Unspecified),通訊類型選擇S7 connection。
圖7.選擇通信伙伴和通信類型
2.7 點(diǎn)擊OK后在彈出的屬性窗口中勾選單端組態(tài)(Establish an active connection),并填寫通信伙伴的IP地址,注意Local ID編號,本例保持默認(rèn)值1。點(diǎn)擊詳細(xì)按鈕。
圖8.S7連接屬性
2.8 在地址詳細(xì)信息對話框中填寫通信伙伴CPU的機(jī)架號和槽號,如通信伙伴是S7-300/400 CPU則槽號為2,如通信伙伴是S7-1200/1500 CPU則槽號為1。點(diǎn)擊OK。
圖9.S7地址詳細(xì)
2.9 選中CPU,先編譯再下載
圖10.編譯下載
注:如不熟悉下載方法,可參考如下鏈接:
http://www.ad.siemens.com.cn/productportal/Prods/published\Soft\Soft_3.5\Soft_3.5.html
2.10 下載完成后,可點(diǎn)擊“激活連接狀態(tài)”按鈕,查看連接狀態(tài),如下圖所示,則表示組態(tài)的連接已經(jīng)成功建立。
圖11.連接已建立
2.11 如果出現(xiàn)如下圖所示的情況,則說明連接沒有建立,請檢查網(wǎng)線的連接、IP地址等。
圖12.連接未建立
3.1 組態(tài)連接建立成功后,需要調(diào)用通訊功能塊PUT和GET進(jìn)行數(shù)據(jù)交換。S7-300用于通訊連接的功能塊位于標(biāo)準(zhǔn)庫中,如下圖所示:
圖13.PUT GET指令位置
3.2調(diào)用PUT指令,本例中本地S7-300 CPU將DB10.DBB0開始的10個(gè)字節(jié)寫入通信伙伴CPU 的DB11.DBB0開始的10個(gè)字節(jié)中。
圖14.PUT指令
參數(shù) | 說明 |
REQ | 上升沿觸發(fā),一次上升沿發(fā)送一次數(shù)據(jù) |
ID | 連接ID(參看圖8) |
ADDR_1 | 指向伙伴CPU接收地址區(qū)域 |
SD_1 | 指向本地CPU發(fā)送地址區(qū)域 |
DONE | 發(fā)送完成(上升沿) |
ERROR | 有故障發(fā)生(上升沿) |
STATUS | 故障代碼 |
表 3 PUT管腳說明
3.3調(diào)用GET指令,本例中將通信伙伴CPU的DB20.DBB0開始的10個(gè)字節(jié)讀入到本地S7-300 CPU的DB21.DBB0開始的10個(gè)字節(jié)中。
圖15.GET指令
參數(shù) | 說明 |
REQ | 上升沿觸發(fā),一次上升沿讀取一次數(shù)據(jù) |
ID | 連接ID(參看圖8 |
ADDR_1 | 指向伙伴CPU發(fā)送地址區(qū)域 |
RD_1 | 指向本地CPU接收地址區(qū)域 |
DONE | 接收完成(上升沿) |
ERROR | 有故障發(fā)生(上升沿) |
STATUS | 故障代碼 |
表 4 GET管腳說明
3.4 S7-300 CPU做S7通訊的客戶端時(shí),伙伴CPU無需組態(tài)編程,準(zhǔn)備好相應(yīng)的數(shù)據(jù)區(qū)即可,如本例中的DB10和DB20。如果伙伴方是S7-1200(固件版本V4.0以上)或是S7-1500 CPU,需要在CPU屬性的連接機(jī)制中勾選"允許來自遠(yuǎn)程對象的PUT/GET通信訪問",如下圖所示:
S7單邊通信,僅需在客戶端側(cè)進(jìn)行組態(tài)編程;服務(wù)器側(cè)CPU無需組態(tài)編程。
所以在編程組態(tài)和建立連接方面,S7-300PN口做客戶端,只需要在 S7-300CPU 側(cè)建立單邊連接,使用單邊編程方式 PUT,GET 指令進(jìn)行通信。
服務(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
新建項(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è)備為
圖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 個(gè)字節(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)兩個(gè) CPU 之間數(shù)據(jù)交換,以S7-1200為例,結(jié)果如下圖。
圖9. 監(jiān)控結(jié)果
當(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所示,
長沙玥勵(lì) 西門子 6ES7431-1KF20-0AB0