top
Loading...
基于VB的分布式監控系統通信設計
天極IT資訊短信服務 電腦小技巧
資費:包月5元
手機:
介紹:細處著手,巧處用功。高手和菜鳥之間的差別就是:高手什么都知道,菜鳥知道一些。電腦小技巧收集最新奇招高招,讓你輕松踏上高手之路。


摘 要:本文介紹了利用VB的多種通信手段實現分布式監控系統的多種通信功能,對每一種通信手段給出其原理和應用實例。

關鍵詞: VB 通信 串行口 控件 DDE API

1. 概論

分布式監控系統已在工業領域得到廣泛應用,許多企業對于中小規模的設備,如中小型熱電廠和水電站,出于硬件軟件投資利潤率和性能價格比的考慮,常常是自行開發或參與開發本企業的監控系統。而許多企業在成套引進大型DCS系統后,也常因實際情況而需要自行開發或改進其監控系統。

分布式監控系統以微機為基礎,用數據通信將微機連在一起實現數據共享,從而對工業過程進行集中監視管理和分散控制。因此,分布式監控系統中通信的設計與實現是至關重要的環節。Visual Basic開發語言具有簡潔明了、編程效率高、開發周期短的特點,利用VB中的多種通信手段,可實現分布式監控系統的多種通信功能。

2. 與下位機的通信

分布式監控系統的數據采集站可直接與現場帶有標準RS-232C接口的智能儀表、PLC和單片機等鏈接,并可通過擴展控制卡形成一個數據采集子網,以高速準確地獲取數據。VB的MSCOMM通信控件具有完善的串口數據發送和接受功能,利用它可以屏蔽對硬件的操作,簡易快捷地進行串行通信編程。

本文的實例為上位機與OMRON 200HG系列PLC的1:N鏈接通信。帶有RS-485接口通信板的PLC直接掛在RS-485總線上,上位機通過RS-232C /RS-485轉換器與總線相連,這樣即構成數據采集子網,甚至可以是一個獨立的小型分布式監控系統。其它儀器儀表設備,只要是標準串口都可以類似方式直接或間接與上位機鏈接。
關于VB的MSCOMM控件可參考相關資料。本例通信程序摘要如下:

(1) 初始化程序

Mscomm1.Commport=2 ' 選擇COM2
Mscomm1.Settings="9600,N,8,2" ' 設置通信參數
Mscomm1.Inputlen=0 ' 讀入接收緩沖區全部字符
Mscomm1.OutbufferSize=256 ' 設置發送緩沖區大小
Mscomm1.InbufferSize=512 ' 設置接收緩沖區大小
Mscomm1.PortOpen=True '打開COM2

(2) 發送命令程序

比如讀取節點號03的PLC中IR000到IR009的內容,并放到tag1字符串變量中,此時有:

Dim Command, node, begin, number as string
Dim Answerlen as integer
node="03" '節點號
Command="RR" '命令為讀IR區
begin="0000" '從IR000開始
number=10 '讀取長度
Answerlen=51 '計算接收字符串長度

進行命令發送和接收應答處理:

Dim FCS, I as integer
Dim s ,f as string
s="@"+node+Commad+begin+number
FCS=0
For i=1 to Len(s)
FCS=FCS xor Asc(Mid$(s,i,1) ) '幀校驗碼FCS
Next i
f=Hex$(FCS)
If Len(f)=1 Then f="0"+f
Commfrm.MSComm1.Output=s + f + "*" + CHR$(13) '命令幀發送
Do
Dummy=DoEvents()
Loop Untill Commfrm.MSComm1.InbufferCount >= Answerlen '等待應答幀
Do tag1= Commfrm.MSComm1.Input
Loop Untill Commfrm.MSComm1.InbufferCount=0 '讀完應答幀

上述程序具有相當的通用性,對于其它設備不同的只是各自的數據幀格式,因而只需做相應少量修改即可。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗