工控编程吧

标题: Delphi与多个厦门宇电AI仪表串口数据采集系统的实现 [打印本页]

作者: qq263946146    时间: 2019-11-12 10:40
标题: Delphi与多个厦门宇电AI仪表串口数据采集系统的实现
摘要
利用Delphi开发工业上位机控制系统软件已成为越来越多工控开发人员的选择,而怎么方便快速实现串口数据的采集成为问题的关键,本文着重讨论了Delphi6与Comport通信组件所实现的与多个AI仪表实时数据采集,同时对采集到的数据作相应的处理。

关键词
串口通信;Delphi6.0;Comport控件

1 引言
日前,随着现代信息技术的发展,计算机串口通信技术已日趋成熟。由于微机处理速度快、分析能力强、使用灵活等特点,而单独的二次仪表仅仅作为显示控制功能也不能满足生产的需要,更多是要采集和记录现场有用的数据,作为生产分析和存档,利用PC作为仪表功能拓展的上位机监控系统已在工业控制领域中被广泛采用。
PC机与仪表的串口通信可以采用高级语言编程实现,如Delphi、VC、VB等。Delphi是新一代面向对象的可视编程工具,它具有功能强大、简单易用、执行速度快和有丰富的第三方控件支持,使得开发过程变得如搭积木般简单易用,特别是对我们一些搞工控没有特别深厚编程基础的人使用。下位机仪表采用的是带485通信功能的宇电AI系列仪表,因为宇电的AI仪表所用的是AIBUS通讯协议,具有通信指令简单、通信速度快等特点,允许上位机指令读写仪表的数据,利用RS485总线功能可以实现多个仪表数据的串口通信。

2 Comport串口通信组件简介
用DelphiI实现串口通信,常用的方法有:使用控件,如Mscomm和Comport控件等;使用API函数对串口读写。使用API方法比较适合编写较为复杂的低层次通信程序,但缺点是编写串口通信程序较为复杂,需要掌握大量的通信和编程知识。而用串口控件,我们可以不理会它的内部机能,主要调用它的相关的属性和事件,就可以对串口实现各种操作,且编程简单、通常性强、可移植性好。在Delphi串口通信中我们选择用Comport控件,它直接编译在开发的工程文件里,不需要在运行的PC上另外安装控件。将Comport组件安装到DELPHI后可以看到多了一个Cportlib的组件页,Cportlib下面有多个组件,我们在这里主要应用的是Comport组件,对Comport控件的操作主要有:端口设置、打开端口、往端口写指令、读接收数据、关闭端口。

3 宇电AIBUS通讯协议说明   
AIBUS是厦门宇电自动化科技有限公司为AI系列显示控制仪表开发的通讯协议,能用简单的指令实现强大的功能,AIBUS采用了16位的求和校正码,通讯可靠,支持4800、9600、19200等多种波特率,仪表允许连续写参数,写给定值或输出值,AI系列仪表使用异步串行通讯接口,接口电平符合RS232C或RS485标准中的规定。数据格式为1个起始位,8位数据,无校验位,1个或2个停止位。AI仪表采用多机通讯协议,采用RS485通讯接口,则可将32台的仪表同时连接在一个通讯接口上。AI仪表采用16进制数据格式来表示各种指令代码及数据。AI仪表软件通讯指令经过优化设计,标准的通讯指令只有两条,一条为读指令,一条为写指令,两条指令使得上位机软件编写容易,不过却能100%完整地对仪表进行操作;标准读和写指令分别如下:
读: 地址代号+52H(82)+要读的参数代号+0+0+校验码
写: 地址代号+43H(67)+要写的参数代号+写入数低字节+写入数高字节+校验码
地址代号:为了在一个通讯接口上连接多台AI仪表,需要给每台AI仪表编一个互不相同的通讯地址。AI仪表通讯协议规定,地址代号为两个相同的字节,数值为(仪表地址+80H)。例如:仪表参数Addr=10(16进制数为0AH,0A+80H=8AH),则该仪表的地址代号为:8AH 8AH
校验码:校验码采用16位求和校验方式,其中读指令的校验码计算方法为:要读参数的代号×256+82+ADDR
比如要读地址1的参数0的数据,就是0*256+82+1=83;转成十六制就是53 00;
如果是读OC的数据,就是十进制(C)*256+82+1= (十六制的)C53,校验码为53 0C;
写指令的校验码计算方法为以下公式做16位二进制加法计算得出的余数(溢出部分不处理):要写的参数代号×256+67+要写的参数值+ADDR
返回数据:无论是读还是写,仪表都返回以下10个字节数据,测量值PV+给定值SV+输出值MV及报警状态+所读/写参数值+校验码;其中PV、SV及所读参数值均各占2个字节,代表一个16位二进制有符号补码整数,低位字节在前,高位字节在后,整数无法表示小数点,要求用户在上位机处理;MV占一个字节,按8位有符号二进制数格式,数值范围-110~+110,状态位占一个字节,校验码占2个字节,共10个字节。

4 Comport控件与多个AI仪表通信的实现
4.1 硬件的组态
硬件组态主要由带串口的上位机PC、485转232转换器和AI仪表组成的485总线系统,AI仪表设置不同的通信地址,波特率设为9600。如下图:
总线结构
(, 下载次数: 3)