一、S7 Open IE通訊概述
可以通過S7-300/400 PLC集成的 PROFINET 接口使用基于工業(yè)以太網(wǎng)的開放式通信與Simotion設(shè)備進(jìn)行數(shù)據(jù)交換,下列通信協(xié)議支持開放式通訊:
? TCP
? UDP
PLC 通過工業(yè)以太網(wǎng) OPEN IE 通信方式下的 TCP IP 協(xié)議進(jìn)行數(shù)據(jù)交換,需要使用以下程序塊:
? FB65 "TCON" 建立連接
? FB66 "TDISCON" 中止連接
? FB63 "TSEND" 發(fā)送數(shù)據(jù)
? FB64 "TRCV" 接收數(shù)據(jù)
這些通信功能塊可以在函數(shù)庫 Standard Library -> Communication Blocks 中找到。 用于連接 TCP IP 端點(diǎn)的參數(shù)存儲(chǔ)于一個(gè)數(shù)據(jù)結(jié)構(gòu)體中。在本程序示例中,使用數(shù)據(jù)結(jié)構(gòu)體 UDT65 "TCON_PAR",用戶將對(duì)這個(gè)數(shù)據(jù)結(jié)構(gòu)體進(jìn)行參數(shù)化。不需要在 NetPro 中配置通信連接。UDT65的創(chuàng)建需要使用 Open IE向?qū)硗瓿伞?br /> 創(chuàng)建開放式 TCP/IP 通信所需的連接數(shù)據(jù)的向?qū)?(Open Communication Wizard)請(qǐng)從下述鏈接中下載 : 25209116
二、S7 Open IE通訊程序描述
1.使用Open IE 向?qū)蓴?shù)據(jù)塊
(1) 打開Open Communication Wizard程序,如圖1所示:
圖1.
(2)點(diǎn)擊“Next”,如圖2所示:
圖2.
(3)在圖3畫面中選擇S7-300項(xiàng)目及數(shù)據(jù)塊的存貯路徑:
圖3.
(4)在圖4畫面中點(diǎn)擊“Next”:
圖4.
(5)在圖5畫面中選擇“TCP native”后點(diǎn)擊“Next”:
圖5.
(6)在圖6畫面中選擇如下后點(diǎn)擊“Next”:
圖6.
(7)在圖7畫面中選擇此PLC的連接方式(Active為Client,Passive為Server),通訊伙伴的IP地址及使用PLC的版本號(hào):
圖7.
(8)在圖8畫面中輸入本PLC及通訊伙伴的端口號(hào):
圖8.
(9)在圖9畫面中輸入生成的數(shù)據(jù)塊名稱,本程序中為UDT65:
圖9.
(10)在圖10畫面中點(diǎn)擊“Next”:
圖10.
(11)在圖11畫面中點(diǎn)擊“Finish”,結(jié)束配置:
圖11.
2.PLC編程
(1)創(chuàng)建數(shù)據(jù)塊DB1,如圖12所示:
圖12.
(2)拷貝FB63,F(xiàn)B54,F(xiàn)B65,F(xiàn)B66至項(xiàng)目中,并分別為其創(chuàng)建背景數(shù)據(jù)塊DB63,DB64,DB65,DB66,如圖13所示:
圖13.
(3)在OB1中編程通訊程序,如圖14所示:
圖14.
3.PLC通訊功能塊介紹
(1)調(diào)用FB65 建立通訊連接
圖15.
輸入?yún)?shù) "REQ" :其上升沿觸發(fā)來建立連接。
輸入?yún)?shù)“ID”:為連接ID。
輸入?yún)?shù)“CONNECT”:填寫用UDT65生成的數(shù)據(jù)塊DB1,連接建立后會(huì)一直保持,直到調(diào)用FB66才會(huì)中斷。
輸出參數(shù):
BUSY | DONE | ERROR | 描述 |
TRUE | 正在處理中 | ||
FALSE | TRUE | FALSE | 工作成功完成 |
FALSE | FALSE | TRUE | 工作因錯(cuò)誤而中止,原因參看""Status" |
FALSE | FALSE | FALSE | FB未被分配一個(gè)新任務(wù) |
輸出參數(shù)“STATUS”:錯(cuò)誤信息。
(2)調(diào)用FB64 接收程序
圖16.
輸入?yún)?shù) "EN_R" :始終為“TRUE”。
輸入?yún)?shù)“ID”:為連接ID。
輸出參數(shù)“RCVD_LEN”:為接收數(shù)據(jù)長度。
輸出參數(shù):
BUSY | DONE | ERROR | 描述 |
TRUE | 正在處理中 | ||
FALSE | TRUE | FALSE | 工作成功完成 |
FALSE | FALSE | TRUE | 工作因錯(cuò)誤而中止,原因參看""Status" |
FALSE | FALSE | FALSE | FB 未被分配一個(gè)新任務(wù) |
輸出參數(shù)“STATUS”:錯(cuò)誤信息。
(3)調(diào)用FB63 發(fā)送程序
圖17.
輸入?yún)?shù) "REQ" :為發(fā)送請(qǐng)求,上升沿有效。
輸入?yún)?shù)“ID”:為連接ID。
輸入?yún)?shù)“LEN”:為發(fā)送數(shù)據(jù)長度。
輸出參數(shù):
BUSY | DONE | ERROR | 描述 |
TRUE | 正在處理中 | ||
FALSE | TRUE | FALSE | 工作成功完成 |
FALSE | FALSE | TRUE | 工作因錯(cuò)誤而中止,原因參看""Status" |
FALSE | FALSE | FALSE | FB 未被分配一個(gè)新任務(wù) |
輸出參數(shù)“STATUS”:錯(cuò)誤信息。
(4)調(diào)用FB66 中斷連接程序
圖18.
輸入?yún)?shù) "REQ" :為中斷連接請(qǐng)求,上升沿有效。
輸入?yún)?shù)“ID”:為連接ID。
輸出參數(shù):
BUSY | DONE | ERROR | 描述 |
TRUE | 正在處理中 | ||
FALSE | TRUE | FALSE | 工作成功完成 |
FALSE | FALSE | TRUE | 工作因錯(cuò)誤而中止,原因參看""Status" |
FALSE | FALSE | FALSE | FB 未被分配一個(gè)新任務(wù) |
輸出參數(shù)“STATUS”:錯(cuò)誤信息。
4.Simotion側(cè)的編程
(1)在Simotion的命令庫中,包含TCP IP通訊函數(shù),如圖19所示:
圖. 19
(2)打開服務(wù)器程序
圖. 20
port : Simotion自己的Port,如2001
backlog : 允許的并行連接數(shù)
nextcommand : 同步或異步調(diào)用
Out : 含functionresult和connectionID
(3)接收數(shù)據(jù)
圖. 21
connectionid : 連接ID,在OpenServer的返回值中。
nextcommand : 同步或異步調(diào)用
receivevariable : 接收到的數(shù)據(jù)
Out : 接收返回值,含function result和datalength
(3)發(fā)送數(shù)據(jù)
圖. 22
Connectionid : 連接ID,在OpenServer的返回值中。
nextcommand :同步或異步調(diào)用
datalength : 發(fā)送數(shù)據(jù)的長度
data : 發(fā)送的數(shù)據(jù)
注意:
Simotion側(cè)與PLC側(cè)的發(fā)送及接收區(qū)數(shù)據(jù)長度應(yīng)保持相同。
三、程序示例
PLC程序請(qǐng)參見附帶文件:Plc-317o.zip
Simotion程序請(qǐng)參見附帶文件:OpenIED435tcpi.zip
1 概述
S7-300/400與SINAMICS G150 之間通過PROFIBUS DP 總線可進(jìn)行周期性及非周期性數(shù)據(jù)通訊。使用標(biāo)準(zhǔn)S7功能塊SFC14/SFC15可實(shí)現(xiàn)周期性數(shù)據(jù)交換;使用標(biāo)準(zhǔn)S7功能塊SFC58 / SFC59,可以實(shí)現(xiàn)非周期性數(shù)據(jù)交換,讀寫 SINAMICS G150 的參數(shù)。S7-300/400與SINAMICS G150裝置的連接,如下圖所示:
圖1 S7-300/400與SINAMICS G150裝置的連接
2 SINAMICS G150站地址設(shè)置及硬件組態(tài)
SINAMICS G150的PROFIBUS DP站地址設(shè)置有兩種方法:
(1)通過CU320控制單元上DIP撥碼開關(guān),設(shè)置站地址,有效地址值為1….126,設(shè)定方法如表1所示,將DIP開關(guān)撥“ON”處,多個(gè)開關(guān)激活,將有效位進(jìn)行加法運(yùn)算, 1+4+32=37,表示站地址是37,注意:通過撥碼開關(guān)改變地址時(shí)應(yīng)斷掉SINAMICS G150 電源,否則,更改的站地址是無效的。
表1 DIP開關(guān)設(shè)定PROFIBUS DP地址
(2) 在撥碼開關(guān)全部撥到OFF或ON狀態(tài),可以利用參數(shù)P918設(shè)置站地址。
S7-300/400的硬件組態(tài),如圖2所示,在硬件組態(tài)中設(shè)定的SINAMICS G150站地址應(yīng)與SINAMICS G150 實(shí)際的站地址一致,本例中采用站地址是6。
圖2 硬件組態(tài)
3 通訊報(bào)文設(shè)置
SINAMICS G150有多種報(bào)文結(jié)構(gòu)進(jìn)行選擇,詳細(xì)描述請(qǐng)參考:SINAMICS_G150_operating-instructions手冊(cè),表2為報(bào)文結(jié)構(gòu)。
表2 報(bào)文結(jié)構(gòu)
報(bào)文結(jié)構(gòu)是999為用戶自定義報(bào)文,當(dāng)用戶選擇此報(bào)文結(jié)構(gòu)時(shí),SINAMICS G150的起、??刂莆坏刃枳约鹤鲫P(guān)聯(lián)。此時(shí)必須將PLC控制請(qǐng)求置1(P854=1)。
注意:在做S7-300/400硬件組態(tài)時(shí),需要配置報(bào)文結(jié)構(gòu),圖3是STEP7中的報(bào)文設(shè)置,配置結(jié)束后進(jìn)行編譯保存;然后,打開STARTER,核對(duì)報(bào)文結(jié)構(gòu)是否一致,圖4是STARTER軟件中報(bào)文的設(shè)置,若不一致需在STARTER軟件中打開“configuration”做調(diào)整后點(diǎn)擊“Transfer to HW config”按鈕。
圖3 STEP7中的報(bào)文設(shè)置
圖4 STARTER軟件中報(bào)文設(shè)置
4 用PROFIBUS DP總線對(duì)SINAMICS G150起、停及速度控制
S7-300/400 PLC通過PROFIBUS DP周期性通訊方式將控制字1和主設(shè)定值發(fā)送至SINAMICS G150 ,當(dāng)組態(tài)的報(bào)文結(jié)構(gòu) PZD=2或自由報(bào)文999時(shí),在S7-300/400 中可用“MOVE” 指令和功能塊SFC14和SFC15進(jìn)行數(shù)據(jù)傳送。
下面分別采用“MOVE” 指令進(jìn)行數(shù)據(jù)傳送和調(diào)用SFC14和SFC15系統(tǒng)功能塊進(jìn)行數(shù)據(jù)傳送加以說明。
例程文件名為:“G150_DP控制字、主給定值的發(fā)送及狀態(tài)字和實(shí)際頻率讀出程序.rar”,鏈接: G150_DP1.rar