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