<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 采用RS422A現場(chǎng)總線(xiàn)溫控網(wǎng)絡(luò )控制系統的結構及分析

采用RS422A現場(chǎng)總線(xiàn)溫控網(wǎng)絡(luò )控制系統的結構及分析

作者: 時(shí)間:2011-04-09 來(lái)源:網(wǎng)絡(luò ) 收藏

是工業(yè)界廣泛使用的雙向、差動(dòng)平衡驅動(dòng)和接收傳輸線(xiàn)標準接口 ,它以全雙工方式通信 ,支持多點(diǎn)連接 ,允許創(chuàng )建多達 32個(gè)節點(diǎn)的,具有傳輸距離遠 (最大傳輸距離為 1200m) ,傳輸速率快 ( 1200m時(shí)為 100kbit/s)等優(yōu)點(diǎn) ,相對于其它,如FF、CAN、LonWorks等而言,具有簡(jiǎn)單、成本低廉、安裝方便、與傳統的DCS兼容等特點(diǎn);此外,市場(chǎng)上很多儀表都有接口,因此可以很容易地開(kāi)發(fā)一些中小型測控系統。RS-422A總線(xiàn)是EIA公布的“平衡電壓數字接口電路的電氣特性”標準,這個(gè)標準是為改善RS-232C標準的電氣特性,又考慮與RS-232C兼容而制定的。結合某一工程項目的實(shí)際特點(diǎn) ,我們通信接口來(lái)實(shí)現遠程數據通信系統。

本文引用地址:http://dyxdggzs.com/article/162195.htm

  在該工程項目中,系統兩級主從總線(xiàn)型。溫度等變量的控制主要由總線(xiàn)上的各個(gè)智能儀表實(shí)現,上位機根據控制要求修改智能儀表的給定值等參數,以及一些數字量的監控顯示等。該項目所選智能儀表為上海大華-千野儀表有限公司生產(chǎn),參數相當復雜,具有較強的控制以及通信功能。同時(shí),利用上位機軟硬件資源豐富,以Windows為操作平臺,因此開(kāi)發(fā)的應用軟件有強大的管理功能以及非常友好的人機界面。本系統應用軟件采用Microsoft Visual C++6.0開(kāi)發(fā),充分利用VC++靈活快速,對視窗編程和多任務(wù)編程的方便接口,開(kāi)發(fā)出來(lái)的軟件具有完善的數據采集、設定、報警、實(shí)時(shí)監視等功能。應用結果表明,該系統有效的實(shí)現了對溫度的監控,效果良好。

系統

  該智能儀表功能較為完善,控制精度高。自帶RS422A通信卡,通信命令多達一百多條,上傳及接受數據量大,主要包括各步溫度設定值、PID參數值、報警參數值、傳感器修正值、模糊控制參數值等等。總線(xiàn)采用RS422A總線(xiàn),因為RS422A總線(xiàn)具有結構簡(jiǎn)單、成本低廉安裝方便等優(yōu)點(diǎn)。智能儀表掛接在 RS422A總線(xiàn)上,通過(guò)RS422A/232C裝換器和PC串口相連接。為此配置有十幾臺(可擴展)智能儀表,RS422A/232C轉換器一塊,并且每一臺儀表設置唯一的地址。溫度的控制由下位機(智能儀表)完成。主控計算機完成的功能有1)主動(dòng)讀取下位機相關(guān)數據2)改變溫度控制的設定值以及其它的參數,但不直接完成對溫度的控制。3)顯示曲線(xiàn)畫(huà)面,儀集中顯示畫(huà)面以及報警數據等的動(dòng)態(tài)顯示。4)數據的存儲,統計,報表等。系統的硬件結構圖如圖1所示。

系統的硬件結構圖

圖1 系統的硬件結構圖

通信協(xié)議

  1) 物理層采用平衡型標準RS422接口 ,以提高數據傳輸的可靠性。在平衡型標準RS422A中,

  發(fā)送器與接收器均以差分方式工作 ,每個(gè)信號用兩根導線(xiàn)傳輸 ,信號的電平由兩根導線(xiàn)上的信號的差值來(lái)表示。

  2) 數據鏈路層本系統采用異步串行通信方式。系統約定,波特率:9600bps,偶校驗,1個(gè)起始位,7個(gè)數據位,1個(gè)停止位,采用ASCII碼作為傳輸代碼??偩€(xiàn)上的傳輸幀分為命令幀和數據幀。命令幀又分為為建立連接包含地址信息的地址命令幀和對已建立連接要求上傳或者下傳數據的控制命令幀。后者和數據幀的文本格式如下:

后者和數據幀的文本格式

  3)網(wǎng)絡(luò )層由PC機實(shí)現該層協(xié)議的功能??偩€(xiàn)上的傳輸幀中,地址命令幀是控制PC機以廣播的形式發(fā)出,用于喚醒總線(xiàn)上的某臺儀表,握手請求與之建立通信關(guān)系,然后相應的儀表向控制PC機回傳本機地址,則握手成功;否則儀表向PC機回傳否定應答。當PC機要和目前通信的儀表以外的其他儀表通信時(shí),必須首先放棄目前的通信關(guān)系,發(fā)送放棄通信命令幀。然后再從新按照上述方式建立連接。建立連接,放棄連接以及儀的應答格式如下所示:

放棄連接以及溫控儀的應答格式

  其中ENQ pEOT pACK 為控制碼 結束碼表示一幀的結束

  4)應用層 工業(yè)智能儀表的RS422A總線(xiàn)網(wǎng)絡(luò )系統的應用層,是對控制PC機與智能儀表之間相互傳送的信息組幀,即數據格式按照一定的格式和含義進(jìn)行定義。

系統軟件設計

  系統管理軟件采用面向對象技術(shù),基于Windows2000平臺,用VC++6.0編程開(kāi)發(fā)。系統應用軟件由實(shí)時(shí)動(dòng)態(tài)過(guò)程和歷史記錄瀏覽兩大部分組成,實(shí)時(shí)動(dòng)態(tài)過(guò)程包括數據采集及設定、運行控制、數據管理三大模塊組成,數據采集及設定模塊定時(shí)從下位機即智能儀表采集和設定過(guò)程實(shí)時(shí)數據??刂颇K主要是控制儀表的運行或停止等以及運行段選擇,數據管理模塊包括數據通信、數據顯示、報警、打印、存儲等功能。

  根據實(shí)時(shí)系統的特征,監控軟件中多個(gè)任務(wù)同時(shí)運行,為了不讓一個(gè)任務(wù)執行的時(shí)候,阻塞別的任務(wù),我們充分里了Windows系統允許多進(jìn)程、多線(xiàn)程編程的特點(diǎn),將系統的分成幾個(gè)模塊。首先,將歷史紀錄瀏覽和實(shí)時(shí)動(dòng)態(tài)過(guò)程分成兩個(gè)進(jìn)程,因為這兩個(gè)過(guò)程有很大的差別。歷史紀錄瀏覽中的數據是靜態(tài)的,對實(shí)時(shí)性沒(méi)有要求,而且可以在生產(chǎn)過(guò)程之中或之后運行都可以,在開(kāi)發(fā)這部分程序時(shí),可以不用考慮時(shí)間的問(wèn)題。實(shí)時(shí)動(dòng)態(tài)過(guò)程卻是一個(gè)實(shí)時(shí)性要求很高的任務(wù),在這個(gè)過(guò)程中主要要完成通信、顯示、控制、打印等任務(wù),另外還要完成數據的轉儲。

 ?。?) 動(dòng)態(tài)進(jìn)程設計

  線(xiàn)程一詞指程序指令順序的執行,每個(gè)程序獨立執行程序代碼中的一系列指令。從用戶(hù)或應用程序編程的角度看,程序中的線(xiàn)程是同時(shí)運行的。操作系統通??烤€(xiàn)程與線(xiàn)承建的快速切換控制來(lái)達到這種同時(shí)的感覺(jué)(但如果計算機有多個(gè)處理器,則系統可以直接同時(shí)執行線(xiàn)程)。程需要在某個(gè)時(shí)間完成多個(gè)任務(wù)時(shí)(許多引用程序都是這樣),將每個(gè)任務(wù)放在不同的線(xiàn)程中不僅使程序更加有效,而且能簡(jiǎn)化開(kāi)發(fā)工作。

  在設計實(shí)時(shí)動(dòng)態(tài)進(jìn)程時(shí)我們把它分成了兩個(gè)線(xiàn)程:主線(xiàn)程和通信線(xiàn)程。主線(xiàn)程定時(shí)啟動(dòng)通信線(xiàn)程,通信線(xiàn)程執行完一次通信任務(wù)后自動(dòng)懸掛。在正常情況下,主線(xiàn)程兩次恢復通信線(xiàn)程之間的時(shí)間是能夠保證一次通信線(xiàn)程的完整執行。

  在數據存儲方面,為了提高系統的動(dòng)態(tài)性能,要求能快速訪(fǎng)問(wèn)數據存儲區,我們將數據存放在兩個(gè)地方。正在進(jìn)行的生產(chǎn)過(guò)程的過(guò)程數據首先存放在內存開(kāi)辟的數據緩沖區內,這樣主線(xiàn)程能很快的訪(fǎng)問(wèn)到。另外,將幾次通信的數據定期存放到硬盤(pán)上,這樣能防止因停電等意外事故造成數據的損失。

  在程序設計時(shí)我們采用了面向對象設計的思想,比如我們把溫控儀看成一個(gè)對象,有關(guān)的數據結構及其操作完全封裝在一個(gè)類(lèi)里面,這樣程序的數據結構分離也可以實(shí)現分離,這對于軟件的擴展,對于軟件開(kāi)發(fā)和調試都會(huì )帶來(lái)極大的方便。

  該軟件主要實(shí)現方式如下:

  在重載的void CRS422AnetView::OnDraw(CDC* pDC)函數里面調用自定義函數StartOfSystem(pDC),后者打開(kāi)并配置好串口,啟動(dòng)通信線(xiàn)程,設置記時(shí)器等。其主要代碼如下:

  void CRs422AnetView::StartOfSystem(CDC *pDC)

 ?。?/p>

  ……

  m_hCom=CreateFile(m_sPort, GENERIC_READ | GENERIC_WRITE, 0, NULL,

  OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,NULL);

  if(m_hCom==INVALID_HANDLE_VALUE)

  return FALSE;

  DCB dcb;

  if(!GetCommState(m_hCom, dcb)) return FALSE;


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>