郭越 付永民
摘要:本文針對西門子可編程控制器在生產線升級改造過程中建立PLC之間的主-主通訊的難題,提出一種基于集成PN口的通訊解決方案。利用profinet總線實現s7-300 PLC之間的數據傳輸,實現了整個生產線上的通信連接的經濟解決方法。為控制裝置的升級改造提供了很好的依據,具有很強的實用性和借鑒性。并對S7-300 集成 PN 口的 S7 通信做了基本介紹,對其配置步驟以及編程方法作了完整的描述。
關鍵詞:s7通訊;連接資源;s7-300 PLC;集成 PN 口
1、技術現狀
在煙草生產企業中,基于profibus總線協議的西門子可編程控制器大范圍應用。Profibus總線協議采用了ISO/OSI模型中的第一層、第二層以及必要時還采用了第七層。總線傳輸采用RS485 串行總線。然而,profibus總線需要銅質雙芯電纜,最高傳輸帶寬是12mbps,傳輸距離最長為100米,傳輸的實時性不能滿足復雜的控制要求。針對這一現狀,西門子公司推出了適應能力更強的基于工業以太網的profinet總線協議。它傳輸帶寬達到100mbps,兩個設備之間傳輸距離最長為100米,實時性遠比profibus及時準確,而且不需要總線終端電阻,極大減少了網絡故障現象。在支持的通訊協議類型中,profibus和profinet都支持S7通訊協議。但是在profinet協議中,S7通訊受到的限制更少,應用更廣泛。
S7通訊協議是s7系列plc基于mpi、profibus、Ethernet網絡的一種優化的通訊協議,在profibus總線中,主要用于s7-400/400、s7-300/400plc之間主-主通訊,也非常適合s7 plc與HMI通訊,例如與操作面板OP/TP以及與上位監控軟件wincc的通信。
每個CPU都有資源限制,如過程映像區的大小、計數器/計時器的個數。同樣,通訊的資源也有限制,在產品樣本里有CPU的鏈接數量指標,這就是CPU 的通信資源。舊版本的S7-300PLC中有動態連接和靜態連接之分,動態連接是指通過MPI,PLC與plc通過調用SFC通信的通信連接,調用SFC時建立連接,停止調用時連接仍然維持,通過調用斷開連接的SFC才能釋放連接資源;靜態連接指與HMI的通信連接,當把OP/TP、WinCC連接到同一CPU時會發生有的OP/TP、WinCC連接不上,這是因為使用的連接數已經超過了CPU的連接資源限制,此外還有一個靜態連接資源保留給編程器用。
PLC與PLC之間的通信也占用這些資源,一個s7的連接要占用一個靜態連接,因為s7-300PLC靜態連接資源較少,所以在profibus總線系統中s7-300系統建議不采用s7連接。同時s7-300系統之間也不能直接建立s7連接,可以通過最新版本CP342-5(V5.0以上)、CP343-1擴展16個s7連接而只占用CPU一個連接資源。S7-300 PLC只能作為通信的Server,s7-300PLC可以通過CP與s7-300PLC(通過CP)建立雙邊s7通信,通過發送/接收功能塊相互訪問對方數據。
2、基于profinet總線協議的s7通信
隨著profinet技術的成熟和推廣,profinet IO系統和profinet CBA系統已經應用在新的生產線上,大量正常運行的生產線改造在經濟性考慮無法大規模把舊的控制器更換為新的控制器,把profibus總線全部更換為profinet總線也面臨極大的技術難題,針對這一現象,新門子公司推出了集成profinet端口的s7-300 PLC系統,上位采用profinet總線協議,下位采用profibus總線,為技術改造提供了極大的方便。
由于集成了profinet端口,s7-300 PLC具有更靈活的適應性,在通訊資源方面,集成PN端口的s7-300 PLC最大擁有16個靜態連接資源,不需要再通過CP網卡進行擴展連接資源。而且兩個集成PN端口的s7-300 PLC之間不僅可以作為通信的Server端,還可以作為Client端。從而使兩個集成PN端口的s7-300 PLC之間可以直接建立s7連接。
在profibus總線協議中,兩個PLC之間建立s7通訊,為了滿足實時性的要求,需要在兩個PLC的DP端口進行硬件上的總線直接連接,如果兩個PLC相距較遠,受到profibus傳輸距離最長100米的限制,就需要RS485中繼器的支持,給應用造成極大的不便。而在profinet總線協議中,相距較遠的兩個PLC之間可以不直接進行總線連接,可以借助車間工業以太網Scalance交換機進行連接,在技術上提供了極大的便利。
3、s7通信中三種發送、接收方法的比較
在進行s7通信編程中,可以根據實際情況調用不同的功能塊實現數據發送和接收,在Libraries子項standard中的communication Blocks內可以調用不同的功能塊進行編程。下面對功能塊進行簡單的介紹:
在s7-300中FB8和FB9、FB12和FB13成對使用,一端發送,一端接收。FB14和FB15在單邊使用,其中FB12和FB13 所能傳輸的數據量最大,可達65534字節。綜上所述,傳輸數據量大并需要對數據進行接收確認時,采用FB12和FB13功能塊;對數據準確性要求較低時,可以采用FB8和FB9功能塊;在一個PLC中進行單邊讀寫時,可以采用FB14和FB15功能塊。
4、集成PN口的s7-300 PLC之間的s7通信示例
結合許昌卷煙廠制絲線改造,詳細講解s7通信的應用實例。在許昌卷煙廠制絲線HXD前喂料機和電子秤改造中,我們應用了集成PN口的s7-300 PLC之間的s7通信進行數據傳輸。CPU 采用兩個 315-2PN/DP,使用以太網進行通信。
4.1 硬件連接
由于車間級由Scalance交換機組成環網,所以我們采用總線物理連接借助Scalance交換機,節省總線電纜,連接方便。PLC與最近的Scalance交換機進行總線連接。如果車間級沒有工業以太網,我們可以將兩臺PLC直接進行總線連接。
4.2 網絡組態
硬件平臺建好后,我們需要硬件組態。在 STEP7 中創建一個新項目,項目名稱為 PN S7。插入兩個 S7-300 站,在硬件組態中,分別插入 CPU 315-2 PN/DP。如圖 1所示。
新建以太網,打開“NetPro”設置網絡參數,選中 CPU,在連接列表中建立新的連接。如圖 2 所示。
然后雙擊該連接,設置連接屬性。在“General”屬性中塊參數 ID = 1,這個參數即是下面程序中的參數“ID”。在 SIMATIC 315PN-1 中激活“Establish an active connection”,作為 Client 端,SIMATIC 315PN-2 作為 Server 端。
4.3 軟件編程
由于此項目中傳輸的數據需要參與控制,必須保障數據的準確性,所以采用FB12和FB13功能塊進行確認數據接收的數據傳輸。如果在應用中數據要求等級不高,可以采用FB8和FB9功能塊進行無確認數據接收的數據傳輸,減少通訊傳輸負載。
SFB/FB 12 "BSEND" 向類型為“BRCV”的遠程伙伴 SFB/FB 發送數據。通過這種類型的數據傳送,更多的數據可以在通訊伙伴之間傳輸,超過任何其它用于組態的S7 連接的通訊SFB/FB 所能傳輸的數據量。
要發送的數據區是分段的。各個分段單獨發送給通訊伙伴。通訊伙伴在接收到最后一個分段時對此分段進行確認,該過程與相應 SFB/FB "BRCV" 的調用無關。在調用塊之后,當在控制輸入 REQ 上有上升沿時,發送作業被激活。發送用戶存儲區中的數據與處理用戶程序是異步執行的。
由 SD_1 指定起始地址和要發送數據的最大長度。可以通過 LEN 來確定數據域的作業指定長度。在這種情況下,LEN 替換 SD_1 的長度區域。參數 R_ID 必須在相應的兩個SFB/FB 上完全相同。如果在控制輸入 R 處有上升沿,則當前數據傳送將被取消。如果傳送成功完成,則通過將狀態參數 DONE 的數值設置為 1 來進行指示。如果狀態參數 DONE 或ERROR 的數值為 1,則在前一個發送處理結束之前,不能處理新的發送作業。
SFB/FB 13 "BRCV" 接收來自類型為“BSEND”的遠程伙伴 SFB/FB 的數據。在收到每個數據段后,向伙伴 SFB/FB 發送一個確認幀,同時更新 LEN 參數。在塊調用完畢,并且在控制輸入 EN_R 數值為 1 之后,塊準備接收數據。可以通過 EN_R=0 來取消一個已激活的作業。
由 RD_1 指定起始地址和接收區的最大長度。由 LEN 指示已接收數據域的長度。從用戶存儲區中接收數據與處理用戶程序是異步執行的。參數 R_ID 必須在相應的兩個SFB/FB 上完全相同。通過狀態參數 NDR 的數值為 1 來指示所有數據段的無錯接收。接收到的數據保持不變,直到通過 EN_R=1 來重新調用 SFB/FB 13 為止。如果在數據的異步接收期間調用塊,則將引發一個警告,該警告通過 STATUS 參數輸出;如果當控制輸入 EN_R數值為 0 時進行調用,則接收將被終止,并且 SFB/FB 將返回到它的初始狀態。
打開 SIMATIC 315PN-1 的 OB1,在 OB1 中依次調用 FB12,FB13 如圖 3、圖 4 所示:
同樣,在 SIMATIC 315PN-2 的 OB1 中,調用 FB12/FB13。通信雙方的 R_ID 設為 0,LEN設為 10,將 SIMATIC 315PN-1 的 MB120-MB129 賦值 B#16#04,在 SIMATIC 315PN-2中,將 FB13 的“EN_R”置 1,然后在 SIMATIC 315PN-1 中,將 FB12 中“REQ”設置上升沿信號,此時 SIMATIC 315PN-2 的 MB130-MB139 接收到 B#16#04。如圖 5 所示。
同理,將 SIMATIC 315PN-2 的 MB120-MB129 賦值為 B#16#05,SIMATIC 315PN-1 的MB130-MB139 接收到 B#16#05。如圖 6 所示。
編程完成后,為了防止s7通信連接資源過少而觸發PLC通訊故障報警,在PLC屬性communication中修改s7通信連接資源為10,經過在線監測,數據傳輸準確無誤。
4.4 效果驗證
經過編程,建立通訊連接后,我們對傳輸的數據進行監控,數據傳輸迅速準確,總線網絡運行穩定可靠,經過連續6個月的運行,沒有出現錯誤報警。
5、結束語
本文結合現場實際情況,具體分析需要采用的技術,為實際工作提供了一種解決實際問題的思路。通過本廠的實踐證明,該s7通訊系統性能穩定,運行良好,便于調試和維護,具有很強的實用性和借鑒性。
參考文獻
[1] 崔堅 《西門子工業網絡通訊指南.上冊》 機械工業出版社 2004年9月
[2] 崔堅 《西門子工業網絡通訊指南.下冊》 機械工業出版社 2004年9月
[3] 廖常初 《大中型PLC應用教程》 機械工業出版社 2005年2月