温度巡回检测仪与PC机的智能串行通信

摘 要:介绍了win2000环境下利用delphi和vb的通信控件mscomm实现温度巡回检测仪与pc机的串行通信方法,详细描述了温度巡回检测仪与pc机之间通信涉及的通信端口初始化、串口捕捉、串口读写、数据库和各功能窗口的设置,并给出了部分串行通信的源程序。

关键词:串行通信;delphi-p.htm" target="_blank" title="delphi货源和pdf资料">delphi;mscomm;温度巡回检测仪

1 引 言

由于温度巡回检测仪具有结构简单、使用方便、测量准确和可靠性好等优点,因而,它广泛应用于工业温度测量中。98系列上润仪表wp-rd温度巡回检测仪,能完成温度显示、输出控制、网络通信等功能。但温度巡回检测仪内部存储容量有限,需要与具有强大数据处理能力和丰富软件资源的微机组成分布式系统,实现由微机对整个测量过程的温度数据进行统一的显示、存储、打印报表、参数设定和数据的进一步处理,这样必须实现pc机与温度巡回检测仪之间的通信。它们之间的通信可以通过并行通信或串行通信两种方式实现,由于串行通信自身的长处,现已被广泛的使用。borland公司推出的delphi是一种功能强大的高级编程语言,是新一代可视化开发工具,具有功能强大、简便易用和代码执行速度快等特点,特别适用在windows环境下图形界面和用户程序的编制。本文开发的温度智能化巡回检测系统,使用温度巡回检测仪作为下位机采集温度数据,经过预处理后通过自带的rs232串行口将数据送给上位机pc。在pc机上win2000环境下运行用delphi和vb的通信控件mscomm编制的实时监测系统软件,接受串行口送来的数据,进行相应的数据处理,在用户界面上进行实时显示和设置。

2 温度智能化巡回检测系统通信协议

温度巡回检测仪与pc机之间通过rs232异步串行通信接口通信,波特率为1200bps;字节数据格式为1位起始位、8位数据位和1位停止位;仪表地址传送格式为双字节、16进制、高字节在前、低字节在后,数据传输格式为3字节定点数(3字节定点数=低字节高4位ascⅱ码+低字节低4位ascⅱ码+高字节高4位ascⅱ码+高字节低4位ascⅱ码+小数点高4位ascⅱ码+小数点低4位ascⅱ码);巡检仪与上位机的数据通信是以“帧”为单位进行的,“@”为起始符号。

3 mscomm控件的注册和属性

3.1 mscomm控件的注册

用delphi实现串行通信,可用的方法有两种:(1)使用windows api;(2)使用在windows操作系统中注册的控件。其中调用api函数较为复杂,需要掌握大量通信知识;而利用mscomm控件,程序实现相对简单,结构清晰,并且该控件具有丰富与串行通信密切相关的属性和事件,提供对串口的各种操作,使用很方便,因此本实时监测系统软件使用第2种方法。

采用mscomm控件进行串行通信时,必须添加一mscomm控件到窗体中。其具体步骤是将mscomm.ocx拷入winnt\\system32下,在delphi主菜单中的component,选择import activex control命令,弹出import activex窗口,选择microsoft comm control5.0,再选择add命令,加上mscomm32.ocx,在窗体中生成了一个mscomm对象,就可自由地设置它的属性了。

3.2 mscomm控件的属性设置

mscomm控件提供了2种处理通信的方式:事件驱动(实时)方式和查询方式。由于查询方式会占用大量的cpu时间,效率很低,所以本程序中使用的是事件驱动方式。

利用mscomm控件控制通信程序,关键是准确理解和设置通信控件的属性。下面对程序中所用到的主要属性事件加以说明。

(1) commport属性。设置或返回串行端口号,其取值范围为1~99,缺省为1;

(2) setting属性。设置或返回串行端口波特率、奇偶校验位、数据位、停止位等参数,本系统设置为mscomm.setting=“1200,n,8,1";

(3) portopen属性。打开或关闭串行端口,格式为:mscomm.portopen={true/false};

(4) inputmode属性。设置从缓冲区读取数据格式,本程序中设置为0,表示为字符串格式;

(5) input属性。从接收缓冲区读取数据;

(6) output属性。向发送缓冲区写入数据;

(7) inbuffersize属性。接收缓冲区的大小,缺省值为1024b;

(8) inbuffercount属性。接收缓冲区中接收字节数;

(9) outbuffersize属性。发送缓冲区的大小,缺省值为512b;

(10) outbuffercount属性。发送缓冲区中待发送字节数;

(11) inputlen属性。设置或返回input每次读出的字节数;

(12) rthreshold属性。在mscomm控件设置commevent属性为comevreceive并产生oncomm前,设置并返回的要接收的字符数,缺省值为0,不产生oncomm事件;

(13) sthreshold属性。在mscomm控件设置commevent属性为comevsend并产生oncomm前,设置并返回传输缓冲区中允许的最小字符数,缺省值为0,不产生oncomm事件;

(14

  • 温度巡回检测仪与PC机的智能串行通信已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计