星空无限MV国产剧梁佳,久久精品国产亚洲Av麻豆,変态奴隷人形ひとみ调教,成人妇女免费播放久久久,女人18片毛片60分钟

 官方博客  中文版 | ENGLISH

客服熱線:0517-86930968;
               13951262528

當(dāng)前位置:首頁 > 技術(shù)文章 
基于VB6.0的工控機與智能流量積算儀的串口通信
更新時間:2019-7-9 9:22:11 瀏覽:1518 關(guān)閉窗口 打印此頁
 [導(dǎo)讀] 利用VB6.0的MSComm 控件和MODBUS協(xié)議,實現(xiàn)了工控機與帶RS-232輸出接口的智能數(shù)字流量積算儀之間的串口通信功能,使其能夠?qū)崟r的采集瞬時流量,并成功的應(yīng)用于底吹氬流量閉環(huán)控制系統(tǒng)。這種通信方式靈活方便,結(jié)構(gòu)簡單,可靠性高,完全達到了預(yù)期的要求,具有較好的實際價值和使用性。
 
  1、引言
 
  本文主要從應(yīng)用的角度利用VB6.0的MSComm 控件和MODBUS協(xié)議,成功實現(xiàn)了某流量控制系統(tǒng)中工控機與帶RS-232輸出接口的智能數(shù)字流量積算儀之間的串口通信功能。D08-8CZM數(shù)字顯示表應(yīng)用于底吹氬流量控制系統(tǒng)中流量的顯示,工控機通過讀取其顯示值作為反饋信號,從而實現(xiàn)流量的閉環(huán)控制。
 
  2、D08-8CZM型智能數(shù)字流量顯示積算儀與串口通信
 
  2.1 硬件構(gòu)成
 
  D07-12A型質(zhì)量流量傳感器采用毛細管傳熱溫差量熱法原理測量氣體的質(zhì)量流量(無需溫度壓力補償)。將傳感器加熱電橋測得的流量信號送入放大器放大,放大后的流量檢測電壓與設(shè)定電壓進行比較,再將差值信號放大后去控制調(diào)節(jié)閥門,閉環(huán)控制流過通道的流量使之與設(shè)定的流量相等。當(dāng)本流量積算儀與MFC(質(zhì)量流量計)配套使用時,只需用電纜通過D型插頭將流量積算儀與MFC連接起來即可。然后采用一臺上位機與一臺D08-8CZM流量積算儀進行通信的方式,使用RS232通訊方式:將2引腳(TXD)與上位機串口的RXD(工控機串口的2引腳)相連;3引腳(RXD)與上位機串口的TXD(工控機串口的3引腳)相連;5引腳(SG)與上位機串口的SG(工控機串口的5引腳)相連。
 
  2.2 通訊原理
 
  工控機作為上位機與從機(數(shù)字流量積算儀)采用主從應(yīng)答方式進行通信,一個網(wǎng)絡(luò)中只有一個主機(上位機,節(jié)點地址為0),主機通過站號(數(shù)字流量積算儀的唯一地址)區(qū)分不同的從機。上位機始終處于主動狀態(tài),根據(jù)程序運行的需要向(通信端口)數(shù)字流量積算儀發(fā)出讀寫等命令;從機處于被動狀態(tài),接收并響應(yīng)上位機的命令。需要讀采樣數(shù)據(jù)時,上位機通過通信口向指定地址的數(shù)字流量積算儀發(fā)出讀數(shù)據(jù)命令,數(shù)字流量積算儀響應(yīng)并將數(shù)據(jù)準(zhǔn)備好,按統(tǒng)一的數(shù)據(jù)通信幀格式編成響應(yīng)字符串,主機再次讀通信口接收緩沖區(qū)即可讀到所需的數(shù)據(jù)。向數(shù)字流量積算儀寫數(shù)據(jù)時,上位機向指定數(shù)字流量積算儀發(fā)出寫命令及參數(shù)數(shù)據(jù),積算儀即可接受并返回響應(yīng)情況。上位機通過RS-232通信進行運行狀態(tài)監(jiān)控、參數(shù)設(shè)置、診斷等遠程測控功能,實現(xiàn)這些功能采用了不同的通信格式。其中MODBUS協(xié)議通訊原理圖如下:
 
 
 
  圖1 MODBUS協(xié)議的詢問應(yīng)答環(huán)路
 
  2.3 通訊協(xié)議
 
  本通信協(xié)議應(yīng)用于D08-8CZM型流量積算儀與上位機的通信,數(shù)據(jù)以16進制格式傳輸,波特率:9600;數(shù)據(jù)位8位;停止位:1位;效驗位:無。本協(xié)議與MODBUS協(xié)議兼容,可以通過上位機顯示流量積算儀的瞬時流量、累積流量、滿量程、單位和閥狀態(tài)(包括閥控、關(guān)閉和清洗),而且可以通過上位機設(shè)定流量積算儀的瞬時流量、使流量積算儀的累積流量清零。因此在本協(xié)議用到了MODBUS協(xié)議的命令$03(Reading 1~9words)、命令$05(Force single coil)和命令$06(Writing 1 word)。
 
  使用命令$03可以通過上位機讀流量積算儀的當(dāng)前狀態(tài),其通信協(xié)議的具體格式為:
 
  上位機 積算儀:01 03 00 02 00 08 E5 CC
 
  各字節(jié)含義:
 
  01: MODBUS地址;
 
  03: 功能碼03(Reading 1~9words);
 
  00 02:起始地址,00為高8位,02為低8位;
 
  00 08:讀取的字?jǐn)?shù);
 
  E5 CC:CRC效驗值,E5為CRC的低8位,CC為高8位。
 
  上位機 積算儀:01 03 10 (1)~(16) CRCL CRCH
 
  各字節(jié)含義:
 
  01:MODBUS地址;
 
  03:MODBUS命令號;
 
  10:上傳的字節(jié)數(shù);
 
  (1)~(4):瞬時流量值;“00~09”表示數(shù)字“0~9”,“10~19”表示“0.~9.”;
 
  (5)~(10):流量累積值;同上;
 
  (11)~(14):滿量程;同上;
 
  (15):流量單位;00表示SCCM和SCC,01表示SCCM和SL,11表示SLM和SL;
 
  (16):閥狀態(tài);00表示關(guān)閉,80表示閥控,F(xiàn)F表示清洗;
 
  CRCL:CRC的低八位;CRCH:CRC的高8位。
 
  3、用VB實現(xiàn)串行通訊
 
  3.1 MSComm控件
 
  VB的通信控件MSComm能夠提供串行通信的全部功能,程序編寫、調(diào)試簡單方便,開發(fā)速度快,該控件封裝了通信過程中的底層操作程序,用戶只需設(shè)置和監(jiān)控控件的屬性和事件,就可以方便地實現(xiàn)異步串行通信。
 
  采用MSComm控件接收數(shù)據(jù),按照接收方式分兩種形式:事件驅(qū)動方式,定時查詢方式。本例為適應(yīng)流量的實時控制采用定時驅(qū)動方式,若定時器計時到,通過串行通信口向指定地址流量積算儀發(fā)出讀寫等操作命令,等待時間到則檢查InBufferCount屬性值來判斷輸入緩沖區(qū)中是否接受到了相應(yīng)數(shù)目的字符,從而進行讀取、判斷數(shù)據(jù)合法性和數(shù)據(jù)存儲、處理等操作。
 
  3.2 通信功能的編程實現(xiàn)
 
  程序框圖如下:
 
 
 
  圖2 串口通信程序框圖
 
串口初始化:MSComm1.CommPort = 1
 
  MSComm1.SThreshold = 1
 
  MSComm1.Settings = 9600,N,8,1
 
  MSComm1.InBufferSize = 1024
 
  MSComm1.OutBufferSize = 1024
 
  MSComm1.InputMode = comInputModeBinary
 
  打開串口并定時發(fā)送數(shù)據(jù)命令:Private Sub Timer1_Timer()
 
  Dim bytearray(0 To 7) As Byte
 
  bytearray(0) = &H1
 
  bytearray(1) = &H3
 
  bytearray(2) = &H0
 
  bytearray(3) = &H2
 
  bytearray(4) = &H0
 
  bytearray(5) = &H8
 
  bytearray(6) = &HE5
 
  bytearray(7) = &HCC
 
  MSComm1.InputLen = 21
 
  MSComm1.InBufferCount = 0
 
  MSComm1.OutBufferCount = 0
 
  MSComm1.RThreshold = 1
 
  MSComm1.PortOpen = True
 
  If MSComm1.PortOpen = True Then
 
  MSComm1.Output = bytearray
 
  End If
 
  End Sub
 
  接受數(shù)據(jù):Private Sub MSComm1_OnComm()
 
  Do
 
  DoEvents
 
  Loop Until MSComm1.InBufferCount = 21
 
  Dim dataread() As Byte
 
  Dim tempdata As Variant
 
  Dim str As String
 
  If MSComm1.CommEvent = comEvReceive Then
 
  tempdata = MSComm1.Input
 
  ReDim dataread(UBound(tempdata)) As Byte
 
  For i = 0 To UBound(tempdata)
 
  dataread(i) = tempdata(i)
 
  End Sub
 
  同理利用以上程序框圖和通信協(xié)議可以完成下圖的所有功能:
 
 
 
  圖3 基于VB的D08-8CZM型流量積算儀
 
  4、結(jié)束語
 
  利用VB6.0的MSComm 控件和MODBUS協(xié)議,實現(xiàn)了工控機與帶RS-232輸出接口的智能數(shù)字流量積算儀之間的串口通信功能,使其能夠?qū)崟r的采集瞬時流量,并成功的應(yīng)用于底吹氬流量閉環(huán)控制系統(tǒng)。這種通信方式靈活方便,結(jié)構(gòu)簡單,可靠性高,完全達到了預(yù)期的要求,具有較好的實際價值和使用性。
上一篇文章: 楔形流量計在測量...
下一篇文章: 如何正確選用活塞...
在線客服系統(tǒng)