综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章通信网络正文
 
串行通信在监控系统中的应用研究
发布日期:2005-06-24 作者:徐光宪 刘建辉 陈万志 来源:微计算机信息

摘  要:结合PVC自动配混监控系统项目的开发,介绍了欧姆龙C200HE串行通信接口的工作机制与特性,主要分析了在Delphi环境中实现上位机和C200HE监控系统的串行通信技术,并给出了部分关键程序。实际应用表明,给设计简单实用,性能可靠,对其他同类型的控制系统的设计有一定的借鉴作用。

关键词:串行通信;监控系统;欧姆龙可编程控制器;Delphi语言

 

   由于系统配置灵活、可靠性高以及结构开放等优点,PLC被广泛应用于工业控制领域中,在此类控制系统中,一般均为两级递阶结构,一是智能数据采集系统,也就是通常所说的下位机;二是数据处理和显示系统,即上位机HMI(Human Machine Interface)系统。上位机(微计算机、工业控制机)完成采集数据信息的存储、事件记录与处理、参数设定、状态显示、高级复杂算法等功能,实现系统的实时监控。下位机(PLC),主要完成数据采集、状态判别、输入输出控制等。工控机与PLC组成的主从式实时监控系统,是自动控制、计算机应用、信号检测与处理、通信等技术的综合应用,能够充分发挥各自在工业控制中的优势,在此类控制系统中,上下位机的通信是其关键技术之一。

1  PVC自动配混IPC-PLC监控系统

系统结构如图1所示,它通过智能称重仪表、位置开关、温度传感器等设备来获取系统当前时刻的各项参数,并结合上位机IPC(Industrial Personal Computer)的设置参数与操作指令来自动完成系统的工艺流程,实现PVC工艺的自动上料、计量、配混及系统保护等功能,同时将系统的各项信息反馈给上位机,由上位机进行计量的实时显示、配方的存储与调用、自动报警、报表打印,并通过工业以太网实现远程监控。

2   通讯协议

本系统中上位机与OMRON CH200通过HOST LINK单元及串行总线互联而成的RS-232C总线上位连接系统而进行信息交换,上位连接系统是一种主从式总线型局域网,它以上位机为该工业网中的通信主站,其它连入该网的PLC皆为从站,其通信采用主从轮询的方式:上位机始终具有初始传送优先权,所有通讯均由上位机来启动,向从站发送数据或者从从站中读取数据都是主站以命令帧形式发送,对于主站发来的命令帧,从站用响应帧应答,当命令帧很长时,需要分成几帧发送。

在命令帧或响应帧中包含着需要通信的数据,只要实现命令帧与响应帧的应答,才能使要交换的数据顺利到达对方。

为确保上下位机之间能正确交换数据,必须制定相互遵循的通讯规约,OMRON专用协议是OMRON专用协议是3层协议,即物理层、数据链路层及应用层。因为编写通信程序是基于应用层进行的,因此我们只关心命令帧与响应帧格式,只要我们编写的通信程序发出的命令帧格式完全符合OMRON专用协议,PLC就一定能理解。对PLC发回的响应帧,我们必须按其格式进行拆装、识别,才能正确分离出交换数据及有用状态信息。

图2和图3分别为上位机发送的上位机链接命令帧读DM区数据的命令格式和由PLC返回的应答帧格式。当PLC接收到从上位机发来的ASCII码命令时自动返回ASCII码应答。

上位机的命令帧由不固定的字节数组成,针对不同的识别码有不同的帧长度。但基本格式大体一致。本文以读DM区数据的命令帧为例,如图2所示,其中@符号必须置于每个命令帧的开头;节点号为主站所寻找的目标地址(设备号),设置在PLC DM区的DM6648的00~07位中,为00~31(BCD码),响应帧中也必须带上同一设备号,告诉主站以与哪一个从站建立了通信;识别码,由2英文字母组成的命令代码,它表示通信命令(如RD,RH,WD,TS,MM等);起始字,也就是起始偏移地址(0~9999);字数,为数据个数(n=1~10000,若读10,000个字,被读字数用0000表示);FCS,帧检查顺序码,为2个ASCII字符的8位数据,其计算方法为其前面除@符号字节的所有字节的异或值;终止符,设置成“*”和回车(CHR$(13))两字符,表示命令结束。

   图3所示为图2上位机读DM区命令的PLC相应的响应帧格式,对比之下,其中结束码表示命令完成的状态(即,是否有错误发生),有代码00、13、A8等形式,分别代表正常结束、FCS错误、传送数据时因帧长度错误引起中止等含义。例如,发送一读第10号从站的DM区DM0031和DM0032数据的命令帧“@10RD00310002##﹡↙”(其中##表示校验字节)后,收到的响应帧为“@10RD00000A012C##﹡↙”,表示顺利读出第10号从站DM0031和DM0032内的数据值分别为10和300。

上下位机软件设计

1)上位机程序设计   上位机监控程序采用Delphi设计语言,总体分为组态环境和运行环境。

上位机程序中最关键的是要和PLC进行实时通信,Delphi利用串口通信有三种方式:

⑴利用VB中的ActiveX控件(MsComm.OCX)或第三方通信控件。⑵通过Windows API函数。⑶通过Delphi中嵌入汇编直接操作端口实现通讯(如BIOS中调用INT 14H串行通信功能)。

其中调用Window API函数需要在VB开发的应用程序中添加外接的API程序和必需的通信协议参数设置,实际使用比较繁琐。而通过Delphi中嵌入汇编直接操作端口实现通讯的方式需要以内嵌汇编的方式自己编写模块,使用时,再加入到工程文件中,设计过程中用户还需了解CPU和板卡的支持速度,给整个软件设计中带来一定的难度。与前两种方法相比较,利用VB中的MsComm控件实现串行通信更为简单,因为它已经把Windows的编程复杂性封装起来且提供了使用 RS-232C进行通信的所有协议和标准的事件处理函数、过程、属性和方法,用户可以很方便地使用属性来完成通信格式参数地设置,并通过事件驱动方式来实现通信软件的开发。

本系统采用MSComm控件实现,由于数据以命令帧与应答帧的形式来完成通信,所以通讯方式应设为二进制传输,即MSComm1.InputMode := 1,上下位机的通讯参数选用OMRON所规定的标准端口参数,即MSComm1.Setting := “9600,E,7,2”。下面以一函数为例说明怎样发送命令帧,此函数用于读出10号从站数据存储区DM0031、DM0032中的数值。

var

dm_read : variant;

begin

dm_read := VarArrayCreate ([0,10],varbyte);//创建11字节的数据帧

dm_read[0] := 40;//帧开头标志@的ASCLL码的十六进制数

dm_read[1] :=10;//节点号BCD码

dm_read[2] :=52;//指令代码R的ASCLL码的十六进制数

dm_read[3] :=44;//指令代码D的ASCLL码的十六进制数

dm_read[4] := 0;//偏移地址高两位的BCD码

dm_read[5] :=31;//偏移地址低两位的BCD码

dm_read[6] := 0;//字数高两位的BCD码

dm_read[7] := 2;//字数低两位的BCD码

dm_read[8] := 10 xor 52 xor 44 xor 0 xor 31 xor 0 xor 2;//校验字节

dm_read[9] := 2A;//终止符*的ASCLL码的十六进制数

dm_read[10] := 0D;//终止符回车CR的ASCLL码的十六进制数

MsComm1.Output := dm_read;

end;

2)下位机编程实现

OMRONC200HX系列与RS232串口功能有关的寄存器为DM6645、DM6646、DM6649和专用继电器SR264,它们主要用于RS-232C串口通讯方式的设置及与运行管理。

数据存储器DM6648用于存储通讯方式控制字,可由用户在编程方式下直接设置,属于可读写的特殊标志位寄存器,其格式如下:

D15~D08

D07~D00

帧格式

波特率

位D00~D07中波特率代码00~04依次对应19.2~1.2Kbps波特率。位D08~D15中帧格式代码00~11主要设置起动位、数据长度(7位或8位)、停止位(1位或2位)、检验方式(奇校验或偶校验)。

本系统使用的为标准通讯方式:1个起动位,7个数据位,偶校验,2个停止位,9600bps。

通讯过程的各种情况标志实时存储于专用继电器SR264中。专用继电器SR264D00~D15位的功能标志为:

D00~D03       RS-232C端口错误码信息

0000:没有错误;0001:奇偶校验错误;0010:帧错误;0011:运行错误;

0100:FCS错误;0101:超时错误;    0110:校验和错误;0111:命令错误;

D04:RS-232C端口通信错误;

D05:RS-232C端口发送准备好标志;

D06:RS-232C端口接收完成标志;

D07:RS-232C端口接收溢出标志;

PLC在接收上位机发来的命令帧之前,先检查SR26406(RS-232C端口接收结束标志)是否为ON;为ON则使用接收指令接收数据,执行接收指令时将接收完成标志位置OFF,同时将接收到的数据传递到指定的字中,读取接收的数据而产生的状态存储在SR264存储器中。PLC根据继电器SR264中对应的标志位D04~D07的状态,决定当前信息的取舍,同时还可在出错的情况下将此错误标志位发送给上位机,以便要求重发。

PLC在与上位机的通信过程中,还有可以使用TXD(-)和RXD(-)指令与通信协议宏功能来控制同各种装有RS-232C或RS-422/485端口的通用器件或通讯设备的数据的接收与发送,。

下位机OMRONC200HX系列在系统上电后,就立即执行“清理IR区并复位所有的定时器”、“检查I/O单元的连接”、“复位监视定时器”这最初的三个操作,剩余的各个操作均以扫描的形式执行,该扫描包括九项基本操作:监督过程、执行程序、计算扫描周期、I/O刷新、RS-232连接处理、上位机链接服务、外围设备服务、通信板服务、SYSMAC LINK和SYSMAC NET链接单元服务。

4 结语

     Delphi在开发可视化环境下的监控系统时有其独特的优势,本监控系统采用了点对点的主从应答方式,实现了PLC与上位机的串行通信。经现场调试及运行表明,该系统具有可靠性高、实时性等优点。随着串行通信设备的不断集成化,本系统可以更好地移植于其它工业测控系统和分布式监控系统中。

参考文献

[1] 任重远,刘树波,王媛.微机监控系统中PLC与上位机通信的研究[J].长江科学院院报,1999,16(5):49-52.

[2] 黄军,熊勇,刘燕,刘晓梅.Delphi串口通信编程[M].人民邮电出版社,2001.

[3] 宋伯生.可编程控制器联网·编程·应用[M].北京:中国劳动出版社,1998.


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
北京公交GPS车辆监控系统研究 (12-20)
基于TCP/IP的多线程通信及其在远程监控系统中的应用 (12-10)
基于CAN总线的监控系统设计 (09-28)
利用GSM短消息业务实现GPS车辆监控 (12-20)
无轨电车整流站自动化监控系统 (01-16)
台达VFD-L型变频器与计算机的串口通信 (09-26)
基于串行通信的开关压力测量系统 (09-25)
静脉输液结束呼叫监控系统设计 (09-26)
基于嵌入式微控制器的网络化智能监控系统 (09-12)
基于MPI网络的自来水厂分布式监控系统 (03-05)
基于Profibus现场总线的煤矿井下胶带监控系统 (02-25)
新型馈电状态传感器的研究 (06-29)
基于WebGIS的电网运行监控技术及其实现 (07-05)
基于WebGIS的电网运行监控技术及其实现 (09-05)
基于WLAN的移动视频监控系统 (07-13)
一种射频IC卡就餐机和后台管理微机的通信设计 (09-29)
PowerBuilder中串行通信编程技术研究 (10-23)
串行红外收发模块及其控制器在红外抄表系统中的应用 (12-07)
RS-485通信卡及其应用 (12-06)
Linux PC和51系列单片机串行通信的设计 (11-29)
在VC++中利用ActiveX控件开发串行通信程序 (12-20)
解决RS-232长距离串行通信的一种实用方法 (12-27)
Matlab与数字示波器的通信 (01-15)
高速串行数据收发器CY7B923/933及应用 (01-02)
六通道数据采集及处理系统的研制 (11-15)
基于GPRS的SOCKET通信的应用研究 (11-11)
采用VB实现组态软件与下位机的串行通信方法研究 (11-03)
PC机与PLC串行通信的实现 (10-24)
AT89C52单片机与VB串行通信的实现 (11-04)
用VC实现PC机与单片机的通信 (11-07)
用VB6.0实现PLC与上位计算机的串行通信 (11-09)
温控系统中VB实现的PC机与单片机串行通迅 (11-09)
基于VC++的步进电机控制方法探讨 (01-20)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号