根據VC的執行機構以太網控制系統的設計策略
摘要:本文介紹了一種適用于過程控制領域的工業以太網監控系統的架構,通過主控計算機和工業以太網,可以方便的將所設計的各種網絡化的電動執行機構按照我們的控制需要來連成網絡,形成系統。通過自定義的通訊協議,保證了系統的實時性以及可靠性。通過通訊試驗,證明了該控制系統是可行的。
1 引言
??? 在工業控制領域中,隨著控制系統規模的不斷增大,集中控制系統已經不能滿足要求,控制網絡已經廣泛應用到工業控制中。現場總線就是順應這一形式發展起來的技術,并在一定程度上解決了這一問題。但是,現場總線的開放性是有條件的,是不徹底的。當現場總線的發展遇到阻礙時,以太網技術卻得到了迅猛發展。如果能將以太網技術成功地用于工業控制底層網絡,就可以打破傳統的工業控制網絡體系,實現辦公自動化與工業自動化的無縫結合。
本課題正是在這種環境下提出。在設計中,我們選擇了傳輸速率高、實時性好,成本低的工業以太網,在繼承上一代產品中成熟技術的基礎上,將工業以太網技術融入到電動執行機構的設計中,使它們成為新一代的數字化產品。為了配合這些網絡化的電動執行機構的使用,我們需要構建一套適用于過程控制領域的以太網監控系統。它通過工業以太網,將主控計算機和多個電動執行機構連接起來,按照我們的需求通過計算機對底層進行各種不同的控制,形成一個完整的控制網絡。
2 控制系統架構
2.1 控制系統以太網架構
整個控制系統的結構如圖1所示。在此,以太網轉串口模塊相當于完成一個執行機構網卡的作用,用于完成執行機構與以太網之間的協議轉換和交流。電動執行機構與以太網轉串口模塊之間通過串行TTL電平進行通訊,然后通過該模塊將電平信號以網絡數據幀的形式傳送到以太網上(此處以太網可以用HUB代替),然后進一步傳送給上位機,從而形成一條從上位機到執行機構的可靠的信道。
本系統所采用的以太網轉串口模塊是國內某公司開發的一款嵌入式網絡模塊,它內部集成了TCP/IP 協議棧,用戶利用它可以實現嵌入式設備的網絡功能。該產品用于串口與以太網之間的數據傳輸,為串口設備增加以太網接口。可用于串口設備與主控計算機機之間,或者多個串口設備之間的遠程通信。
圖1? 控制系統整體結構圖
2.2 電動執行機構和以太網轉串口模塊通訊的實現
串行通訊采用TTL電平,占用兩個I/O口,即輸入口(RxD)和輸出口(TxD),執行機構主控板需要提供+5V電源給以太網轉串口模塊,硬件連接如圖2所示。
圖2 底層通訊的實現原理圖
本系統中執行機構所采用的主控芯片為Intel 80C196MC。圖中P2.0作為80C196MC的串行輸出,P2.1作為80C196MC的串行輸入。網卡地線應和主控制板的數字地即單片機的地連接。80C196MC與以太網轉串口模塊之間采用異步通信,一幀長度為10位,包含8位數據,1位奇偶校驗位和1位結束位。
3???????? 軟件部分的實現
本系統采用基于VC++6.0的WinSock編程。套接字(Socket)已經成為當今最流行的網絡通信應用程序接口。套接字最初由加利福利亞大Berkeley分校為Unix操作系統開發的網絡通信接口, 后來它又被移植到DOS與Windows 系統,特別是近幾年互聯網在全世界范圍內的廣泛普及, 進一步奠定了它在網絡通信程序開發領域的主宰地位。
系統采用Client/Server模式。通過以太網轉串口模塊的配置軟件,將該模塊設置成服務器模式,而主控計算機上的控制軟件部分為客戶端,每次啟動由主控計算機主動連接執行機構。客戶端和服務器采用面向連接的通信協議:控制計算機和模塊之間會建立一個虛擬連接,這個連接一旦建立,客戶端和服務器之間就可以把數據當作一個雙向字節流進行交換;如果連接建立不成功,則不會發送數據。另外,面向連接傳輸的每一個報文都需要接收端確認,未確認報文被認為是出錯的報文。
3.1?????? 通信過程
Socket有同步阻塞方式和異步非阻塞方式兩種使用,本系統應用程序中創建了繼承于CAsyncSocket類的TestSocket類,它是一個異步非阻塞Socket封裝類。
由于已經將以太網轉串口模塊設置為服務器模式,所以,主控計算機段的程序是作為客戶端出現的,該程序的編寫大致按照以下步驟進行:
1)?????? 首先調用WSAStartup函數來初始化套接字庫。
2)?????? 調用socket函數來創建一個套接字。
3)?????? 調用connect函數連接服務器,發出連接請求
4)?????? 服務器響應連接請求后,與服務器開始進行交互操作(接收、發送數據等),直到請求結束。
5)?????? 調用closesocket關閉套接字,釋放套接字資源。
6)?????? 調用WSACleanup函數釋放相應資源。
客戶端程序與服務器的通信過程如圖3所示:
圖3:面向連接服務的socket調用模型
在以太網轉串口模塊中,服務器程序調用listen函數將此socket置于監聽狀態,讓這個socket對進來的連接進行監聽并確認連接請求。當服務器端監聽到來自客戶端的連接請求后,一個正在監聽的socket將給將給每個請求發送一個確認信息,然后調用accept函數,接著,面向連接的客戶通過調用connect函數啟動網絡對話。在客戶端和服務器端建立連接以后,雙方就可以通過send和recv或其它面向連接的Socket API函數進行網絡通信了。
3.2?????? 通信協議
計算機和以太網轉串口模塊之間用SOCKET進行通信,模塊和執行機構之間則采用TTL電平通信,采用統一的通信協議。計算機為主動通訊設備,即所有的對話均由控制計算機發起,執行機構只是被動的應答命令。
協議中信息幀主要分為兩種:數據幀與命令幀。它實現一般信息通信功能。數據幀包含一般的I/O信息,而命令幀則包含控制、查詢及設置等命令。為保證信息傳送的準確性,每條命令必須進行校驗(校驗和1),如果命令后有命令參數的話,要再次校驗(校驗和2)。執行機構返回的信息也要校驗。校驗的方法可采用逐字節異或的方式。
控制計算機命令格式如下:
數據頭 |
命令碼 |
校驗和1 |
命令參數 |
校驗和2 |
執行機構返回:
數據頭 |
命令返回碼 |
位置/狀態/參數 |
校驗和 |
數據頭一方面作為一次信息開始的標志,另一方面用作校驗命令。命令碼和命令返回碼應一致,保證控制計算機可以接收到正確的命令返回信息。
3.3?????? 軟件初步模型
圖4是目前用于系統測試的客戶端軟件的初步模型,通過調試驗證,其功能已經能基本滿足當前的測試需求:
(1)? 每個執行機構都有一塊與其對應的以太網轉串口模塊,且每個模塊都有自己固定的IP地址:輸入IP可與指定執行機構進行連接,可以與多臺執行機構同時進行連接并操控。
(2)? 通過握手指令來確認連接是否已經成功。若連接不正常,則進行握手時系統會收到來自執行機構的錯誤報告。
(3)? 可查詢當前執行機構的運行位置、運行狀態、以及其參數的設置情況等。
(4)? 對執行機構的參數進行遠程設置:在執行機構投入使用之前,都必須按照需求對其進行相應的參數設置;在使用過程中亦可通過此功能來改變設置。
(5)? 可以通過指定開度百分比讓執行機構運行到任意的目的位置。
(6)? 可以指定方向讓執行機構正反轉或者停止,也可進行自主運行。
圖4:客戶端軟件初步模型
4???????? 總結及展望
? 本文作者創新點:給出了基于VC的執行機構以太網監控系統的設計方案,實現了高效、快捷的遠程控制。在下一步的開發中,使本系統的應用軟件與市面上通用的工控組態軟件相兼容:比如一般的組態軟件都會嵌入ModBus/TCP協議,本軟件能夠在內部完成對該協議的轉換。也就是當組態軟件發出控制命令后,本軟件能夠識別命令并能夠將其轉換成執行機構能夠識別的自定義協議,來間接的對執行機構進行控制。這樣,系統就能夠與組態軟件實現控制上的兼容,并達到現場數據的共享。
總之,隨著以太網傳輸速度的不斷加快以及在確定性、實時性、可靠性方面性能的不斷改善,工業以太網無疑會在未來的控制網絡中扮演越來越重要的角色。
評論
查看更多