VB串口通讯与开关量的检测与输出_第1页
VB串口通讯与开关量的检测与输出_第2页
VB串口通讯与开关量的检测与输出_第3页
VB串口通讯与开关量的检测与输出_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VB串口通讯与开关量的检测与输出    VB串口通讯与开关量的检测与输出摘要:本文介绍了以VB和计算机串口在一个小型配料工程中的应用为例。详尽的阐述了串口在配料系统中的应用方法。特别在串口通讯中的开关量的检测和输出要点。极大限度的降低了系统硬件所占工程中的成本。引言:在一般的配料工程中,要一台上位机对配料过程中所产生的一系列数据进行保存和统计,往往需要检测来自现场的一些开关信号。在应用工程中,在一般的上位机与称量仪表的通讯过程中,一般只用了3个引脚(TXD ,RXD ,GND),而还有6个脚(CD,DSR,CTS,RI,DTR,RTS

2、)没有用到,而这些没有用到的引脚就正好可用于检测和输出开关量。下面我将介绍基于VB6.0的平台做的一个小项目。工程概况:该项目是广州科密集团公司用于一种新型耗材的配方研制所用的一个的自动配方管理软件。由于实验场所环境所限制,要求计算机不放在现场(不要求设立专人去操作计算机),只要求操作工人每称量按一下秤台旁边的一个按钮就可以存储当前每物料种类和其相应的重量,使管理系统以这个实验数据为依据,进行整理和加工。最后得出一些综合分析结果,为以后的正式生产提出配方工艺上的要求。因此系统本身就要求负责实时采集仪表的数据;实时采集开关量(按钮和转换开关的状态);实时的提醒操作员当些次配料是否有效果(根据配方

3、来看是否报警也就是开关量的输出);还有存储当前当种物料的配料量,配方的管理,用户日后的数据查询和分析工作等。根据这种要求,我们可以选择一种RAD工具来作为开发平台。硬件配置:两套计量设备(包含两台定点输出仪表)一台计算机(工控机)软件:本实例采用Microsoft公司的Visual Basic 6.0作为开发平台。Visual Basic是一种具有可视图形界面的、快速开发工具,同时它也较流行的开发工具。它可以利用Mscomm控件来完成对串口的控制和开关量的采用以及开关量的输出。先介绍一下这九个引脚所代表的意义:RXD表示接收数据TXD表示发送数据GND表示接地注:

4、(连接计算机和通讯仪表的接地端,开关量的输入的公共端就用仪表的电源)CD表示调制解调器通知通计算机有载波被检测到 DTR表示计算机通知调制解调器可以进行传输DSR表示调制解调器通知计算机准备就序RI表示调制解调器通知计算机有电话打来CTS表示调制解调器通知计算机可送出数据RTS表示计算机要求调制解调器将数据发出根据这些引脚的意义,我们将调制解调器当成其它的外部设备, CD、DSR、RTS、RI可以用于开关量的输入引脚。RTS和DTR可用于开关量的输出。具体方法如下:   在工程中,添加部件Microsoft Comm Con

5、trol 6.0控件。1 控件属性设置介绍: Commport:设置或返回端口号。就是指 通讯的端口号, 用COMM1就设为1, 用COMM2就设为2, 但MSComm控件的最大值是16, 在本项目中同 时用了两个口, 因为需要和两台仪表进行通讯(常用计算机有两个串口, 如果串口不 够用的话, 可以买串口卡)。 Settings:设置并返回波特率、奇偶校验、数据位、停止位 。参数格式为:"BBBB,P,D,S"。例如“9600

6、, E, 7, 2”;在RS232中双方必须完全一样, 彼此才能顺利的通信。否则的话将不 能正确的接收到来自对方的信号。 Handshaking:设置并返回硬件握手协议;(设为无) InBufferSize:设置并返回接收缓冲区的字节数; OutBufferCount:返回在传输缓冲区中等待的字符数。也可以用它来清除传输缓冲区; DTREnable:确定在通讯时是否使 Data Terminal Ready (DTR) 线有效(设为有效)。 RT

7、SEnable:确定在通讯时是否使 Request To Send (RTS) 线有效(设为有效)。 CommEvent:返回最近的通讯事件或错误。当发生错误或事件会产生OnComm事件。 InputMode:设置或返回Input 属性取回的数据的类型。它有两个参数, 0 表示以文字形式取回, 1表示以二进制形式取回。(设为0) Rthreshold:设置并返回的要接收的字符数。 Sthreshold:设置并返回传输缓冲区中允许的最小字符数 InputLe

8、n:设置并返回 Input 属性从接收缓冲区读取的字符数。2 采集仪表当前数据提醒:要和仪表通讯,在参数(Comports、Settings)设置上必须相互吻合。先要打开对象MSComm1.PortOpen = TrueMSComm2.PortOpen = TruePrivate Sub MSComm1_OnComm () If MSComm1.CommEvent = comEvReceive Then  / 收到R

9、threshold # of      TxtReceive.Text = MSComm1.Input     /将采集到的信息赋予到文本框 found1 = InStr(TxtReceive.Text, "+")     /以下数行是对所采集到的数据进行处理加工,最终得到我们想要的格式的数据。   

10、0; If found1 > 0 Then     For i = 1 To leng Step 1            Strin1 = Mid(TxtReceive.Text, found1 + 1, 3)  

11、0;         Strin2 = Mid(TxtReceive.Text, found1 + 4, 3)            Format(Val(strin2), "000")        Next 

12、;idisplay1.Caption = Format(Val(strin1), "#0") + "." + Format(Val(strin2), "00") End IfEnd If/本项目中,也就是需要两个计量仪表的的当前数据)3 开关状态的采集 /检测四个引脚的工作状态(就是判断现场的开关状态和按钮状态)在具体的应用过程中,要添加一个TIMER控件用于循环的检测这几个输入引脚的电位的高低。 

13、;Private Sub Timer1_Timer() If MSComm1.CDHolding Then msgbox "CD is switch in! " /检测CD脚的电位          /消息处理过程 If MSComm1.CTSHolding Then msgbox "CTS

14、0;is switch in! "/检测CTS脚的电位          /消息处理过程  If MSComm1.DSRHolding Then msgbox "DSR is switch in! "/检测CTS脚的电位          

15、/消息处理过程  If MSComm1.CommEvent=comEvRing Then msgbox "RI is switch in!"/检测CTS脚的电位            /消息处理过程End Sub4 两个开关量的输出       /就是控制两个引脚的电位,5 驱动的微型继电器工作如果操作员在具体的配料过程中,出现错误(超出了配方所要求物料品种的误差范围),软件会将DTR或者是RTS引脚上的电位抬高,驱动微型继电器来控制现场的报警装置。用报警来提示操作人员,本次配料不符合要求,需要添加或是减少份量。这样可以实时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论