基于8254-2、单片机与S7-224XP PLC的核脉冲计数系统设计

2013-08-12 05:54赵修良彭文斌贺三军吴荣燕刘丽艳张嘉月
河南科技 2013年8期
关键词:波特率通信协议计数器

赵修良 彭文斌 贺三军 吴荣燕 刘丽艳 张嘉月

(南华大学 核科学技术学院,湖南 衡阳 421001)

可编程逻辑控制器(PLC)用于工业控制可靠性高,抗干扰能力强,通信能力强,扩展模块丰富等特点。西门子S7-200 CPU224XP PLC 具有2 路200KHz 的高速计数器输入[1]。然而,在对具有随机性的核脉冲信号进行计数时,PLC 的计数频率过低会产生大量信号堆积而不能满足系统要求。目前,西门子PLC 计数频率达到105数量级的情况下,关于针对提高其计数频率的问题的研究暂未展开。

本文提出了基于8254-2、单片机与PLC 的核脉冲计数系统,在某种程度上提高了PLC 计数频率。

1 8254-2、单片机与PLC 计数系统

采用8254-2 计数器记录一次仪表处理后的核脉冲,把记录的核脉冲数送给单片机的同时,单片机控制8254-2 计数器的工作方式等;单片机把记录下的数据通过串口通信的方式发送给PLC 进行数据处理。

1.1 8254-2 与单片机的连接电路

8254-2 是3 通道16 位可编程减法计数器,最高计数频率10MHz,所有引脚都和TTL 兼容,具有CS、RD 和WR 控制线,D0-D7 的双向三态数据线、A0 和A1 地址线。其它CLK0-CLK2 为每个计数器的时钟输入引脚,GATE0-GATE2 为每个计数器的门控输入引脚,OUT0-OUT2 为每个计数器的输出引脚,当达到设定计数值时不同工作方式会产生不同的输出波形。本文采用了其工作方式2:脉冲发生器,对输入信号作N(计数器初值)次分频,OUT 输出连续的、宽度为1 个输入脉冲周期的负脉冲[2]。

8254-2 与单片机的电路连接如图1 所示。74LS373 锁存低8 位地址;74LS154 将高位地址译码产生片选信号;单片机的ALE 引脚用来锁存P0 口送出的低8 位地址;单片机的P1.3引脚控制GATE0 信号功能。

图1 单片机与8254-2 计数器的连接电路

1.2 单片机与PLC 的串口连接电路

本文采用AT89C51 单片机,其串行口输出的是TTL 电平,而PLC 只带有RS-485 接口。因此,要与PLC 进行串口通信,必须完成TTL 到RS485 电平的转换。本文选择了MAX485芯片。

MAX485 接口芯片是Maxim 公司的一种RS-485 芯片。采用单一电源+5V 工作,额定电流为300μA,采用半双工通讯方式,它完成将TTL 电平与RS-485 电平转换的功能。RO 和DI 端分别为接收器的输出和驱动器的输入端。当为逻辑0 时,器件处于接收状态;当DE 为逻辑1 时,器件处于发送状态;A 端和B 端分别为接收和发送的差分信号端,当A 引脚的电平高于B 时,代表发送的数据为1;当A 的电平低于B 端时,代表发送的数据为0[3]。

与单片机连接时只需要一个信号控制MAX485 的接收和发送即可,同时将A 和B 端之间加匹配电阻R。A 和B 的另一端分别连PLC 自由端口PORT0 的8 号和3 号端。如图2 所示。

图2 PLC 与单片机通信接口电路

2 单片机与PLC 的串口通信

由于系统中AT89C51 单片机只是发送数据,PLC 单纯接收数据,所以采用单工串行通信。

2.1 AT89C51 单片机通信功能介绍

AT89C51 是一个低功耗,高性能CMOS8 位单片机,它内含1 个全双工的串行通信口。本系统单纯采用了AT89C51 单片机单工串口通信,利用串口中断来完成发送数据功能。

2.2 PLC 自由方式通信介绍

S7-224XP PLC 是串口通信方式最丰富的小型PLC 之一,支持多种通信协议,本系统采用其自由通信协议。自由通信协议又叫用户定义协议,利用自由端口模式,可以实现用户定义的通信协议,连接单片机。

在自由端口模式下,PLC 的串行通信接口由用户来控制,通过语句表程序以及单片机的汇编语言进行配合,来使用完成中断、字符接收中断、发送完成中断等,通信协议由用户完全控制。这时单片机处于主机状态,由单片机主动发送信息,PLC 接到信息完成数据处理即可。

2.3 PLC 与单片机的通信协议设计

PLC 采用自由端口模式协议,协议由语句表编程实现;单片机使用异步发送模式,协议用汇编语言编程实现。

由于单片机与PLC 通信要求使用相同的波特率,且传输的数位相同,所以在单片机串口的初始化设置中将波特率的定时器1、串口的控制和中断控制按如下步骤进行[4]:(1)确定定时器1 的工作方式:TMOD =20H;(2)确定定时器1 的初始值装载:TH1 =0FDH;TL1 =0FDH;(3)启动定时器1:TR1 =1;(4)确定串口的控制:SCON =52H;(5)计算波特率:选择的晶振为11.0592MHz;波特率=2SMOD/32 ×定时器1 的溢出率(式中SMOD 为PCON 寄存器的最高位),溢出率=11.0592/12,PCON=00H;得出串口波特率为9.6K。

字符信息格式为:1 位起始位,8 位数据位,无校验位,1 位停止位[5]。

异步通信的字符信息格式如图3 所示。

图3 字符信息格式

数据位的发送顺序为低位在前,高位在后。

3 程序流程

3.1 单片机程序流程

单片机系统的软件设计包括了单片机对8254-2 计数器的计数方式控制和与PLC 的异步串行通信发送程序。主程序流程图如图4 所示。

图4 单片机程序流程图

3.2 PLC 程序流程

PLC 系统软件的设计包括了串口通信接收程序和数据处理程序。流程图如图5~图7。

4 总结

由8254-2 计数器、AT89C51 单片机以及S7-224XP PLC为核心的核脉冲计数系统,不仅体现了PLC 稳定性高、抗干扰能力强的特点;也发挥了单片机灵活性高的、易扩展的特性;更是综合了8254-2 可编程计数芯片的高频率计数的优势,使三者优势互补。实验证明,该系统具有灵活性高,实用性强,开发成本低等特点,且在某种程度上提高了PLC 计数频率,使PLC 得到更广泛的应用。

[1]西门子(中国)有限公司深入浅出西门子S7-200 PLC[M].北京航空航天大学出版社,2003.

[2]郑学坚,周斌.微型计算机原理及应用(第三版)[M].清华大学出版社,2007.

[3]徐建军.MCS-51 系列单片机应用及接口技术[M].人民邮电出版社,2003.

[4]邴春秋等.基于PLC 和单片机实现的数据采集控制系统设计[J].西华大学学报,2007,26(6):8-9.

[5]刘文涛.单片机语言C51 程序设计[M].北京:原子能出版社,2004.

猜你喜欢
波特率通信协议计数器
采用虚拟计数器的电子式膜式燃气表
CAN 总线波特率自适应程序设计
基于Z-Stack通信协议栈的红外地温采集电路设计
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现
计数器竞争冒险及其处理的仿真分析
RSSP-I、RSSP-Ⅱ及SAHARA三种安全通信协议实现技术简介
任意N进制计数器的设计方法
基于单片机的仰卧起坐计数器
C*Core芯片SCI串口波特率容限优化