最多人玩的棋牌游戏

称重仪表与计算机数据隔离的硬件与软件的实现

类别:最多人玩的棋牌游戏资讯 时间:2018-03-20 最多人玩的棋牌游戏:69 次

许多衡器应用场所都需要称重仪表将数据上传给计算机,本文利用 光耦技术在二者串行口之间实现了电气隔离,简单实用,并且编制了相应的软件。仪表厂家也可将此作为仪表可选附件提供给用户。
一、概述
当前的称重仪表基本上都配置了与计算机通讯的RS232接口,用于将@重 数据传输给计算机,而且一般都提供了单向(从仪表到计算机)连续传输邊据 的功能,但是在实际使用中,由于在仪表与计算机中间并无隔离措施,所以计 算机的接入给整个称重系统带来了新的故障点,本人在实践中自制了一个简易 的单向隔离块,利用计算机串口内部的信号线做隔离电源,实现了仪表数据到 计算机的隔离。

在实现隔离之前,我们首先来认识一下RS232端口的各管脚定义和其他一 些知识。9芯的RS232接口各管脚定义如下:
pin2: RXD,数据接收端 pin3: TXD,数据发送端 pin4: DTR,数据终端就绪 pin5: Ground,信号地 pin6: DSR,数据传输设备就绪 pin7: RTS,请求发送 pin8: CTS,清除发送
对于25芯的RS232 口,以上管脚的定义为:TXD——pin2 RXD——pin3 RTS pin4 CTS pin5 DSR pin6 Ground pin7 DTR pin20
其中,RTS伯号与DTR信号是由数据终端设备(Data Terminal Equipment)发 给数据通讯设备(Data Communication Equipment)的信号,在计算机作终端设备 与称重仪表通讯过程中,这两个信号的电平是由计算机来控制的,它们是实现隔离必不可少的两个信号。RS232标准中数据信号和控制信号逻辑电平的定义如 下表:

二、硬件部分
有了以上的知识,我们就可以用以下电路来实现仪表到计算机的数据隔离 (单向):
上图中虚线框内为一光电隔离开关,图中的两个二极管和电容为光隔的输 出端提供正负电源,通过计算机将RS232 口的RTS端置成高电平,DTR端置成 低电平,根据表一中RS232控制逻辑电平的定义,RTS与DTR端可分别提供正 电压(+5V〜+15V)和负电压(-5V~ -15V),再经二极管、电容整流后,为 光隔中的NPN管提供正负电源,当仪表的信号发送端输出逻辑1时,根据表一 中RS232数据逻辑电平定义,其电压为-5V〜-15V,这时光隔导通,NPN管饱 和导通,RXD端电压为负电压,对应电平为逻辑I。同样道理,在仪表端输出逻 辑0时,光隔截止,输出至RXD端的电压为正电压,对应电平为逻辑0。这样 就利用光耦实现了仪表与计算机的彻底隔离。该单向隔离器的成本很低,仪表 厂家也可将此作为仪表的可选附件提供给用户。
三、软件部分
软件实现主要是在通讯中保证RTS端和DTR端的电平不改变,下面一段试 —148 — 验程序可供读者参考。此程序在VB5:0及VB6.0下通过。试验的仪表为3190-A2,通讯方式为连续发送方式2,波特率可根据硬件电路中光隔的速度来 调整。
首先在新建一个标准exe程序,在工程菜单的部件项上单击,在弹出的部件 选择器中找到Microsoft Comm Control 6.0项,在其左边的复选框中选中此项,按 确定回到最多人玩的棋牌游戏桌面,此时工具栏中多了一^个Mscomm的控件,在forml上放置一 个MScomm控件命名为comml,一个定时器Timerl,其定时间隔Timerl. interval = 200,再放置一个label控件作显7K,命名为viewwindow,一个退出按钮commandl, 其caption属性设为“退出”。其中子程序readdata从串口接收数据并从中此数据 中滤出称重显示数值。仪表传送数据格式见附表。
Dim leave As Boolean ’ 退出标志
Dim instring As String* 16 ’ 接收字符串
Private Function readdate () As Long
Dim i, j, k As Integer
Dim one,number (1 To 7) As String
Dim msg $
begin:
Do
If leave = True Then Exit Function End If
Loop Until comml. InBufferCount > =16 ’ 循环直到接收到 16 个字符 instring = comml. Input
 
 
ne:
one = Mid $ (instring, i,1)
If one = " = "Then For k = 1 To 7
number (k) = chr $ (Asc (Mid $ (instring, i + k, 1)))
Next k
For j = 1 To 7
If (Asc (number (j)) >57 Or Asc (number (j))) <48 And number (j) < >"- "And number (j) < > " = "Then GoTo begin
End If
next j Else
i = i+l If i > 9 Then GoTo begin End If GoTo ne End If
msg $ = number (7)
For i = 6 To 1 Step - I msg $ = msg & number (i)
Next i
readdata = Val ( nir>g $ )
End Function End Sub
Private Sub Commandl- Click () leave = True End Sub Private Sub Form-Load () comml. CommPort = 1 comml. Settings = 〃9600,n, comml. InputLen = 16 comml • PortOpen = True comml. RTSEnable = True comml • DTREnable = False leave = False End Sub
Private Sub Timerl-Timer ()
If leave < > True Then V! = readdata () viewwindow.Caption = Format $ (v!,〃# # # # #0")
Else
comml • PortOpen = False Unload Me
End If End Sub

仪表数据传送格式如下: 所传送的数据为仪表显示的当前称量(毛重或净重),每帧数据由9组数据 组成(包括小数点),其中有一组为分隔符

中国领先的称重软件技术提供商

The Leading Provider of Geomatic Solutions in China

展开收起网站地图
网投棋牌网址捕鱼王游戏在线网投香港刘伯温平特一码澳门网上买球网址开户香港挂牌最多人玩的棋牌游戏最快更新网站手机版面对面棋牌游戏大厅下载一尾中平特公式规律澳门网上娱乐在线游戏网站