0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于基于VC++6.0和80C196M芯片實現(xiàn)以太網(wǎng)監(jiān)控系統(tǒng)的設(shè)計

電子設(shè)計 ? 來源:微計算機信息 ? 作者:沈萬豐;楊新志 ? 2021-06-10 15:06 ? 次閱讀

1 引言

工業(yè)控制領(lǐng)域中,隨著控制系統(tǒng)規(guī)模的不斷增大,集中控制系統(tǒng)已經(jīng)不能滿足要求,控制網(wǎng)絡(luò)已經(jīng)廣泛應(yīng)用到工業(yè)控制中?,F(xiàn)場總線就是順應(yīng)這一形式發(fā)展起來的技術(shù),并在一定程度上解決了這一問題。但是,現(xiàn)場總線的開放性是有條件的,是不徹底的。當現(xiàn)場總線的發(fā)展遇到阻礙時,以太網(wǎng)技術(shù)卻得到了迅猛發(fā)展。如果能將以太網(wǎng)技術(shù)成功地用于工業(yè)控制底層網(wǎng)絡(luò),就可以打破傳統(tǒng)的工業(yè)控制網(wǎng)絡(luò)體系,實現(xiàn)辦公自動化與工業(yè)自動化的無縫結(jié)合。

本課題正是在這種環(huán)境下提出。在設(shè)計中,我們選擇了傳輸速率高、實時性好,成本低的工業(yè)以太網(wǎng),在繼承上一代產(chǎn)品中成熟技術(shù)的基礎(chǔ)上,將工業(yè)以太網(wǎng)技術(shù)融入到電動執(zhí)行機構(gòu)的設(shè)計中,使它們成為新一代的數(shù)字化產(chǎn)品。為了配合這些網(wǎng)絡(luò)化的電動執(zhí)行機構(gòu)的使用,我們需要構(gòu)建一套適用于過程控制領(lǐng)域的以太網(wǎng)監(jiān)控系統(tǒng)。它通過工業(yè)以太網(wǎng),將主控計算機和多個電動執(zhí)行機構(gòu)連接起來,按照我們的需求通過計算機對底層進行各種不同的控制,形成一個完整的控制網(wǎng)絡(luò)。

2 控制系統(tǒng)架構(gòu)

2.1 控制系統(tǒng)以太網(wǎng)架構(gòu)

整個控制系統(tǒng)的結(jié)構(gòu)如圖1所示。在此,以太網(wǎng)轉(zhuǎn)串口模塊相當于完成一個執(zhí)行機構(gòu)網(wǎng)卡的作用,用于完成執(zhí)行機構(gòu)與以太網(wǎng)之間的協(xié)議轉(zhuǎn)換和交流。電動執(zhí)行機構(gòu)與以太網(wǎng)轉(zhuǎn)串口模塊之間通過串行TTL電平進行通訊,然后通過該模塊將電平信號以網(wǎng)絡(luò)數(shù)據(jù)幀的形式傳送到以太網(wǎng)上(此處以太網(wǎng)可以用HUB代替),然后進一步傳送給上位機,從而形成一條從上位機到執(zhí)行機構(gòu)的可靠的信道。

本系統(tǒng)所采用的以太網(wǎng)轉(zhuǎn)串口模塊是國內(nèi)某公司開發(fā)的一款嵌入式網(wǎng)絡(luò)模塊,它內(nèi)部集成了TCP/IP 協(xié)議棧,用戶利用它可以實現(xiàn)嵌入式設(shè)備的網(wǎng)絡(luò)功能。該產(chǎn)品用于串口與以太網(wǎng)之間的數(shù)據(jù)傳輸,為串口設(shè)備增加以太網(wǎng)接口??捎糜诖谠O(shè)備與主控計算機機之間,或者多個串口設(shè)備之間的遠程通信

圖1 控制系統(tǒng)整體結(jié)構(gòu)圖

2.2 電動執(zhí)行機構(gòu)和以太網(wǎng)轉(zhuǎn)串口模塊通訊的實現(xiàn)

串行通訊采用TTL電平,占用兩個I/O口,即輸入口(RxD)和輸出口(TxD),執(zhí)行機構(gòu)主控板需要提供+5V電源給以太網(wǎng)轉(zhuǎn)串口模塊,硬件連接如圖2所示。

圖2底層通訊的實現(xiàn)原理圖

本系統(tǒng)中執(zhí)行機構(gòu)所采用的主控芯片Intel 80C196MC。圖中P2.0作為80C196MC的串行輸出,P2.1作為80C196MC的串行輸入。網(wǎng)卡地線應(yīng)和主控制板的數(shù)字地即單片機的地連接。80C196MC與以太網(wǎng)轉(zhuǎn)串口模塊之間采用異步通信,一幀長度為10位,包含8位數(shù)據(jù),1位奇偶校驗位和1位結(jié)束位。

3 軟件部分的實現(xiàn)

本系統(tǒng)采用基于VC++6.0的WinSock編程。套接字(Socket)已經(jīng)成為當今最流行的網(wǎng)絡(luò)通信應(yīng)用程序接口。套接字最初由加利福利亞大Berkeley分校為Unix操作系統(tǒng)開發(fā)的網(wǎng)絡(luò)通信接口, 后來它又被移植到DOS與Windows 系統(tǒng),特別是近幾年互聯(lián)網(wǎng)在全世界范圍內(nèi)的廣泛普及, 進一步奠定了它在網(wǎng)絡(luò)通信程序開發(fā)領(lǐng)域的主宰地位。

系統(tǒng)采用Client/Server模式。通過以太網(wǎng)轉(zhuǎn)串口模塊的配置軟件,將該模塊設(shè)置成服務(wù)器模式,而主控計算機上的控制軟件部分為客戶端,每次啟動由主控計算機主動連接執(zhí)行機構(gòu)??蛻舳撕头?wù)器采用面向連接的通信協(xié)議:控制計算機和模塊之間會建立一個虛擬連接,這個連接一旦建立,客戶端和服務(wù)器之間就可以把數(shù)據(jù)當作一個雙向字節(jié)流進行交換;如果連接建立不成功,則不會發(fā)送數(shù)據(jù)。另外,面向連接傳輸?shù)拿恳粋€報文都需要接收端確認,未確認報文被認為是出錯的報文。

3.1 通信過程

socket有同步阻塞方式和異步非阻塞方式兩種使用,本系統(tǒng)應(yīng)用程序中創(chuàng)建了繼承于CAsyncSOCKET類的TestSocket類,它是一個異步非阻塞Socket封裝類。

由于已經(jīng)將以太網(wǎng)轉(zhuǎn)串口模塊設(shè)置為服務(wù)器模式,所以,主控計算機段的程序是作為客戶端出現(xiàn)的,該程序的編寫大致按照以下步驟進行:

1) 首先調(diào)用WSAStartup函數(shù)來初始化套接字庫。

2) 調(diào)用socket函數(shù)來創(chuàng)建一個套接字。

3) 調(diào)用connect函數(shù)連接服務(wù)器,發(fā)出連接請求

4) 服務(wù)器響應(yīng)連接請求后,與服務(wù)器開始進行交互操作(接收、發(fā)送數(shù)據(jù)等),直到請求結(jié)束。

5) 調(diào)用closesocket關(guān)閉套接字,釋放套接字資源。

6) 調(diào)用WSACleanup函數(shù)釋放相應(yīng)資源。

客戶端程序與服務(wù)器的通信過程如圖3所示:

圖3:面向連接服務(wù)的socket調(diào)用模型

在以太網(wǎng)轉(zhuǎn)串口模塊中,服務(wù)器程序調(diào)用listen函數(shù)將此socket置于*狀態(tài),讓這個socket對進來的連接進行*并確認連接請求。當服務(wù)器端*到來自客戶端的連接請求后,一個正在*的socket將給將給每個請求發(fā)送一個確認信息,然后調(diào)用accept函數(shù),接著,面向連接的客戶通過調(diào)用connect函數(shù)啟動網(wǎng)絡(luò)對話。在客戶端和服務(wù)器端建立連接以后,雙方就可以通過send和recv或其它面向連接的Socket API函數(shù)進行網(wǎng)絡(luò)通信了。

3.2 通信協(xié)議

計算機和以太網(wǎng)轉(zhuǎn)串口模塊之間用SOCKET進行通信,模塊和執(zhí)行機構(gòu)之間則采用TTL電平通信,采用統(tǒng)一的通信協(xié)議。計算機為主動通訊設(shè)備,即所有的對話均由控制計算機發(fā)起,執(zhí)行機構(gòu)只是被動的應(yīng)答命令。

協(xié)議中信息幀主要分為兩種:數(shù)據(jù)幀與命令幀。它實現(xiàn)一般信息通信功能。數(shù)據(jù)幀包含一般的I/O信息,而命令幀則包含控制、查詢及設(shè)置等命令。為保證信息傳送的準確性,每條命令必須進行校驗(校驗和1),如果命令后有命令參數(shù)的話,要再次校驗(校驗和2)。執(zhí)行機構(gòu)返回的信息也要校驗。校驗的方法可采用逐字節(jié)異或的方式。

數(shù)據(jù)頭一方面作為一次信息開始的標志,另一方面用作校驗命令。命令碼和命令返回碼應(yīng)一致,保證控制計算機可以接收到正確的命令返回信息。

3.3 軟件初步模型

圖4是目前用于系統(tǒng)測試的客戶端軟件的初步模型,通過調(diào)試驗證,其功能已經(jīng)能基本滿足當前的測試需求:

(1) 每個執(zhí)行機構(gòu)都有一塊與其對應(yīng)的以太網(wǎng)轉(zhuǎn)串口模塊,且每個模塊都有自己固定的IP地址:輸入IP可與指定執(zhí)行機構(gòu)進行連接,可以與多臺執(zhí)行機構(gòu)同時進行連接并操控。

(2) 通過握手指令來確認連接是否已經(jīng)成功。若連接不正常,則進行握手時系統(tǒng)會收到來自執(zhí)行機構(gòu)的錯誤報告。

(3) 可查詢當前執(zhí)行機構(gòu)的運行位置、運行狀態(tài)、以及其參數(shù)的設(shè)置情況等。

(4) 對執(zhí)行機構(gòu)的參數(shù)進行遠程設(shè)置:在執(zhí)行機構(gòu)投入使用之前,都必須按照需求對其進行相應(yīng)的參數(shù)設(shè)置;在使用過程中亦可通過此功能來改變設(shè)置。

(5) 可以通過指定開度百分比讓執(zhí)行機構(gòu)運行到任意的目的位置。

(6) 可以指定方向讓執(zhí)行機構(gòu)正反轉(zhuǎn)或者停止,也可進行自主運行。

圖4:客戶端軟件初步模型

4 總結(jié)及展望

本文作者創(chuàng)新點:給出了基于VC的執(zhí)行機構(gòu)以太網(wǎng)監(jiān)控系統(tǒng)的設(shè)計方案,實現(xiàn)了高效、快捷的遠程控制。在下一步的開發(fā)中,使本系統(tǒng)的應(yīng)用軟件與市面上通用的工控組態(tài)軟件相兼容:比如一般的組態(tài)軟件都會嵌入ModBus/TCP協(xié)議,本軟件能夠在內(nèi)部完成對該協(xié)議的轉(zhuǎn)換。也就是當組態(tài)軟件發(fā)出控制命令后,本軟件能夠識別命令并能夠?qū)⑵滢D(zhuǎn)換成執(zhí)行機構(gòu)能夠識別的自定義協(xié)議,來間接的對執(zhí)行機構(gòu)進行控制。這樣,系統(tǒng)就能夠與組態(tài)軟件實現(xiàn)控制上的兼容,并達到現(xiàn)場數(shù)據(jù)的共享。

總之,隨著以太網(wǎng)傳輸速度的不斷加快以及在確定性、實時性、可靠性方面性能的不斷改善,工業(yè)以太網(wǎng)無疑會在未來的控制網(wǎng)絡(luò)中扮演越來越重要的角色。

責任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    450

    文章

    49636

    瀏覽量

    417189
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5288

    瀏覽量

    169670
  • 監(jiān)控系統(tǒng)

    關(guān)注

    21

    文章

    3769

    瀏覽量

    172344
收藏 人收藏

    評論

    相關(guān)推薦

    VC++6.0

    請問各位前輩哪里可以下載到好用的VC++6.0
    發(fā)表于 10-24 23:13

    誰有VC++6.0的下載地址?

    大家好,誰有VC++6.0的編程軟件?我每次在百度里面下載到一半就失敗了,有的話麻煩發(fā)給我,謝謝,我的是WIN7機子32位。
    發(fā)表于 08-28 08:08

    VC++6.0軟件

    VC++6.0軟件適合二級C語言等級考試用,有 visual c++6.0 win7 64bit兼容版 和 Visual.C++.6.0.with.SP6.大企業(yè)集成安裝版 win7
    發(fā)表于 09-25 00:53

    怎么實現(xiàn)以太網(wǎng)的光無線通信系統(tǒng)的設(shè)計?

    怎么實現(xiàn)以太網(wǎng)的光無線通信系統(tǒng)的設(shè)計?
    發(fā)表于 05-28 07:08

    基于以太網(wǎng)的電梯監(jiān)控系統(tǒng)設(shè)計

    以太網(wǎng)是構(gòu)建電梯監(jiān)控系統(tǒng)的理想平臺。本文介紹了一種基于以太網(wǎng)的電梯監(jiān)控系統(tǒng),該
    發(fā)表于 06-24 09:25 ?30次下載

    利用VC++6.0 實現(xiàn)上位機與PLC的串行通信

    介紹了西門子S7–200 系列 PLC 的自由口通信模式及在Windows 環(huán)境下應(yīng)用VC++6.0 實現(xiàn)PC 機與PLC串行通信的編程方法,開發(fā)了玻璃器皿沖壓機上位機監(jiān)控系統(tǒng)
    發(fā)表于 08-07 10:21 ?143次下載

    具有以太網(wǎng)接口的變電站監(jiān)控系統(tǒng)設(shè)計

    :本文介紹了具有工業(yè)以太網(wǎng)接口的變電站監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)。提出了雙CPU結(jié)構(gòu)的變電站監(jiān)控系統(tǒng)
    發(fā)表于 08-31 10:07 ?14次下載

    利用VC++6.0實現(xiàn)上位機與PLC的串行通信

    介紹了西門子S7–200 系列 PLC 的自由口通信模式及在Windows 環(huán)境下應(yīng)用VC++6.0 實現(xiàn)PC 機與PLC串行通信的編程方法,開發(fā)了玻璃器皿沖壓機上位機監(jiān)控系統(tǒng)。實際運
    發(fā)表于 09-01 08:38 ?44次下載

    用51單片機控制RTL8029實現(xiàn)以太網(wǎng)通信

    摘要:本文介紹了TCP/IP協(xié)議、RTL8029的結(jié)構(gòu)特性以及PCI總線協(xié)議的特點,給出了一種用P89C51RD2單片機控制以太網(wǎng)接口芯片RTL80內(nèi)
    發(fā)表于 09-19 21:11 ?58次下載

    單片機實現(xiàn)以太網(wǎng)通訊硬件設(shè)計

    介紹以太網(wǎng)的幀協(xié)議和以太網(wǎng)控制芯片RTL8019AS的結(jié)構(gòu)特性;介紹單片機控制RTL8019AS實現(xiàn)以太網(wǎng)通訊的硬件設(shè)計方案;采用c51語言
    發(fā)表于 08-29 16:32 ?126次下載
    單片機<b class='flag-5'>實現(xiàn)以太網(wǎng)</b>通訊硬件設(shè)計

    c語言編程軟件vc6.0使用教程_vc6.0怎么用

    c語言編程軟件vc6.0使用教程,附件包含二個教程文件,VC++6.0培訓(xùn)教程完整版及VC6.0介紹。 Visual C++
    發(fā)表于 10-15 09:23 ?483次下載
    <b class='flag-5'>c</b>語言編程軟件<b class='flag-5'>vc6.0</b>使用教程_<b class='flag-5'>vc6.0</b>怎么用

    vc++6.0(Visual+C+++6.0)官方中文版下載+精簡

    vc++6.0用于企業(yè)的編程以及編譯工具,是初學者不錯的選擇
    發(fā)表于 03-03 14:34 ?0次下載

    如何使用51單片機控制RTL8019AS實現(xiàn)以太網(wǎng)通訊

    介紹以太網(wǎng)的幀協(xié)議和以太網(wǎng)控制芯片RTL8019AS的結(jié)構(gòu)特性;介紹51單片機控制RTL8019AS實現(xiàn)以太網(wǎng)通訊的硬件設(shè)計方案;采用C51
    發(fā)表于 07-19 17:37 ?12次下載
    如何使用51單片機控制RTL8019AS<b class='flag-5'>實現(xiàn)以太網(wǎng)</b>通訊

    vc++6.0完整綠色版

    vc++6.0
    發(fā)表于 06-09 14:57 ?0次下載

    基于VC++6.0的SCPI解釋器設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于VC++6.0的SCPI解釋器設(shè)計.pdf》資料免費下載
    發(fā)表于 10-24 14:10 ?3次下載
    基于<b class='flag-5'>VC++6.0</b>的SCPI解釋器設(shè)計