基于VC執(zhí)行機構的以太網控制系統(tǒng)方案設計
本文引用地址:http://m.butianyuan.cn/article/149605.htm
系統(tǒng)采用Client/Server模式。通過以太網轉串口模塊的配置軟件,將該模塊設置成服務器模式,而主控計算機上的控制軟件部分為客戶端,每次啟動由主控計算機主動連接執(zhí)行機構。客戶端和服務器采用面向連接的通信協(xié)議:控制計算機和模塊之間會建立一個虛擬連接,這個連接一旦建立,客戶端和服務器之間就可以把數據當作一個雙向字節(jié)流進行交換;如果連接建立不成功,則不會發(fā)送數據。另外,面向連接傳輸的每一個報文都需要接收端確認,未確認報文被認為是出錯的報文。
3.1 通信過程
Socket有同步阻塞方式和異步非阻塞方式兩種使用,本系統(tǒng)應用程序中創(chuàng)建了繼承于CAsyncSocket類的TestSocket類,它是一個異步非阻塞Socket封裝類。
由于已經將以太網轉串口模塊設置為服務器模式,所以,主控計算機段的程序是作為客戶端出現的,該程序的編寫大致按照以下步驟進行:
1) 首先調用WSAStartup函數來初始化套接字庫。
2) 調用socket函數來創(chuàng)建一個套接字。
3) 調用connect函數連接服務器,發(fā)出連接請求
4) 服務器響應連接請求后,與服務器開始進行交互操作(接收、發(fā)送數據等),直到請求結束。
5) 調用closesocket關閉套接字,釋放套接字資源。
6) 調用WSACleanup函數釋放相應資源。
客戶端程序與服務器的通信過程如圖3所示:
圖3:面向連接服務的socket調用模型
在以太網轉串口模塊中,服務器程序調用listen函數將此socket置于監(jiān)聽狀態(tài),讓這個socket對進來的連接進行監(jiān)聽并確認連接請求。當服務器端監(jiān)聽到來自客戶端的連接請求后,一個正在監(jiān)聽的socket將給將給每個請求發(fā)送一個確認信息,然后調用accept函數,接著,面向連接的客戶通過調用connect函數啟動網絡對話。在客戶端和服務器端建立連接以后,雙方就可以通過send和recv或其它面向連接的Socket API函數進行網絡通信了。
3.2 通信協(xié)議
計算機和以太網轉串口模塊之間用SOCKET進行通信,模塊和執(zhí)行機構之間則采用TTL電平通信,采用統(tǒng)一的通信協(xié)議。計算機為主動通訊設備,即所有的對話均由控制計算機發(fā)起,執(zhí)行機構只是被動的應答命令。
協(xié)議中信息幀主要分為兩種:數據幀與命令幀。它實現一般信息通信功能。數據幀包含一般的I/O信息,而命令幀則包含控制、查詢及設置等命令。為保證信息傳送的準確性,每條命令必須進行校驗(校驗和1),如果命令后有命令參數的話,要再次校驗(校驗和2)。執(zhí)行機構返回的信息也要校驗。校驗的方法可采用逐字節(jié)異或的方式。
控制計算機命令格式如下:
數據頭 | 命令碼 | 校驗和1 | 命令參數 | 校驗和2 |
執(zhí)行機構返回:
數據頭 | 命令返回碼 | 位置/狀態(tài)/參數 | 校驗和 |
數據頭一方面作為一次信息開始的標志,另一方面用作校驗命令。命令碼和命令返回碼應一致,保證控制計算機可以接收到正確的命令返回信息。
3.3 軟件初步模型
圖4是目前用于系統(tǒng)測試的客戶端軟件的初步模型,通過調試驗證,其功能已經能基本滿足當前的測試需求:
(1) 每個執(zhí)行機構都有一塊與其對應的以太網轉串口模塊,且每個模塊都有自己固定的IP地址:輸入IP可與指定執(zhí)行機構進行連接,可以與多臺執(zhí)行機構同時進行連接并操控。
(2) 通過握手指令來確認連接是否已經成功。若連接不正常,則進行握手時系統(tǒng)會收到來自執(zhí)行機構的錯誤報告。
(3) 可查詢當前執(zhí)行機構的運行位置、運行狀態(tài)、以及其參數的設置情況等。
(4) 對執(zhí)行機構的參數進行遠程設置:在執(zhí)行機構投入使用之前,都必須按照需求對其進行相應的參數設置;在使用過程中亦可通過此功能來改變設置。
(5) 可以通過指定開度百分比讓執(zhí)行機構運行到任意的目的位置。
(6) 可以指定方向讓執(zhí)行機構正反轉或者停止,也可進行自主運行。
圖4:客戶端軟件初步模型
4 總結及展望
本文作者創(chuàng)新點:給出了基于VC的執(zhí)行機構以太網監(jiān)控系統(tǒng)的設計方案,實現了高效、快捷的遠程控制。在下一步的開發(fā)中,使本系統(tǒng)的應用軟件與市面上通用的工控組態(tài)軟件相兼容:比如一般的組態(tài)軟件都會嵌入ModBus/TCP協(xié)議,本軟件能夠在內部完成對該協(xié)議的轉換。也就是當組態(tài)軟件發(fā)出控制命令后,本軟件能夠識別命令并能夠將其轉換成執(zhí)行機構能夠識別的自定義協(xié)議,來間接的對執(zhí)行機構進行控制。這樣,系統(tǒng)就能夠與組態(tài)軟件實現控制上的兼容,并達到現場數據的共享。
總之,隨著以太網傳輸速度的不斷加快以及在確定性、實時性、可靠性方面性能的不斷改善,工業(yè)以太網無疑會在未來的控制網絡中扮演越來越重要的角色。
評論