999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2015-06-07 05:51:39曾天翔
機電信息 2015年29期
關鍵詞:計算機設備

曾天翔

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

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

曾天翔

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

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

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

1 傳統人機界面數據的讀取方法

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

圖1 傳統讀取方法數據流

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

2 方案總體設計

2.1 方案構想

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

圖2 新讀取方法數據流

2.2 電氣連接

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

圖3 計算機中的串口

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

圖4 常用9針串口外觀

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

圖5 ICS429接口圖

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

2.3 通訊測試

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

圖6 超級終端

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

圖7 串口參數設置

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

圖8 ICS429操作面板圖

2.4 通訊指令

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

2.5 編程實現

2.5.1 數據讀取

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

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

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

Sub SetComm()

MS1.CommPort=1 設置空間端口號為COM1

MS1.Settings="1200,o,7,1" 設置通訊參數波

特率1 200 bps,奇校驗,7位數據位,1位停止位

MS1.PortOpen=True 打開端口

MS1.InBufferCount=0 初始化輸入緩沖區

End Sub

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

Private Sub Timer1_Timer()

MS1.OutBufferCount=0 初始化發送緩沖區

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

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

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

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

End Sub

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

Private Sub MS1_OnComm()

Dim sTemp As String 變量定義

Select Case MS1.CommEvent

Case comEvReceive如果收到數據則開始處理

sTemp=MS1.Input 讀取收到的數據

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) 讀取重量數據

End If

End If

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

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

End If

Case Else

MS1.InBufferCount=0 如果收到錯誤數據,則清除讀取緩沖區

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 如果發生錯誤,則忽略錯誤

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

Start_P=0 初始化轉換數據起始點

Sig="" 初始化符號位

For i=1 To l 利用循環查找整個字符串

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如果找到數字則設置轉換數據起始點

Case""∶

If Start_P>0 Then Stop_P=i 如果讀取到數字后又找到空格,則設置轉換數據結束點

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

Sig=Mid(S,i,1)

End Select

Next i

If Start_P>0 Then

GetNum=CDbl(Sig+Mid(S,Start_P,Stop_PStart_P)) 將轉換數據起始點與結點之間的內容算上符號位轉換成數值類型數據

Else

GetNum=0 如果轉換失敗,返回0

End If

End Function

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

2.5.2 數據顯示

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

讀寫文本文件可以通過以下腳本實現:

Sub SaveToFile()

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

Write#1,W1 寫入重量數據

Close 1 保存并關閉文本文件

End Sub

Sub ReadFromFile()

Dim S as String

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

Input#1,W1 讀取重量數據

Close 1 關閉文本文件

End Sub

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

3 結語

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

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

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

[3]喬平安.Visual Basic6.0程序設計[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—),男,上海人,工程師,從事工業自控系統的設計及應用工作。

猜你喜歡
計算機設備
諧響應分析在設備減振中的應用
計算機操作系統
穿裙子的“計算機”
趣味(數學)(2020年9期)2020-06-09 05:35:08
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機多媒體技術應用初探
科技傳播(2019年22期)2020-01-14 03:06:30
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
如何在設備采購中節省成本
主站蜘蛛池模板: 欧美一级大片在线观看| 亚洲av片在线免费观看| 沈阳少妇高潮在线| 美女无遮挡拍拍拍免费视频| 亚洲欧州色色免费AV| 极品av一区二区| 国产成人精品一区二区三区| 亚洲无码视频喷水| 最新无码专区超级碰碰碰| 无码免费的亚洲视频| 精品人妻系列无码专区久久| 免费av一区二区三区在线| 91久久青青草原精品国产| 波多野结衣爽到高潮漏水大喷| 真人高潮娇喘嗯啊在线观看| 四虎国产永久在线观看| 91丝袜乱伦| 中文天堂在线视频| 日本久久网站| 婷婷六月在线| 中国毛片网| 激情视频综合网| 亚洲综合极品香蕉久久网| vvvv98国产成人综合青青| 国产精品视频a| 欧美天天干| 久久久久久尹人网香蕉| 国模私拍一区二区三区| 国产精品亚洲专区一区| 亚洲视频无码| 日本爱爱精品一区二区| 欧美成人综合在线| 精品视频第一页| 欧美在线综合视频| 亚洲第七页| 国产福利免费观看| 99在线观看精品视频| 伊人久久婷婷五月综合97色| 亚洲V日韩V无码一区二区| 成人年鲁鲁在线观看视频| 无码中文AⅤ在线观看| 国产成人精品一区二区| 国产另类视频| 亚洲欧洲日产国产无码AV| 国产91在线|日本| 欧美伊人色综合久久天天| 色悠久久综合| 国产99久久亚洲综合精品西瓜tv| 午夜激情福利视频| 欧美综合成人| 人妻无码AⅤ中文字| 精品视频91| 91外围女在线观看| 国产亚洲男人的天堂在线观看| 欧美三级日韩三级| 成人国产一区二区三区| 97视频在线精品国自产拍| 久久人妻xunleige无码| 久久伊人操| 亚洲精品视频免费| 亚洲精品va| 亚洲日本中文综合在线| 亚洲综合在线网| 国产农村1级毛片| 国产美女无遮挡免费视频| 日韩在线网址| 亚洲国产精品一区二区第一页免 | 国产伦精品一区二区三区视频优播| 91色老久久精品偷偷蜜臀| 无码在线激情片| 日韩AV无码免费一二三区| 99九九成人免费视频精品| 极品国产在线| 免费看a级毛片| 国产精品毛片一区| 国产成人精品在线| 精品国产免费观看一区| 欧美日韩国产在线播放| 国产在线观看91精品亚瑟| 成人午夜免费视频| 三上悠亚精品二区在线观看| аⅴ资源中文在线天堂|