產(chǎn)品詳情
西門子 6ES7288-1ST30-0AA0 湖南長沙 銷售中心
S7-300集成DP口與200smart的DP主從通信(STEP7 & TIA)
STEP7 V5.x 中Smart DP01與S7-300的Profibus DP通訊
TIA 中Smart DP01與S7-300的Profibus DP通訊
DP通信所需要傳輸?shù)臄?shù)據(jù)超過64字節(jié)怎么辦?
S7-300與S7-200 SMART 通過 DP01 進行 PROFIBUS DP 通訊,需要進行S7-300站組態(tài),在S7-200 SMART系統(tǒng)中不需要對通訊進行組態(tài)和編程,只需要將要進行通訊的數(shù)據(jù)整理存放到相應(yīng)的 V 存儲區(qū),并且S7-300組態(tài)DP01從站時設(shè)置正確的地址即可。DP01的地址,在模塊本身上的撥碼設(shè)置分為X0(地址個位)和X10(地址十位);DP01是波特率自適應(yīng)的,取決于S7-300的組態(tài)。
注意:S7-200 SMART系統(tǒng)雖然不需要對通訊進行組態(tài)和編程,但是需要在STEP 7-Micro/WIN SMART 系統(tǒng)塊中組態(tài)EM DP 01 模塊。
西門子熱線工程師內(nèi)部學(xué)習(xí)講座-EM DP01模塊部分:
DP01 作為一個特殊的PROFIBUS-DP從站模塊,其相關(guān)參數(shù)(包括上述的數(shù)據(jù)一致性)是以GSD(或GSE)文件的形式保存的。在主站中配置DP01,需要安裝相關(guān)的GSD文件。
假設(shè) DP 主站已定義一個 I/O 組態(tài),其包含兩個插槽且 V 存儲器偏移量為 1000。將第一個插槽組態(tài)為 32 字節(jié)的輸入輸出,第二個插槽組態(tài)為 8 字節(jié)的輸入輸出。S7-200 SMART CPU 的輸出與輸入緩沖區(qū)均為 40 字節(jié) (32 + 8)。輸出數(shù)據(jù)(來自 DP 主站)緩沖區(qū)起始于 VB1000;輸入數(shù)據(jù)(送入 DP 主站)緩沖區(qū)緊隨輸出緩沖區(qū)并起始于 VB1040。
STEP7 V5.x 中Smart DP01與S7-300的Profibus DP通訊
首先,在STEP 7項目里插入一個S7-300的站并建立PROFIBUS DP 主站網(wǎng)絡(luò):
STEP7的硬件組態(tài)窗口中的"Options"菜單中點擊“Install GSD File..”,導(dǎo)入EM DP 01 GSD文件,安裝DP01配置文件,如下圖:
選擇DP01 GSD文件所在路徑:
導(dǎo)入EM DP 01 GSD文件后,在右側(cè)的設(shè)備選擇列表中找到DP01從站,PROFIBUS DP-Additional Field Device-PLC-SIMATIC-EM DP 01 PROFIBUS-DP,并且根據(jù)通訊字節(jié)數(shù),選擇相應(yīng)的配置。本例中的插槽一包含"4Bytes In/Out"預(yù)組態(tài) I/O 選項,插槽二包含"8 Bytes In/Out"預(yù)組態(tài) I/O 選項。如下圖:
確定S7-300硬件組態(tài)中所設(shè)置DP01的DP 從站地址,如下圖紅框標(biāo)注,為DP從站DP01的站地址。
如果使用的S7-200 SMART通信區(qū)域不從VB0開始,則還需要在“Parameter Assignment”選項卡中設(shè)置"I/O Offset in the V-memory"參數(shù),
該參數(shù)的設(shè)置如下圖所示(本例中S7-200 SMART通信區(qū)域是從VB0開始,所以此參數(shù)設(shè)置為0):
組態(tài)完系統(tǒng)的硬件配置后,將編譯下載到S7-300的PLC當(dāng)中。 在S7-200 SMART 側(cè)斷電的情況下,將DP01的撥位開關(guān)撥到與S7-300側(cè)硬件組態(tài)的設(shè)定值一致。
打開 STEP7中的變量表和STEP 7-MicroWIN SMART狀態(tài)表進行監(jiān)控,它們的數(shù)據(jù)交換結(jié)果如下圖:
VB0-VB11是S7-300寫到S7-200 SMART 的數(shù)據(jù),VB12-VB23是S7-300從S7-200 SMART讀取的值。
注:可以在S7-300 CPU Properties的 “Cycle/Clock Memory”標(biāo)簽下修改過程映像區(qū)的大小,使DP通訊的數(shù)據(jù)區(qū)在過程映像區(qū)之內(nèi),這樣設(shè)置的話就可以直接對過程映像區(qū)進行操作。
DP01上撥位開關(guān)的位置一定要和S7-300中組態(tài)的地址值一致。
TIA 中Smart DP01與S7-300的Profibus DP通訊
插入 CPU 315-2 DP 作為 DP 主站。
在項目視圖中,找到菜單欄并選擇:"選項 > 管理通用站描述文件(GSD)"(Options > Manage general station debion files (GSD))
在"源"(Source) 路徑中,找到之前加載到計算機中的 EM DP01 GSD 文件。 選中相應(yīng) GSD 文件行的復(fù)選框。 單擊"安裝"(Install) 按鈕。
插入 EM DP01 PROFIBUS DP 模塊。如下圖所示,在 DP 主站和設(shè)備之間創(chuàng)建 PROFIBUS 網(wǎng)絡(luò)。
設(shè)備視圖中組態(tài)DP01的通訊區(qū),本例中的插槽一包含"4 Bytes In/Out"預(yù)組態(tài) I/O 選項,插槽二包含"8 Bytes In/Out"預(yù)組態(tài) I/O 選項。在"Properties"、"General"選項卡區(qū)域,單擊"Device-specific beters"以顯示"I/O Offset in the V memory"字段。在此處可分配為該操作預(yù)留的那部分 V 存儲器的啟動地址。
注意:VB0-VB11是S7-300寫到S7-200 SMART 的數(shù)據(jù),VB12-VB23是S7-300從S7-200 SMART讀取的值。
打開博圖軟件中的監(jiān)控表和STEP 7-MicroWIN SMART狀態(tài)表進行監(jiān)控,它們的數(shù)據(jù)交換結(jié)果如下圖:
常見問題:
通信指示燈都正常,但數(shù)據(jù)讀取不到?
如果組態(tài)的io地址較大,則可能超過了300CPU默認的過程映像區(qū)。此時將IB,IW改為PIB,PIW讀取。
DP通信所需要傳輸?shù)臄?shù)據(jù)超過64字節(jié)怎么辦?
方法1:軟件里固定的通訊長度最大64bytes out/64 bytes in, 可以選擇圖中的“通用模塊”根據(jù)實際需求自由設(shè)置輸入/輸出區(qū)域,而DP01最大的通訊字節(jié)數(shù)是64 word out/64 word in。
方法2:分時通訊。以64字節(jié)通信區(qū)為例,若超過最大配置。那么可以將通信區(qū)的第一個字節(jié)作為標(biāo)志位,這樣需要在S7-200Smart中分時或條件判斷,將數(shù)據(jù)放置或讀取通信區(qū)域。同理,在S7-300中也需要判斷標(biāo)志位。
方法3:滿足擴展要求的前提下,同一個200smart可以擴展多個DP01,具體可以參考本文中最大I/O擴展能力的要求,那么在同一個S7-300的項目里可以組態(tài)多個PROFIBUS從站。
方法2可以增大通信的數(shù)據(jù)量,但由于通過標(biāo)志位來分時分次傳輸?shù)?,所以通信?shù)據(jù)的刷新會比方法3慢;方法3通過擴展DP從站或者200PLC的通信端口來實現(xiàn)數(shù)據(jù)擴展的,但增加了成本,且需要考慮是否滿足擴展要求。
S7-300/400與S7-200SMART之間的以太網(wǎng)S7通信
S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET網(wǎng)絡(luò)的一種優(yōu)化的通信協(xié)議,主要用于S7-300/400PLC之間的通信。
經(jīng)過測試發(fā)現(xiàn)S7-300/400通過集成的PN口或CP343-1/CP443-1與S7-200 SMART PLC 之間的S7通信也是可以成功的, 但是需要S7-300/400側(cè)編程調(diào)用PUT/GET指令。
注意:
1.S7-200 SMART CPU 與S7-300/400 CPU 之間的S7通信未經(jīng)西門子官方測試,本文檔僅供客戶測試使用,使用該種通信方式所產(chǎn)生的任何危險需要有客戶自己承擔(dān)!
2.S7-200 SMARTPLC V2.0 版本才開始支持PUT/GET通信,V1.0版本的CPU需要升級固件后方可支持PUT/GET。
3. S7-300/400若采用CP通信時,則需要采用Standard或Advanced類型通信模塊,CP343-1 Lean模塊不支持。
4.本文僅介紹S7-300集成PN口與S7-200 SMART CPU S7通信。
S7通信介紹
S7通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET網(wǎng)絡(luò)的一種優(yōu)化的通信協(xié)議,主要用于S7-300/400PLC之間的通信。
S7-300/400通過以太網(wǎng)接口與S7-200 SMART PLC 之間的S7通訊經(jīng)過測試是可以成功的,但是需要S7-300/400側(cè)編程調(diào)用PUT/GET指令,見表1所示。
表 1 PUT和GET :
S7-400 | S7-300 | 描述 | 簡要描述 |
SFB 14 | FB 14 | 讀數(shù)據(jù) | 單邊編程讀訪問。 |
SFB 15 | FB 15 | 寫數(shù)據(jù) | 單邊編程寫訪問。 |
S7-300/400根據(jù)使用通信接口(集成的PN口或CP343-1/CP443-1)不同,調(diào)用的功能塊來源也不同。
通信接口為S7-300 集成PN接口時,需要使用Standard Library中PUT/GET指令,如圖1所示。
圖1 S7-300PN接口需采用Standard Library
通信接口為S7-300 CP通信模塊時,需要使用SIMATIC_NET_CP 庫中PUT/GET指令,如圖2所示。
圖2 S7-300 CP模塊接口需采用SIMATIC_NET_CP庫
S7-400 CPU不區(qū)分通信接口,需要使用System Function Blocks 中的SFB14/SFB15指令塊,如圖3所示。
圖3 S7-400 需采用SFB程序塊
硬件及網(wǎng)絡(luò)組態(tài)
本文以采用1個315-2PN/DP,1個S7-200 SMART PLC為例,介紹它們之間的S7通信。
在STEP7中創(chuàng)建一個新項目,項目名稱為S7-300-SMART。插入1個S7-300站,在硬件組態(tài)中插入CPU 315-2 PN/DP。如圖4所示。
圖4 STEP7 項目中插入S7-300站點
設(shè)置CPU 315-2PN/DP的IP地址:192.168.0.1,如圖5所示。硬件組態(tài)完成后,即可下載該組態(tài)。
圖5 設(shè)置CPU PN IP地址
打開“NetPro”設(shè)置網(wǎng)絡(luò)參數(shù),選中CPU 315-2PN/DP,在連接列表中建立新的連接。步驟如圖6所示。
圖6 NetPro組態(tài)視圖中插入新連接
選擇 Unspecified 站點,選擇通訊協(xié)議 S7 connection,點擊 Apply,如圖7所示。
圖7 組態(tài)新連接
在彈出的S7 connection屬性對話框中,勾選 Establish an active connection,設(shè)置Partner address:192.168.0.2(S7-200 SMART PLC IP 地址),如圖8所示。
圖8 設(shè)置S7連接參數(shù)
點擊 "Address Details" ,再彈出來的對話框設(shè)置 Partner 的 Slot 為1,如圖9所示。點擊 OK即可關(guān)閉該對話框。
圖9 設(shè)置“address details”參數(shù)
網(wǎng)絡(luò)組態(tài)創(chuàng)建完成后,需要編譯,如圖10所示。
圖10 保存并編譯連接
網(wǎng)絡(luò)組態(tài)編譯無錯,鼠標(biāo)先點擊 CPU 315-2PN/DP ,然后點擊下載按鈕下載網(wǎng)絡(luò)組態(tài),步驟如圖11所示。
圖 11 下載組態(tài)連接
程序編程
可以通過SFB/FB 14 "GET",從遠程CPU中讀取數(shù)據(jù)。
S7-300:在REQ的上升沿處讀取數(shù)據(jù)。在REQ的每個上升沿處傳送參數(shù)ID、ADDR_1和RD_1。在每個作業(yè)結(jié)束之后,可以分配新數(shù)值給ID、ADDR_1和RD_1參數(shù)。
S7-400:在控制輸入REQ的上升沿處啟動SFB。在此過程中,將要讀取的區(qū)域的相關(guān)指針(ADDR_i)發(fā)送到伙伴CPU。遠程伙伴返回此數(shù)據(jù)。在 下一個SFB/FB調(diào)用處,已接收的數(shù)據(jù)被復(fù)制到組態(tài)的接收區(qū)(RD_i)中。必須要確保通過參數(shù)ADDR_i和RD_i定義的區(qū)域在長度和數(shù)據(jù)類型方面 要相互匹配。
通過狀態(tài)參數(shù)NDR數(shù)值為1來指示此作業(yè)已完成。只有在前一個作業(yè)已經(jīng)完成之后,才能重新激活讀作業(yè)。遠程CPU可以處于RUN或STOP工作狀態(tài)。如果 正在讀取數(shù)據(jù)時發(fā)生訪問故障,或如果數(shù)據(jù)類型檢查過程中出錯,則出錯和警告信息將通過ERROR和STATUS輸出表示。
通過使用SFB/FB 15 "PUT",可以將數(shù)據(jù)寫入到遠程CPU。
S7-300:在REQ的上升沿處發(fā)送數(shù)據(jù)。在REQ的每個上升沿處傳送參數(shù)ID、ADDR_1和SD_1。在每個作業(yè)結(jié)束之后,可以給ID、ADDR_1和SD_1參數(shù)分配新數(shù)值。
S7-400:在控制輸入REQ的上升沿處啟動SFB。在此過程中,將指向要寫入數(shù)據(jù)的區(qū)域(ADDR_i)的指針和數(shù)據(jù)(SD_i)發(fā)送到伙伴CPU。 遠程伙伴將所需要的數(shù)據(jù)保存在隨數(shù)據(jù)一起提供的地址下面,并返回一個執(zhí)行確認。必須要確保通過參數(shù)ADDR_i和SD_i定義的區(qū)域在編號、長度和數(shù)據(jù)類 型方面相互匹配。
如果沒有產(chǎn)生任何錯誤,則在下一個SFB/FB調(diào)用時,通過狀態(tài)參數(shù)DONE來指示,其數(shù)值為1。只有在最后一個作業(yè)完成之后,才能再次激活寫作業(yè)。遠程 CPU可以處于RUN或STOP模式。如果正在寫入數(shù)據(jù)時發(fā)生訪問故障,或如果執(zhí)行檢查過程中出錯,則出錯和警告信息將通過ERROR和STATUS輸出 表示。
打開SIMATIC 315 PN-1的OB1,在OB1中依次調(diào)用FB14,F(xiàn)B15如圖12、圖13所示:
圖12 FB14調(diào)用
表2.FB14參數(shù)說明 :
參數(shù) |
描述 |
數(shù)據(jù)類型 |
存儲區(qū) |
描述 |
REQ |
INPUT |
BOOL |
I、Q、M、D、L |
上升沿觸發(fā)調(diào)用功能塊 |
ID |
INPUT |
WORD |
M、D、常數(shù) |
地址參數(shù)ID |
NDR |
OUTPUT |
BOOL |
I、Q、M、D、L |
為1時,接收數(shù)據(jù)成功 |
ERROR |
OUTPUT |
BOOL |
I、Q、M、D、L |
接收到新數(shù)據(jù) |
STATUS |
OUTPUT |
WORD |
I、Q、M、D、L |
故障代碼 |
S7-300: |
IN_OUT |
ANY |
M、D
I、Q、M、D、 |
從S7-200 SMART的數(shù)據(jù)地址中讀取數(shù)據(jù);V區(qū)數(shù)據(jù)對應(yīng)DB1。 |
S7-300: |
IN_OUT |
ANY |
S7-300:M、D |
本站接收數(shù)據(jù)地址 |
圖13 FB15調(diào)用
表3.FB15參數(shù)說明 :
參數(shù) |
描述 |
數(shù)據(jù)類型 |
存儲區(qū) |
描述 |
REQ |
INPUT |
BOOL |
I、Q、M、D、L |
上升沿觸發(fā)調(diào)用功能塊 |
ID |
INPUT |
WORD |
M、D、常數(shù) |
地址參數(shù) |
DONE |
OUTPUT |
BOOL |
I、Q、M、D、L |
為1時,發(fā)送完成 |
ERROR |
OUTPUT |
BOOL |
I、Q、M、D、L |
為1時,有故障發(fā)生 |
STATUS |
OUTPUT |
WORD |
I、Q、M、D、L |
故障代碼 |
S7-300: |
IN_OUT |
ANY |
M、D
I、Q、M、D、 |
從S7-200 SMART的數(shù)據(jù)地址中讀取數(shù)據(jù);V區(qū)數(shù)據(jù)對應(yīng)DB1。 |
S7-300: |
IN_OUT |
ANY |
S7-300:M、D
S7-400 I、Q、 |
本站發(fā)送數(shù)據(jù)地址 |
注意:
S7-200 SMART PLC 不需要編程。 S7-200 SMART 中的V存儲區(qū)在S7-300/400 PLC 編程中以DB1數(shù)據(jù)塊的形式體現(xiàn)。
S7-300與S7-200Smart DP01之間的MPI通信
S7-200 SMART PLC 通過EM DP01 模塊與 S7-300 PLC之間采用 MPI 通訊方式時,S7-200 SMART PLC 中不需要編寫任何與通訊有關(guān)的程序,只需要將要交換的數(shù)據(jù)整理到一個連續(xù)的V 存儲區(qū)當(dāng)中即可,而S7-300 PLC中需要在組織塊OB1(或是定時中斷組織塊OB35)當(dāng)中調(diào)用系統(tǒng)功能X_GET(SFC67)和X_PUT(SFC68),以實現(xiàn)S7-200 SMART PLC 與 S7-300 PLC之間的通訊。
S7-300 PLC調(diào)用 SFC67 和 SFC68 時,該系統(tǒng)功能的"VAR_ADDR" 參數(shù)需要填寫S7-200 SMART PLC側(cè)數(shù)據(jù)地址區(qū)。由于S7-200 SMART PLC 的數(shù)據(jù)區(qū)為 V 區(qū),如果這個參數(shù)填寫為 P#DB1.DBX×× BYTE n 則對應(yīng)的就是S7-200 SMART PLC側(cè)VB×× ~ VB(××+n -1)的數(shù)據(jù)區(qū)。 例如交換的數(shù)據(jù)存在S7-200 SMART PLC 中 VB50 到 VB59 這10個字節(jié)當(dāng)中,則“VAR_ADDR”參數(shù)應(yīng)為 P#DB1.DBX50.0 BYTE 10。首先根據(jù)S7-300的硬件配置,在STEP7當(dāng)中組態(tài)S7-300站并且下載,注意S7-300出廠默認的MPI地址是2,需要保證DP 01模塊站地址與S7-300 地址不沖突。例子程序當(dāng)中將S7-300 MPI地址設(shè)定為2,DP01 地址通過外部撥碼設(shè)定3,另外DP01 模塊自支持自適應(yīng)波特率,S7-300側(cè)可以根據(jù)實際需要設(shè)置波特率。
S7-200 SMART 組態(tài)
S7-200 SMART系統(tǒng)中需根據(jù) EM DP 01模塊所在的實際位置在系統(tǒng)塊中添加EM DP01模塊,但添加的DP01 模塊無需再進行其他設(shè)置,本例中DP01模塊緊鄰CPU,MPI地址通過DP01模塊外部撥碼開關(guān)進行調(diào)節(jié)。系統(tǒng)塊設(shè)置如下圖:
S7-300 CPU 在 Step7 平臺下組態(tài)
S7-300 PLC修改MPI地址可以參考下圖:
例子程序在OB1當(dāng)中調(diào)用數(shù)據(jù)讀寫功能塊:SFC67和SFC68,如下圖所示:
分別在 STEP 7-MicroWIN SMART 和STEP7當(dāng)中監(jiān)視S7-300 PLC和 S7-200 SMART PLC當(dāng)中的數(shù)據(jù),數(shù)據(jù)監(jiān)視界面如下:
S7-300 CPU 在 TIA 平臺下組態(tài)
S7-300 PLC修改MPI地址可以參考下圖:
例子程序在OB1當(dāng)中調(diào)用數(shù)據(jù)讀寫功能塊:X_PUT和X_GET。
分別在 STEP 7-MicroWIN SMART 和STEP7當(dāng)中監(jiān)視S7-300 PLC和 S7-200 SMART PLC當(dāng)中的數(shù)據(jù),數(shù)據(jù)監(jiān)視界面如下:
湖南長沙西門子6ES7288-1ST30-0AA0銷售中心 西門子 湖南長沙