張玉軍
摘 要 簡要介紹客戶機/服務器模式和Socket編程接口的基本原理。結合棒材的生產實踐及工業生產的要求,通過TCP/IP協議,采用Socket通信方式,運用Client/Server模式進行一級與二級之間的通信連接。
關鍵詞 棒材生產線;客戶機/服務器;Socket;PLC
中圖分類號:G712 文獻標識碼:B
文章編號:1671-489X(2017)10-0046-02
Implementation of Communication between Level two and Level
one PLC of Bar Line//ZHANG Yujun
Abstract Client/Server model and Socket programming interface are
introduced briefly. Combining with the production practice and the
requirement of industrial production of Bar Line, level two commu-nicates with level one by TCP/IP, Socket and Client/Server model.
Key words bar line; Client/Server; Socket; PLC
1 引言
以前,二級過程控制系統(L2)在國內現有的棒材生產線中少有應用,這使企業在生產過程控制和優化管理上有著很大的制約性。隨著科學技術的蓬勃發展和市場強大的競爭需求,生產中缺少二級過程控制系統會對今后企業全面提升現代管理水平和綜合競爭能力帶來很多功能缺失。因此,為了高水平地組織生產過程和保證產品質量,現在新的棒材生產線都增加了二級過程控制系統。
某鋼廠棒材生產二級過程控制系統與一級基礎自動化通過TCP/IP協議,采用Socket通信方式,運用Client/Server模式進行通信連接。L2與L1通信的數據按照報文的格式交換數據,通過調用不同的進程實現系統功能。
2 客戶機/服務器模式
在TCP/IP網絡中,兩個進程間相互作用的主機模式是客戶機/服務器模式(Client/Server model),即客戶機向服務器發出請求,服務器接收到請求后,提供相應服務??蛻魴C/服務器模式在操作過程中采取的是主動請示方式,具體步驟如下。
首先,服務器方要先啟動,并根據請示提供相應服務,具體過程如下所示:
1)打開一通信通道并告知本地主機,它愿意在某個公認地址上接收客戶請求;
2)等待客戶請求到達該端口;
3)接收到重復服務請求,處理該請求并發送應答信號;
4)返回2),等待另一個客戶請求;
5)關閉服務器。
客戶方的主要操作步驟如下所示:
1)打開一通信通道,并連接到服務器所在主機的特定端口;
2)向服務器發送服務請求報文,等待并接收應答,繼續提出請求;
3)請求結束后關閉通信通道并終止。
某鋼廠棒材生產線系統中,二級計算機為服務器,一級PLC為客戶端。
3 Socket編程接口的實現原理
Socket也被稱作“套接字”,是支持TCP/IP協議的網絡通信的編程接口。由于TCP/IP協議的核心部分是傳輸層協議(TCP、UDP)、網絡層協議(IP)和物理接口層,這三層在操作系統內核實現。網絡應用編程需要通過核外的應用程序才能實現,這里使用Socket編程接口來實現。網絡編程接口Socket是上層應用程序訪問網絡的界面,與設計員直接打交道的是編程接口,而不是TCP/IP的核心程序。Socket與TCP/IP協議的關系如圖1所示。
應用程序通過Socket向網絡發出請求或者應答網絡請求。Socket規定,通信的響應方是服務器端,即服務器端的動作是監聽以及被動接受客戶端的連接請求;通信的請求方是客戶端,即客戶端主動地與服務器端建立連接。
Socket通信的工作過程中,必須首先啟動服務器端來建立一個Socket對象,使該Socket對象和本地網絡地址綁定到一起,然后使該Socket對象處于偵聽狀態。
Socket編程接口包含進行網絡通信必需的五種信息:連接使用的協議、本地主機的IP地址、本地進程的協議端口、遠端主機的IP地址、遠端進程的協議端口。
4 一級PLC硬件配置及軟件編程
某鋼廠棒材線一級基礎自動化控制系統采用西門子S7-400 PLC控制,整個生產區域分為爐區、粗中軋區、精軋區、冷床精整區四個區域,每套PLC控制一個生產區域。
PLC系統采用以太網模塊CP443-1與L2進行通信,并且CP443-1支持Socket協議。一級PLC硬件配置如下:
1)PS 407 10A;
2)CPU 416-2DP;
3)CP 443-1;
4)DI模塊;
5)DO模塊。
一級PLC程序使用西門子的Step7 V5.4進行編程,當一級PLC的CPU與其他站通過以太網通信時,在網絡配置中為CPU新建TCP connection,將本地和遠程按指定的IP地址以及端口號填寫。如果是一級PLC發送數據,那么需要在新建TCP connection時,選擇激活連接(Active con-
nection establishment)。如果是一級PLC等待接收數據,則不需要選擇激活連接,如圖2所示。endprint
網絡配置完成后,當采用Socket編程接口訪問PLC時,使用功能塊FC50(AG_LSEND)和FC60(AG_LRECV)分別對數據進行發送和接收。FC50功能塊將對應的DB數據塊中的數據發送給二級計算機,FC60功能塊將接收到二級計算機的數據存至相應的DB數據塊中。
5 二級與一級之間的數據通信
某鋼廠棒材線L2與L1之間的數據通信通過以太網,采用TCP/IP協議和Socket接口進行數據交換,通信的數據采用報文形式。它們之間有兩個線程,一個是從L1到L2的,另一個是從L2到L1的。L2接收L1數據時,通過指定的端口號,使用SocketServer接口與一級PLC建立通信連接。L2向L1發送數據時,SocketClient通過指定的端口向一級PLC發出連接請求。
L1發送數據給L2 L1給L2發送的報文分實時發送和事件發送兩類報文。這里說的實時發送即不管L1數據信號有無變化,都按L1設定的掃描時間將實際數據發送出去,如現場采集的熱檢信號等實際值數據為實時發送。事件發送即只有信號與之前信號狀態發生變化才會發送,如飛剪事故剪切信號、軋機狀態信號等數據為按事件發送。要發送的報文依次排隊且按事件報文觸發優先原則,由FC50功能塊經過指定的端口和IP地址發送給L2。這樣,PLC每次只能發送一個報文給L2。
根據棒材二級系統的實際需求,L1傳送給L2的報文包括:
1)實時發送報文:①實際值報文;②物料跟蹤報文。
2)事件發送報文:①剪切報文;②軋機狀態報文;③爐區報文。
當L2接收L1數據時,L2服務器使用SocketServer進程監聽指定的端口,等待L1連接請求;L1連接后,會話產
生;在完成會話后,關閉連接。L2接收到L1的報文后,根據接收報文中的報文ID號,通過對應的進程對數據進行處理,將數據存儲至數據庫。
L2發送數據給L1 二級過程控制系統通過計算模型將工作輥輥徑以及機架軋制速度的設定值算出。當L2發送預設定數據給L1時,L2使用SocketClient進程對一級PLC的指定端口發出連接請求,一旦連接成功,打開會話;會話完成后,關閉Socket。L2由操作工在L2畫面手動觸發向L1發送必要的預設定數據。L1接收到L2發送的報文后,給L2發送回饋報文,告知L2已收到預設定數據報文。
6 結束語
某鋼廠棒材線二級系統與一級PLC之間采用Socket編程接口進行通信,相互之間數據通信的響應時間快、可靠性高,使得棒材生產線在實際生產中提高了生產效率,運用二級系統使產品質量大大提高。
參考文獻
[1]錢能.C++程序設計教程[M].北京:清華大學出版社,
1999.
[2]曾憲權.Visual C++.NET程序設計實用教程[M].北京:清華大學出版社,2009.endprint