亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺析使用COM口讀取梅特勒托利多天平稱重結(jié)果的方法

        2015-06-07 05:51:39曾天翔
        機電信息 2015年29期
        關(guān)鍵詞:人機界面控件串口

        曾天翔

        (上海朗脈潔凈技術(shù)股份有限公司,上海201100)

        淺析使用COM口讀取梅特勒托利多天平稱重結(jié)果的方法

        曾天翔

        (上海朗脈潔凈技術(shù)股份有限公司,上海201100)

        針對當前人機界面軟件(HMI)需要精確顯示天平稱重結(jié)果的需求,提出了一種利用電腦串行口(COM口)與梅特勒托利多天平通訊,從而精確讀取稱重結(jié)果的方法。分析了傳統(tǒng)I/O通道讀取稱重結(jié)果的缺點,介紹了使用COM口讀取梅特勒托利多天平稱重結(jié)果的具體實現(xiàn)步驟。通過實踐證明,這種方法可以在不需要模擬量輸入模塊的情況下精確地讀取相應天平的稱重結(jié)果,在自控領(lǐng)域有著廣闊的應用前景和推廣價值。

        人機界面;梅特勒托利多天平;COM口通訊;MT-SICS;重量讀取

        1 傳統(tǒng)人機界面數(shù)據(jù)的讀取方法

        傳統(tǒng)的人機界面(HMI)軟件并不能直接讀取稱重設(shè)備的數(shù)據(jù)。一般來說,傳統(tǒng)的做法是由PLC模擬量輸入模塊連接稱重設(shè)備,稱重設(shè)備先將其稱重數(shù)據(jù)通過其內(nèi)置的數(shù)模(D/A)轉(zhuǎn)換模塊轉(zhuǎn)換為PLC模擬量模塊可以識別的4~20 mA信號,并通過其輸出通道輸出到PLC的模擬量輸入通道上。PLC的模擬量輸入通道再將其收到的4~20 mA信號通過其內(nèi)置的模數(shù)(A/D)轉(zhuǎn)換模塊轉(zhuǎn)換為具體的稱重數(shù)值發(fā)送給人機界面(HMI)軟件,最后由人機界面(HMI)軟件顯示給最終用戶。傳統(tǒng)讀取方法數(shù)據(jù)流如圖1所示。

        圖1 傳統(tǒng)讀取方法數(shù)據(jù)流

        由于無論是模數(shù)(A/D)轉(zhuǎn)換,還是數(shù)模(D/A)轉(zhuǎn)換過程,都將會產(chǎn)生一定的量化誤差,所以最終用戶得到的讀數(shù)并不一定會與稱重設(shè)備上顯示的讀數(shù)一致。以12位精度的轉(zhuǎn)換模塊為例,它的量化精度為總量程的1212-1即14 095,如果稱一個質(zhì)量為100 kg的物體,理論上會產(chǎn)生24 g左右的誤差。而經(jīng)過D/A轉(zhuǎn)換后再經(jīng)歷一次A/D轉(zhuǎn)換,以上的誤差將會被再次擴大。如果4~20 mA電信號在傳輸過程中再受到干擾等因素的影響,實際產(chǎn)生的誤差將會超過我們的允許范圍。產(chǎn)生的現(xiàn)象可能是在實際稱重設(shè)備上顯示為“100.000 kg”,而最終用戶在HMI屏幕上讀到的是“99.855 kg”。

        2 方案總體設(shè)計

        2.1 方案構(gòu)想

        如果能找到一種方法,將稱重設(shè)備的數(shù)據(jù)通過通訊的方式,而不是轉(zhuǎn)換為電信號的形式,直接讀取到人機界面(HMI)上顯示的數(shù)據(jù)的話,那么就能夠解決以上出現(xiàn)的問題。新讀取方法數(shù)據(jù)流如圖2所示。

        圖2 新讀取方法數(shù)據(jù)流

        2.2 電氣連接

        通常的人機界面(HMI)軟件都是安裝在計算機內(nèi)的。而對于計算機而言,除了以太網(wǎng)及USB接口外,還有一種常用的數(shù)據(jù)接口叫作串行通訊端口(COM口)。對于一個計算機而言,可以有多個COM口。我們可以在設(shè)備管理器中查看當前計算機的串行通訊端口數(shù)量(圖3)。

        圖3 計算機中的串口

        計算機上的COM口通常是9針,其外觀如圖4所示,最大速率115 200 bps。通常用于連接鼠標(串口)及通訊設(shè)備,如連接外置式MODEM進行數(shù)據(jù)通訊或一些工廠的CNC機接口等。COM口的接口標準規(guī)范和總線標準規(guī)范是RS-232,有時候也叫做RS-232口。

        圖4 常用9針串口外觀

        對于稱重設(shè)備來說,以梅特勒托利多ICS429系列產(chǎn)品為例,其背面接口如圖5所示[1]。

        圖5 ICS429接口圖

        其中5為9針COM接口。雖然形狀與電腦上的COM口不一樣,但是管腳定義是一致的。為了能夠與電腦連接,需要選購專門的轉(zhuǎn)接線將其與電腦的COM口相連。

        2.3 通訊測試

        完成了電氣連接后,接下來需要測試電腦與稱重設(shè)備之間的通訊是否建立。我們可以利用Windows的通訊工具“超級終端”(圖6)來完成這一步操作。

        圖6 超級終端

        打開超級終端,根據(jù)稱重設(shè)備的出廠設(shè)置將計算機串行通訊端口的參數(shù)設(shè)置好,如圖7所示。梅特勒托利多ICS429系列產(chǎn)品在出廠設(shè)置中,將其通訊參數(shù)設(shè)置成了波特率:9 600、校驗:無校驗、數(shù)據(jù)位:8位、停止位:1位。

        圖7 串口參數(shù)設(shè)置

        完成以上設(shè)置后,按下稱重設(shè)備面板(圖8)上的“打印”按鈕,在超級終端的窗口中,將出現(xiàn)如下字符串“SS 1.203 kg”,其中“1.203 kg”即為稱重面板上顯示的重量[1]。

        圖8 ICS429操作面板圖

        2.4 通訊指令

        在實際使用過程中,我們不可能每次都通過按“打印”鍵來讀取數(shù)據(jù)。如何能讓稱重設(shè)備周期性地將其稱重結(jié)果發(fā)送給計算機呢?接下來將要使用的是通訊指令。梅特勒托利多針對其產(chǎn)品有著一套專用的通訊指令MT-SICS(Standard Interface Command Set),以便實現(xiàn)各種各樣的功能。這套指令被分為4個級別level 0~level 3,所包含的命令由簡單到復雜,像傳送稱重結(jié)果這樣的簡單指令被包含在了level 0中。通過相關(guān)手冊,查找到指令“SI”可以命令稱重設(shè)備將當前重量立即發(fā)送給計算機[2]。

        2.5 編程實現(xiàn)

        2.5.1 數(shù)據(jù)讀取

        通過計算機的串行通訊端口(COM)向稱重設(shè)備發(fā)送通信指令,并分析稱重設(shè)備發(fā)回的字符串,將其中的重量數(shù)據(jù)提取出來的工作,可以通過編程實現(xiàn)。其中對于計算機串行通訊端口的驅(qū)動,我們可以通過ActiveX控件實現(xiàn)。ActiveX控件是一種可重用的軟件組件,通過使用ActiveX控件,可以很快地在網(wǎng)址、臺式應用程序以及開發(fā)工具中加入特殊的功能。如今已有1 000多個商用的ActiveX控件,開發(fā)控件可以使用各種編程語言,主要的編輯語言是C++、VB、VC、C#、Java、delphi、PowerBuilder、VBScript。ActiveX控件一旦被開發(fā)出來,設(shè)計和開發(fā)人員就可以把它當作預裝配組件,用于開發(fā)客戶程序。以此種方式使用ActiveX控件,使用者無需知道這些組件是如何開發(fā)的,在很多情況下,甚至不需要自己編程,就可以完成網(wǎng)頁或應用程序的設(shè)計[3]。

        我們以VB為例,在設(shè)計窗體上加入“MS Comm”控件,MSComm作為一個串行通訊控件為程序員串口通訊編程節(jié)省了很多時間。

        第一步需要編寫VB腳本,打開相應端口,打開串口前需要按照稱重設(shè)備的通訊參數(shù)設(shè)置計算機串口的參數(shù)。下面以梅特勒托利多ICS429系列產(chǎn)品的出廠設(shè)置為例,編寫了打開串口的VB腳本。

        Sub SetComm()

        MS1.CommPort=1 設(shè)置空間端口號為COM1

        MS1.Settings="1200,o,7,1" 設(shè)置通訊參數(shù)波

        特率1 200 bps,奇校驗,7位數(shù)據(jù)位,1位停止位

        MS1.PortOpen=True 打開端口

        MS1.InBufferCount=0 初始化輸入緩沖區(qū)

        End Sub

        要想周期性地讀取稱重設(shè)備的稱重結(jié)果,需要周期性地向稱重設(shè)備發(fā)送指令“SI”。先在設(shè)計窗體上添加一個時鐘控件Timer1,并將其時間間隔設(shè)置成1 s。在其Timer事件中編寫如下腳本:

        Private Sub Timer1_Timer()

        MS1.OutBufferCount=0 初始化發(fā)送緩沖區(qū)

        MS1.Output=Chr(83) 發(fā)送“S”

        MS1.Output=Chr(73) 發(fā)送“I”

        MS1.Output=Chr(13) 發(fā)送回車

        MS1.Output=Chr(10) 發(fā)送換行符

        End Sub

        其中Chr(83)、Chr(73)分別對應“S”、“I”,Chr(13)、Chr(10)表示回車換行符,因為稱重設(shè)備只有檢測到回車換行符才會認為當前指令發(fā)送完畢,從而開始執(zhí)行相應命令。當稱重設(shè)備收到“SI”指令后,將返回字符串“SS 1.203 kg”,其中“1.203 kg”即為稱重面板上顯示的重量。由于“MSComm”控件是事件驅(qū)動型的,當計算機相應串行通訊端口接收到數(shù)據(jù)時會觸發(fā)其“OnComm”事件。我們需要在其“OnComm”事件中編寫相關(guān)腳本才能將稱重設(shè)備發(fā)送過來的重量數(shù)據(jù)提取出來。

        Private Sub MS1_OnComm()

        Dim sTemp As String 變量定義

        Select Case MS1.CommEvent

        Case comEvReceive如果收到數(shù)據(jù)則開始處理

        sTemp=MS1.Input 讀取收到的數(shù)據(jù)

        sReceive1=sReceive1&sTemp 將收到的字符與上次收到的字符拼接起來

        If sTemp=Chr(13)Then 如果收到回車符則表示讀取完畢

        If Len(sReceive1)>6 Then 判斷收到的信息完整性,長度必須大于6

        If InStr(1,sReceive1,"S",vbTextCompare)

        <>0 Then 必須包含字符“S”

        W1=GetNum(sReceive1) 讀取重量數(shù)據(jù)

        End If

        End If

        sReceive1="" 清空讀取到的字符,準備下一次讀取

        MS1.InBufferCount=0 清空讀取緩沖區(qū),準備下一次讀取

        End If

        Case Else

        MS1.InBufferCount=0 如果收到錯誤數(shù)據(jù),則清除讀取緩沖區(qū)

        End Select

        End Sub

        Function GetNum(ByVal S As String)As Double

        Dim l As Integer,i As Integer,Start_P As Integer,

        Stop_P As Integer,Sig As String 變量定義

        On Error Resume Next 如果發(fā)生錯誤,則忽略錯誤

        l=Len(S) 獲得轉(zhuǎn)換字符的長度

        Start_P=0 初始化轉(zhuǎn)換數(shù)據(jù)起始點

        Sig="" 初始化符號位

        For i=1 To l 利用循環(huán)查找整個字符串

        Select Case Mid(S,i,1)

        Case"0","1","2","3","4","5","6","7","8","9"∶

        If Start_P=0 Then Start_P=i如果找到數(shù)字則設(shè)置轉(zhuǎn)換數(shù)據(jù)起始點

        Case""∶

        If Start_P>0 Then Stop_P=i 如果讀取到數(shù)字后又找到空格,則設(shè)置轉(zhuǎn)換數(shù)據(jù)結(jié)束點

        Case"+","-"∶ 如果讀取到符號,則設(shè)置符號位

        Sig=Mid(S,i,1)

        End Select

        Next i

        If Start_P>0 Then

        GetNum=CDbl(Sig+Mid(S,Start_P,Stop_PStart_P)) 將轉(zhuǎn)換數(shù)據(jù)起始點與結(jié)點之間的內(nèi)容算上符號位轉(zhuǎn)換成數(shù)值類型數(shù)據(jù)

        Else

        GetNum=0 如果轉(zhuǎn)換失敗,返回0

        End If

        End Function

        其中函數(shù)GetNum用來分析收到的字符串,將稱重設(shè)備發(fā)送過來的重量數(shù)據(jù)提取出來。至此,我們實現(xiàn)了周期性命令稱重設(shè)備將其所獲得的稱重數(shù)據(jù)發(fā)送給計算機的功能,接下來只需要將所獲得的稱重數(shù)據(jù)顯示到人機界面(HMI)上就可以了。

        2.5.2 數(shù)據(jù)顯示

        將稱重數(shù)據(jù)顯示到人機界面(HMI)需要建立與人機界面(HMI)之間的數(shù)據(jù)接口。而最簡單的數(shù)據(jù)接口可以利用數(shù)據(jù)交換文件來實現(xiàn)。例如,將上面讀取到的稱重數(shù)據(jù)周期性地寫入一個文本文件中;而在人機界面(HMI)軟件中,編寫相應腳本,周期性地將文本文件的內(nèi)容讀取到變量中并顯示到屏幕上即可。其中數(shù)據(jù)交換文件可以根據(jù)實際要求選用文本文件、Excel文件或數(shù)據(jù)庫文件來實現(xiàn),其中以文本文件的讀寫最為方便,適用于數(shù)據(jù)量較小,且對數(shù)據(jù)實時性要求不高的場合。

        讀寫文本文件可以通過以下腳本實現(xiàn):

        Sub SaveToFile()

        Open"D∶DATAWEI.TXT"For Output As#1打開文本文件

        Write#1,W1 寫入重量數(shù)據(jù)

        Close 1 保存并關(guān)閉文本文件

        End Sub

        Sub ReadFromFile()

        Dim S as String

        Open"D∶DATAWEI.TXT"For Input As#1打開文本文件

        Input#1,W1 讀取重量數(shù)據(jù)

        Close 1 關(guān)閉文本文件

        End Sub

        由于RS-232通訊接口為點對點通訊接口,即一臺稱重設(shè)備需要占用1個串行通訊端口,如果有多臺稱重設(shè)備則需要占用多個串行通訊端口。當計算機上的串行通訊端口數(shù)量不足的時候,我們可以使用USB轉(zhuǎn)COM的硬件來擴展串行通訊端口。

        3 結(jié)語

        實踐證明,以通訊的方法獲得稱重設(shè)備的稱重數(shù)據(jù),不僅避免了量化誤差的影響,使得人機界面(HMI)軟件上顯示的讀數(shù)與稱重設(shè)備上顯示的完全一致,滿足了計算機系統(tǒng)驗證方面的要求,而且不需要任何的PLC模擬量輸入模塊,減少了成本,是一種值得推廣的好方法。

        [1]METTLER TOLEDO.ICS429用戶手冊[Z].2001:25-47.

        [2]METTLER TOLEDO.ICS4X9 SICS通訊手冊[Z].2000:43-78.

        [3]喬平安.Visual Basic6.0程序設(shè)計[M].人民郵電出版社,2013:232-257.

        Get the Weighing Result of METTLER TOLEDO Scale from COM Port

        Zeng Tianxiang
        (Shanghai Macroprocess Lustration Technology Co.,Ltd.,Shanghai 201100)

        In order to meet the requirements of high display accuracy for human-computer interface(HMI)software,a new method that can get the weighing results accurately by communicate with the METTLER TOLEDO devices using PC COM ports is introduced accordingly.This paper analyzes the shortcoming of traditional communicate method using I/O channels,introduces the concrete implementation steps of the new method.The practice proved that by using the new method,we can read the weighing results accurately without any analog input module and shows that it has broad prospect of application and popularization in automation field.

        HMI;METTLER TOLEDO scale;COM communication;MT-SICS;get weighing result

        2015-09-06

        曾天翔(1979—),男,上海人,工程師,從事工業(yè)自控系統(tǒng)的設(shè)計及應用工作。

        猜你喜歡
        人機界面控件串口
        淺談AB PLC串口跟RFID傳感器的通訊應用
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        CBTC系統(tǒng)車載人機界面的設(shè)計與實現(xiàn)
        基于PLC與人機界面的經(jīng)編機電子橫移控制系統(tǒng)研究
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
        地礦測繪(2015年3期)2015-12-22 06:27:26
        CTCS-3級列控車載人機界面的系統(tǒng)設(shè)計與實現(xiàn)
        基于并行控制的FPGA多串口拓展實現(xiàn)
        達人機界面DOP-B10VS511
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        日本va中文字幕亚洲久伊人| 四虎精品成人免费观看| 国产亚洲欧美另类久久久| 亚洲国产精品一区二区| 人妻少妇精品中文字幕专区| 成人网站免费看黄a站视频 | AV无码中文字幕不卡一二三区| 性感人妻一区二区三区| 在线国产激情视频观看| 久久久久久亚洲av成人无码国产| 日韩精品无码久久一区二区三| 日日噜噜噜夜夜爽爽狠狠视频 | 亚洲最新无码中文字幕久久| 东京无码熟妇人妻av在线网址| 国产在线无码免费视频2021| 亚洲国产av午夜福利精品一区| 人人妻人人澡人人爽欧美一区| 中国国语毛片免费观看视频| 免费高清日本中文| 亚洲国产日韩综合天堂| 精品日韩亚洲av无码| 国产真人无码作爱视频免费| 青春草在线视频精品| av天堂网手机在线观看| 成人做爰69片免费看网站野花 | 一区二区三区国产在线网站视频 | 亚洲色图在线免费观看视频| 国产精品免费精品自在线观看| 伊香蕉大综综综合久久| 久久中文字幕av一区二区不卡| 亚洲夜夜性无码| 超薄肉色丝袜一区二区| 秀人网嫩模李梓熙大尺度| 成人国产精品一区二区八戒网| 2021久久精品国产99国产精品| 亚洲成av人在线观看无堂无码| 91乱码亚洲精品中文字幕| 蜜臀性色av免费| 北条麻妃在线视频观看| 亚洲精品在线观看自拍| 国产精品免费无遮挡无码永久视频|