程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 【工業串口和網絡軟件通訊平台(SuperIO)教程】八.SuperIO通訊機制與設備驅動對接的說明,superio.superio

【工業串口和網絡軟件通訊平台(SuperIO)教程】八.SuperIO通訊機制與設備驅動對接的說明,superio.superio

編輯:C#入門知識

【工業串口和網絡軟件通訊平台(SuperIO)教程】八.SuperIO通訊機制與設備驅動對接的說明,superio.superio


SuperIO相關資料下載:http://pan.baidu.com/s/1pJ7lZWf

1.1    通訊機制說明

      通訊的總體機制采用呼叫應答方式,就是上位機軟件主動發送請求數據命令,下位機終端接收到命令後,並校驗成功,返回相應的數據。

(1)串口通訊機制包括:輪詢模式。

      串口總線涉及到一對一的通訊、一對多的通訊,為了避免總線上數據的沖突問題以及環境干擾的問題,在保障通訊穩定性的前提下,只采用輪詢通訊機制。一個設備發送、接收完成數據後,才進行下一個設備的通訊。但是這種通訊效率比較低,如果要提高通訊效率,可以增加串口服務器,在SuperIO平台上實現一個串口對應多台現場設備進行通訊,也就是把現場的所有設備平衡負載到不同的串口上。

(2)網絡通訊機制包括:輪詢模式、並發模式和自控模式。

       輪詢模式與串口通訊機制中的輪詢模式相同,但是對於網絡通訊時,這個操作模式的效率是非常低,不能體現網絡通訊的優勢。基於這樣的考慮,在輪詢模式的基礎上,增加了並發模式和自控模式。

       並發模式,由SuperIO的內部來協調實現,通過調用IRunDevice設備接口的GetSendBytes函數獲得發送的命令包,集中發送所有設備的數據。接收數據部分采用異步監聽方式,接收相應設備的數據。並發模式的通訊周期由SuperIO平台統一進行調度,不能自主控制請求數據的周期,在此基礎上增加了自控模式。

       自控模式,二次開發者在開發設備驅動時,可以定時通過OnSendDataHandler發送請求數據命令,接收數據部分采用異步監聽方式,接收相應設備的數據,做到即時請求即時響應。

另外一種情況,現場硬件終端會主動發送狀態字數據給上位機軟件,這時候就需要能夠主動監聽接收數據事件,這是輪詢模式做不到的。遇到這類情況,建議使用自控模式進行通訊。

 

1.2    通訊機制與設備驅動對接

     SuperIO包括兩大部分:通訊部分和設備驅動部分。

(1)    通訊部分如何與設備驅動協調工作?兩部分主要是通過IRunDevice接口實現兩部分之間的協調工作,線程、異步、同步等機制由SuperIO內部來完成。

(2)    通訊部分接收到數據後如何傳輸到相應的設備上?輪詢模式不存在這個問題,主要涉及到並發模式和自控模式,因為這兩部分采用的是異步監聽數據的方式。解決這個問題有兩種方式:第一種、通過接收協議驅動獲得設備ID來識別相應的設備。第二種、通過設備設置的IP地址來識別相應的設備。現在的SuperIO平台采用的是第二種方式。

(3)    並發模式和自控模式如何實現通訊中斷狀態?在鏈路不通的情況下,發送請求命令,沒有返回相應的數據,也不過觸發運行設備的接口,所以通訊狀態也不會改變,也不會做出任何反應。解決這個問題的方式是,發送請求數據命令超過3次,每次都沒有返回相應的數據,就會觸發運行設備接口,來完成運行設備的整個流程。

 

作者QQ:504547114

交流QQ群:54256083

官方網址:http://www.bmpj.net

源文章地址:http://www.bmpj.net/index.php?m=article&f=view&id=8

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved