原创
VB串口通讯与开关量的检测与输出
2008-6-20 10:05
3564
8
9
分类:
工程师职场
VB串口通讯与开关量的检测与输出
摘要:本文介绍了以VB和计算机串口在一个小型配料工程中的应用为例。详尽的阐述了串口在配料系统中的应用方法。特别在串口通讯中的开关量的检测和输出要点。极大限度的降低了系统硬件所占工程中的成本。
引言:在一般的配料工程中,要一台上位机对配料过程中所产生的一系列数据进行保存和统计,往往需要检测来自现场的一些开关信号。在应用工程中,在一般的上位机与称量仪表的通讯过程中,一般只用了3个引脚(TXD ,RXD ,GND),而还有6个脚(CD,DSR,CTS,RI,DTR,RTS)没有用到,而这些没有用到的引脚就正好可用于检测和输出开关量。
下面我将介绍基于VB6.0的平台做的一个小项目。
工程概况:该项目是广州科密集团公司用于一种新型耗材的配方研制所用的一个的自动配方管理软件。由于实验场所环境所限制,要求计算机不放在现场(不要求设立专人去操作计算机),只要求操作工人每称量按一下秤台旁边的一个按钮就可以存储当前每物料种类和其相应的重量,使管理系统以这个实验数据为依据,进行整理和加工。最后得出一些综合分析结果,为以后的正式生产提出配方工艺上的要求。因此系统本身就要求负责实时采集仪表的数据;实时采集开关量(按钮和转换开关的状态);实时的提醒操作员当些次配料是否有效果(根据配方来看是否报警也就是开关量的输出);还有存储当前当种物料的配料量,配方的管理,用户日后的数据查询和分析工作等。
根据这种要求,我们可以选择一种RAD工具来作为开发平台。
硬件配置:两套计量设备(包含两台定点输出仪表)一台计算机(工控机)
软件:本实例采用Microsoft公司的Visual Basic 6.0作为开发平台。Visual Basic是一种具有可视图形界面的、快速开发工具,同时它也较流行的开发工具。它可以利用Mscomm控件来完成对串口的控制和开关量的采用以及开关量的输出。
先介绍一下这九个引脚所代表的意义:
RXD表示接收数据
TXD表示发送数据
GND表示接地
注:(连接计算机和通讯仪表的接地端,开关量的输入的公共端就用仪表的电源)
CD表示调制解调器通知通计算机有载波被检测到
DTR表示计算机通知调制解调器可以进行传输
DSR表示调制解调器通知计算机准备就序
RI表示调制解调器通知计算机有电话打来
CTS表示调制解调器通知计算机可送出数据
RTS表示计算机要求调制解调器将数据发出
根据这些引脚的意义,我们将调制解调器当成其它的外部设备, CD、DSR、RTS、RI可以用于开关量的输入引脚。RTS和DTR可用于开关量的输出。
具体方法如下:
在工程中,添加部件Microsoft Comm Control 6.0控件。
1. 控件属性设置介绍:
Commport:设置或返回端口号。就是指 通讯的端口号, 用COMM1就设为1, 用COMM2就设为2, 但MSComm控件的最大值是16, 在本项目中同 时用了两个口, 因为需要和两台仪表进行通讯(常用计算机有两个串口, 如果串口不 够用的话, 可以买串口卡)。
Settings:设置并返回波特率、奇偶校验、数据位、停止位 。参数格式为:"BBBB,P,D,S"。例如“9600, E, 7, 2”;在RS232中双方必须完全一样, 彼此才能顺利的通信。否则的话将不 能正确的接收到来自对方的信号。
Handshaking:设置并返回硬件握手协议;(设为无)
InBufferSize:设置并返回接收缓冲区的字节数;
OutBufferCount:返回在传输缓冲区中等待的字符数。也可以用它来清除传输缓冲区;
DTREnable:确定在通讯时是否使 Data Terminal Ready (DTR) 线有效(设为有效)。
RTSEnable:确定在通讯时是否使 Request To Send (RTS) 线有效(设为有效)。
CommEvent:返回最近的通讯事件或错误。当发生错误或事件会产生OnComm事件。
InputMode:设置或返回Input 属性取回的数据的类型。它有两个参数, 0 表示以文字形式取回, 1表示以二进制形式取回。(设为0)
Rthreshold:设置并返回的要接收的字符数。
Sthreshold:设置并返回传输缓冲区中允许的最小字符数
InputLen:设置并返回 Input 属性从接收缓冲区读取的字符数。
用户809173 2009-10-10 10:49