?
工業(yè)自動(dòng)化控制系統服務(wù)商
KERNTECH科恩電氣聯(lián)系電話(huà)

KERNTECH科恩電氣匯聚品牌

從用戶(hù)的設計思想及產(chǎn)品選型入手,優(yōu)化系統;

協(xié)助用戶(hù)實(shí)施成本控制,真實(shí)地為客戶(hù)創(chuàng )造價(jià)值;

吸收學(xué)習自動(dòng)化行業(yè)技術(shù)知識,立足服務(wù)廣大中國用戶(hù)。

KERNTECH科恩電氣控制系統設計

服務(wù)客戶(hù)的工業(yè)自動(dòng)化控制系統應用研發(fā)中心

服務(wù)客戶(hù)的工業(yè)自動(dòng)化控制系統設計中心

服務(wù)客戶(hù)的工業(yè)自動(dòng)化控制系統成套制造中心

KERNTECH科恩電氣控制系統設計
公司擁有獨立的電氣成套生產(chǎn)車(chē)間,按照標準進(jìn)行電氣成套設計和生產(chǎn),為客戶(hù)提供工業(yè)自動(dòng)化控制系統成套服務(wù)。愿與廣大用戶(hù)真誠合作,同步提升,共創(chuàng )美好未來(lái)!好未來(lái)!
KERNTECH科恩電氣服務(wù)團隊

KERNTECH 科恩電氣—— 值得信賴(lài)的合作伙伴

通過(guò)近二十年來(lái)的技術(shù)積累,公司培養出一批自動(dòng)化產(chǎn)品及控制系統設計和應用方面的專(zhuān)業(yè)化技術(shù)人才;

為您提供自動(dòng)化專(zhuān)業(yè)技術(shù)支持, 協(xié)助客戶(hù)進(jìn)行項目可行性探討以及控制系統方案前期規劃等;

作為Panasonic(松下電器) 指定授權維修中心,我們將竭誠為您提供專(zhuān)業(yè)的維修服務(wù);

KERNTECH科恩電氣匯聚品牌

提供工業(yè)自動(dòng)化控制產(chǎn)品和專(zhuān)業(yè)技術(shù);

完善的系統集成、產(chǎn)品開(kāi)發(fā)、工程項目實(shí)施等技術(shù)能力;

擁有自動(dòng)化產(chǎn)品及控制系統設計和應用方面的技術(shù)人才。

KERNTECH科恩電氣控制系統設計

擁有豐富經(jīng)驗的專(zhuān)業(yè)技術(shù)團隊;

沒(méi)有完美的個(gè)人,只有完美的團隊;

分工明確、步調一致、全心全意為客戶(hù)服務(wù)。

首頁(yè) > 核心業(yè)務(wù) > 定制化服務(wù) > 定制化服務(wù)案例 > PC/PCC 集散控制系統多機實(shí)時(shí)通信的實(shí)現
PC/PCC 集散控制系統多機實(shí)時(shí)通信的實(shí)現

可編程計算機控制器( PCC: Programmable Computer Controller) 以其可靠性高、開(kāi)發(fā)周期短、配置靈活、功能強大而在工業(yè)控制領(lǐng)域得到越來(lái)越廣泛的應用。由于其能適應惡劣的工業(yè)現場(chǎng),因此多被作為集散控制系統的下位機使用。但PCC的顯示功能較差, 因此將PC與PCC 結合起來(lái)構成了總線(xiàn)式的集散控制系統, 充分利用PC機強大的人機接口功能、豐富的系統軟件, 用圖形化界面實(shí)現了對整個(gè)系統的實(shí)時(shí)監控。其中各設備間的通信是系統實(shí)現的關(guān)鍵。RS-232 接口是計算機及PCC共同具有的, 利用貝加萊公司的幀驅動(dòng)器并加入一些輔助電路及相應通信程序即可構造基于RS-232的總線(xiàn)式多機通信網(wǎng)絡(luò )。實(shí)驗證明, 該網(wǎng)絡(luò )具有硬件實(shí)現簡(jiǎn)單、系統可靠、抗干擾能力強的特點(diǎn)。

1  多機實(shí)時(shí)通信的硬件實(shí)現
PC/ PCC 總線(xiàn)式集散控制系統的總體結構如圖1 所示。

圖1  計算機與多臺PCC 組成的集散控制系統

  系統采用RS-232 串行通信方式實(shí)現了上位機對整個(gè)系統的實(shí)時(shí)監控, 同時(shí)為了提高硬件穩定性,優(yōu)化系統工作性能, 本文采用硬件仲裁電路來(lái)實(shí)現數據總線(xiàn)的分配, 并合理解決了數據沖突問(wèn)題, 簡(jiǎn)化了軟件設計, 提高了系統可靠性和抗干擾能力。

1.1  RS-232 多機通信機制

  普通的RS-232采用點(diǎn)對點(diǎn)串行數據傳輸方式, 無(wú)法滿(mǎn)足多設備之間的實(shí)時(shí)通信, 因此需要對其連接方式作一些改進(jìn)。RS-232的點(diǎn)對點(diǎn)通信是將接口的數據發(fā)送端(TXD)連接到另一方的數據接收端(RXD) , RXD與另一方的TXD相連,雙方的地線(xiàn)端(GND)直接相連。但在計算機與多臺PCC相連時(shí)則發(fā)生了一些變化。如圖2所示,計算機的數據發(fā)送端直接連接到各PCC的數據接收端, 地端直接與各PCC的地端相連, 但各PCC的數據發(fā)送端不能同時(shí)連接到計算機的數據接收端, 因為數據發(fā)送端在無(wú)數據發(fā)送時(shí)為高電平,而發(fā)送的數據為高低電平組成的脈沖序列, 直接將兩個(gè)或多個(gè)數據發(fā)送端連接到一起接入計算機, 則會(huì )造成其數據接收端電平的不確定, 產(chǎn)生了數據沖突問(wèn)題。為了解決上述問(wèn)題設計了專(zhuān)門(mén)的硬件仲裁電路, 將各PCC的TXD 以及數據發(fā)送請求端(DTR)接入, 再將仲裁電路輸出端連接到計算機的數據接收端。

圖2  RS-232 多機通信連接示意圖

1.2  仲裁電路結構與工作原理

  由于上位機(PC)的發(fā)送端為一對多廣播式發(fā)送, 所以上位機發(fā)送的數據幀所有的下位機( PCC)均可以接收到, 至于數據幀由哪一臺下位機接收則由通信協(xié)議中的目的地址ID判定。但對于下位機,其發(fā)送端為多對一連接, 如直接將其相連, 則會(huì )發(fā)生數據沖突。圖3 所示的仲裁電路可以確保每次只有一臺下位機能夠發(fā)送數據到上位機的數據接收線(xiàn)上。應注意的是, RS-232 接口使用的高低電平與TTL 中的高、低電平不同, 需進(jìn)行電平轉換。

圖3  下位機發(fā)送數據仲裁電路

  圖3 以三路PCC 為例說(shuō)明。各下位機初始化時(shí)均將其DTR 設置為低電平, 因為與門(mén)1 、2 、3均有低電平輸入, 所以初始化后A、B、C 三點(diǎn)均為低電平, 并且與門(mén)4 、5 、6 也一直輸出低電平。假設下位機1 是第一臺要發(fā)送數據的下位機, 發(fā)送前先將自己的DTR 端口設置為高電平, 而此時(shí)B、C 兩點(diǎn)仍為低電平, 經(jīng)反相器后變?yōu)楦唠娖捷斎肱c門(mén)1 , 所以與門(mén)1 的輸出A 點(diǎn)電平也為高, 此時(shí)數據發(fā)送服務(wù)程序讀取數據發(fā)送查詢(xún)端(DSR) 電平狀態(tài)(即A 點(diǎn)電平狀態(tài)) 為“1”, 說(shuō)明總線(xiàn)未被占用,處于空閑狀態(tài)。由于下位機1 的DTR 端口已被置高, 且查詢(xún)得知總線(xiàn)空閑, 則其DTR 端口不變仍然設置為高電平, 這樣下位機1 就占用了總線(xiàn), 可以開(kāi)始發(fā)送數據。數據由TXD 端經(jīng)過(guò)與門(mén)4 后輸入上位機的RXD 端, 由于此時(shí)A 點(diǎn)電平為高, 保證了數據經(jīng)過(guò)與門(mén)4 后沒(méi)有失真直接上傳至上位機, 同時(shí)A 點(diǎn)電平經(jīng)反相器后變?yōu)榈碗娖捷斎肱c門(mén)2 、3 , 故B、C 兩點(diǎn)電平為低, 與門(mén)5 、6 始終輸出低電平, 避免了數據沖突。當下位機1 數據發(fā)送完畢后將其DTR 端口置低, A 點(diǎn)電平變低, 釋放了總線(xiàn), 又回到初始化后的狀態(tài), 可以供給下一個(gè)要發(fā)送數據的下位機使用。假設下位機1 發(fā)送數據的過(guò)程中, 下位機2 也要發(fā)送數據, 同樣先將自己的DTR 端口置高, 但此時(shí)A 點(diǎn)電平為高, 經(jīng)反相器后輸入與門(mén)2 , 所以與門(mén)2 的輸出B 點(diǎn)仍為低電平, 程序讀取DSR 端口電平(即B 點(diǎn)電平) 為“0”, 說(shuō)明總線(xiàn)已被占用, 因此將DTR 端口重新置低, 等待下次查詢(xún), 這樣就避免了兩臺下位機同時(shí)上傳數據。下一個(gè)查詢(xún)周期未到時(shí), 程序持續查詢(xún)是否有更高優(yōu)先級的任務(wù)標志位置位, 有則調用相應的任務(wù)服務(wù)程序, 沒(méi)有則重復查詢(xún)各標志位直至下一個(gè)查詢(xún)周期到來(lái); 下一個(gè)查詢(xún)周期到來(lái)后,重復一次置高DTR 端口、讀取DSR 端口的過(guò)程以判斷總線(xiàn)狀態(tài), 空閑則DTR 端口保持高電平占用總線(xiàn)并發(fā)送數據, 否則置低DTR 端口, 等待下次查詢(xún)。下位機2 重復上述過(guò)程直至查詢(xún)到總線(xiàn)空閑并占用總線(xiàn)以發(fā)送數據。

  不同類(lèi)型的數據發(fā)送其優(yōu)先級也不同, 數據發(fā)送任務(wù)的優(yōu)先級越高, 查詢(xún)周期就越短, 保證了系統通信的實(shí)時(shí)性。由于各發(fā)送方在發(fā)送時(shí)間上存在差異, 首先查詢(xún)到總線(xiàn)空閑的下位機得以使用數據總線(xiàn), 在發(fā)送數據前已將其DTR 由低電平轉為高電平, 仲裁電路將總線(xiàn)狀態(tài)轉為忙碌, 避免其余下位機同時(shí)使用總線(xiàn)造成數據沖突。當數據傳輸結束則將DTR 轉為低電平, 仲裁電路將總線(xiàn)狀態(tài)轉為空閑。由于PC 為一對多發(fā)送, 下位機通過(guò)仲裁機制鎖死總線(xiàn)只是保證同一時(shí)刻數據上傳總線(xiàn)上只有一臺PCC 向PC 發(fā)送數據, 并不會(huì )影響PC 通過(guò)數據下行總線(xiàn)發(fā)送數據到各PCC , 從而實(shí)現了總線(xiàn)的合理分配, 解決了數據沖突問(wèn)題。

2  多機實(shí)時(shí)通信的軟件實(shí)現
2.1  RS-232 的數據傳輸格式
RS-232 的數據是以字節的形式發(fā)送的, 一次發(fā)送一個(gè)字節, 其數據傳輸格式如圖4 所示。

圖4  RS-232 數據傳輸格式

  包含一個(gè)起始位、8 個(gè)數據位以及一個(gè)校驗位和停止位, 數據位為所發(fā)送的對象, 而數據幀則是多個(gè)字節按一定格式打包而成的一個(gè)字節序列, 以字節流形式發(fā)送。

2.2  幀驅動(dòng)器

  幀驅動(dòng)器是貝加萊公司為實(shí)現與第三方設備之間進(jìn)行通信而設計的軟件工具箱, 存放在PCC 應用程序ROM 中, 完全控制了通信的硬件部分而不改變幀的形式。通常數據通信, 對數據進(jìn)行讀寫(xiě)操作, 用戶(hù)必須對端口的細節了解很清楚, 才能通過(guò)編程實(shí)現對接口各管腳進(jìn)行操作。而幀驅動(dòng)器將這些操作集中起來(lái), 用戶(hù)只需要了解第三方產(chǎn)品的通信協(xié)議細節(包括信息幀格式的組成等) , 并用幀驅動(dòng)器寫(xiě)出與第三方產(chǎn)品通信協(xié)議一樣的通信規約,就可方便地實(shí)現PCC 與第三方產(chǎn)品之間的通信。同時(shí), 幀驅動(dòng)器支持RS-232 、RS-422 、RS-485 、CAN 等接口, 因此軟件中只要稍微作些改動(dòng), 便可支持不同的接口進(jìn)行數據通信, 具有可擴展性和廣泛的應用前景。

2.3  通信協(xié)議制定

  PC 和PCC 以及PCC 之間能進(jìn)行通信首先需要制定一個(gè)合理的通信協(xié)議, 才能進(jìn)行通信。為此本著(zhù)充分利用資源、結構簡(jiǎn)單、可擴充性強的原則定義了數據幀的結構。對于數據幀的格式, 考慮到組網(wǎng)以及適應不同通信接口的需要做了如表1 定義。

表1  數據幀的格式定義

  目的ID 和源ID 均分配一個(gè)字節, 用于標志數據幀的接收設備和發(fā)送設備, 以便接收設備判斷接收和發(fā)生接收錯誤時(shí)呼叫發(fā)送設備重發(fā)。命令字給定數據幀的類(lèi)型(數據或控制字) , 指明隨后的DA TA 是數據內容還是控制字。這樣系統中的各設備可根據事先制定的通信協(xié)議將欲發(fā)送的控制指令或數據打包寫(xiě)入DA TA 中, 或者將接受的數據幀按協(xié)議解包為控制命令并執行或對接收到的數據進(jìn)行處理。幀數指明了當前發(fā)送的是第幾個(gè)數據幀, 以便于接收設備判斷是否有數據幀丟失以呼叫發(fā)送設備重發(fā)。最后判斷接收的校驗位與自行計算校驗位結果是否一致, 一致則進(jìn)行相應操作, 否則丟棄該幀并呼叫發(fā)送設備重發(fā)。
為了確保數據接收的可靠性, 使用應答方式進(jìn)行通信, 接收機接收到數據后返回一個(gè)應答幀加以確認, 發(fā)送機收到此幀再發(fā)送下一幀數據, 如無(wú)應答則周期循環(huán)發(fā)送同一幀, 如超時(shí)未應答則向上位機發(fā)送數據幀報錯, 上位機接收后顯示發(fā)送與接收設備ID及錯誤類(lèi)別并報警以提示監控人員排除錯誤。

2.4  系統內各設備間的通信
①PC 與PCC 之間的通信。PC 向下位機發(fā)送數據幀采用廣播式, 但只有符合目標地址ID 的下位機能夠接受, 而下位機采用仲裁機制向上位機發(fā)送數據。
②PCC 與PCC 之間的通信。PCC 與PCC 之間是通過(guò)PC 以數據轉發(fā)的形式進(jìn)行數據幀傳送的。當監控計算機收到不是以自己為目的地址的數據幀時(shí), 直接將其送入數據傳送總線(xiàn)由目的PCC判斷接受。

2.5  基于C語(yǔ)言的PCC數據通信的實(shí)現及程序流程圖
 ?、傧挛粰C編程。使用貝加萊公司提供的標準PC。
  PCC 發(fā)送程序流程如圖5 (a) 所示。PC 發(fā)送程序流程由于為一對多廣播式發(fā)送, 省略查詢(xún)總線(xiàn)過(guò)程, 直接發(fā)送即可。PC 接收程序流程如圖5 (b) 所示。PCC 接收程序流程基本與PC 接收程序流程一致, 但在判斷接收數據幀目的ID 與本機ID 不符后, PCC 直接退出事件觸發(fā)服務(wù)程序返回, 而PC則將得到的數據幀發(fā)送給各下位機以使目的PCC 接收該數據幀。

 ?、谏衔粰C編程。使用Visual Basic , 流程中需要發(fā)送數據或命令只要按定義好的通信協(xié)議進(jìn)行數據裝幀并調用數據發(fā)送程序將其通過(guò)串行口發(fā)送即可。為了實(shí)現數據的實(shí)時(shí)接收, 在VB 工程中導入了PComm Pro (此軟件借助Windows API 函數的調用來(lái)控制使用串行通信端口) 的通信函數庫和控件以實(shí)現接受數據的實(shí)時(shí)觸發(fā)。事件的觸發(fā)除了定時(shí)器或循環(huán)的輪詢(xún)(Polling) 方式外, 還可以使用回調函數(CallBack Function) 實(shí)現。PComm 針對事件的處理就是采用回調函數的方式處理, 欲建立事件, 需給定一個(gè)函數的地址, 當事件發(fā)生時(shí), 便到該回調函數所在地址去執行該程序代碼。因此定義了回調函數作為接受數據的事件觸發(fā)服務(wù)程序, 當接受數據事件發(fā)生時(shí)便執行該事件觸發(fā)程序, 保存接受到的數據, 并按協(xié)議進(jìn)行數據幀的解包, 將數據取出并作相應處理顯示在監視器上, 以便實(shí)時(shí)監控, 或執行相應的命令。

多機實(shí)時(shí)通信測試程序實(shí)驗結果如圖6 所示。

3  結束語(yǔ)
  本文利用硬件仲裁電路巧妙地實(shí)現了數據總線(xiàn)分配, 解決了數據沖突問(wèn)題, 簡(jiǎn)化了系統設計, 優(yōu)化了系統性能。通過(guò)PCC 與PC 的有機結合, 構成了基于RS-232 的總線(xiàn)式集散控制系統, 充分利用了PCC 和PC 的優(yōu)點(diǎn), 用可視化的圖形界面實(shí)現對整個(gè)系統的實(shí)時(shí)監控。實(shí)驗證明, 系統運行良好, 監控準確無(wú)誤, 還可應用于其它分布式測控系統和類(lèi)似系統, 具有一定的工程應用價(jià)值。


?

在線(xiàn)
客服

在線(xiàn)客服KERNTECH 竭誠真誠為您服務(wù)!

售前咨詢(xún)(天津)

售前咨詢(xún)(北京)

售前咨詢(xún)(濟南)

項目咨詢(xún)

售后與維修咨詢(xún)

客服
熱線(xiàn)

400-867-5758
7*24小時(shí)客服服務(wù)熱線(xiàn)

關(guān)注
微信

科恩電氣
科恩眾和
頂部
国产国拍精品亚洲|精品午夜福利视频|亚洲av无码片vr一区二区三区|久久久久亚洲Av无|亚洲av久播在线播放