+发表新主题
shentaoq 发布于2006-12-15 17:14 7 次浏览 0 位用户参与讨论
跳转到指定楼层
引言 自动灌装封尾机控制仪是自动灌装封尾机的人机操作界面。操作者可通过控制仪上的相应按键控制系统的启动、停止;进行手动、自动操作的切换;可对相关参数进行设定,并可通过键盘进行手动操作。这些操作通过PLC与MCS-51之间的串行通信作用于PLC。本文将对该控制仪的设计方案和软、硬件构成进行介绍。 2 控制仪设计思路 该封尾机控制仪的操作、显示单元采用MCS-51单片机作为系统的CPU,外接三线串行液晶显示模块LCM045和控制键盘。键盘的三个主要功能包括:手动状态的手动操作,自动状态的状态切换,参数的设定。控制仪对封尾机的控制通过单片机?控制仪CPU?与PLC?封尾机控制元件?之间的通讯来实现。 2.1 控制仪按键简介 该封尾机控制仪的控制界面有10个按键,完成所有外部输入工作。其中4#~9#键为多功能复用键,在手动操作时分别为转位气缸、灌装头、料阀、料缸和封头的点动操作键;在自动运行时分别为复位、启动、停止、增加、减少和设定按键。按键的多功能复用缩小了控制仪的体积,并使操作更为方便、直观。 2.2 通信的实现 如上所述,控制仪对封尾机的控制通过单片机?控制仪CPU?与PLC?封尾机控制元件?之间的通讯来实现。这里采用MCS-51单片机和施耐德电器公司的Nano系列PLC,通过通信协议来实现两者间的通信。 2.2.1 单片机的串行口设置 MCS-51内部有一个全双工的串行口,TXD?P3.1?为发送端,RXD?P3.0?为接收端。它是可编程接口,对它的初始化只要用两个控制字分别写入特殊功能寄存器SCON和电源控制寄存器PCON中即可。在用软件设置的四种通信工作方式中,方式1是标准的异步通信方式,在此工作方式下,串行口为8位异步通信接口,特别适合集成的点对点连结接口的8位数据传输。每帧信息包括10位:1个起始位、8位数据位和1个停止位。波特率由定时器T1的溢出率和串行口控制器SMOD的状态确定,在CPU的晶振为11.0592MHz时,波特率采用4800bps。单片机的初始化程序如下: mov scon?#50h ?1?8?1?N mov tmod?#21h ?T1?MOD2 mov pcon?#80h ?SMOD=1 mov th1?#of3h ?BPS=4800bps mov t11?#of3h clr ea ?清中断 clr es clr etl setb tr1 ?开定时器 2.2.2 PLC的端口设置 施耐德的NanoPLC是通过设置扩展口来实现串行接口,系统采用MCS-51单片机作为Modbus通信网络主站,NanoPLC作为从站。通信格式设置如下:波特率4800bps?8位数据位,1位停止位,无奇偶校验。如图2所示: 2.2.3 系统的通信协议 NanoPLC采用Modubs通信协议。任何根据此通信协议进行通信的主、从机之间进行数据信息交换时,信息格式都必须遵守通信协议所规定的格式。Modbus的数据交换模式有两种,一种为ASCII编码制,一种为RTU编码制。前者适用于高级语言编程的计算机,后者适用于机器语言编程的计算机。本例采用RTU码传输模式,它包括一些特殊标志码、PLC站号、呼叫字和校验码等,其数据帧格式如下〖1〗: 帧开始 从站地址 功能号 数据区 校验码 帧结束 ?CRC? T1-T2-T3-T4 一个字节 一个字节 N个字节 两个字节 T1-T2-T3-T4 ?1? 帧开始:数据帧以至少3.5个字符间隔时间?T1-T2-T3-T4?标志开始和结束。整个信息帧必须以连续的信号进行传输,从而保证CRC的校验正确。 ?2? 从站地址:一个字节。各从站识别码,站号取值范围01H-F7H,共有247种不同站。但Nano系列PLC通讯网络最多允许32个从站。 ?3? 功能号:一个字节。表示主站对从站的各种操作工作,主机发功能号给从机,如果从机响应正常,则回送相同的功能码;如有错误发生,则将原功能码符合位置1后回送,并将错误代码写入数据区回送。各功能号具体功能如下: 01或02:读n个内部位%Mi 03或04:读n个内部字%Mwi 05:写1个内部位%Mi 06:写1个内部字%Mwi 15:写n个内部位%Mi 16:写n个内部字%Mwi ?4? 数据区:数据区由一系列两位16进制数据组成,从00H-FFH。结果通信正确,数据区存放PLC回应上位机的信息;如发送数据有误,则返回异常代码。 NanoPLC处理的两种异常代码: 01:功能未知?PLC不支持的请求? 如发送:01H 16H 00H 00H FFH 00H 09H F9H 返回:01H 96H 01H 8EH 60H 03:无效数据?位或字的数据错误,如写位时数据既非16#FF00?又非16#0000? 如发送:01H 05H 00H 00H 03H 06H 4DH 38H 返回:01H 85H 03H 02H 91H ?5? 校验码:二个字节。采用CRC循环冗余码。它的基本原理是将一段信息看成一个很长的二进制数,然后用一个特定的数?如11021H?去除它,最后将余数作为校验码附在信息代码之后一起传送?或存储?,在进行接收?或读出?时进行同样的处理,如有差错就可发现。需特别注意的是,如果发送信息中的CRC校验码计算错误,则通信不能成功。 3 系统硬件构成 自动灌装封尾机控制仪的操作、显示单元采用MCS-51单片机作为系统的CPU,外接三线串行液晶显示模块LCM045和控制键盘,PLC与单片机之间的通信采用Modbus通信协议。系统的硬件构成如图2所示: 4 软件设计 单片机程序的初始化等准备工作在主程序中完成,所有按键功能和通信的实现通过键盘服务子程序来完成,通过触发外部中断0来转入键盘服务子程序,下面分别对主程序和键盘子程序进行介绍。 4.1 主程序介绍 主程序中的初始化主要包括对液晶显示模块LCM045各工作寄存器的初始化;对单片机串行口控制字、控制寄存器的初始化;两个定时器工作模式、控制寄存器的初始化;各内部寄存器的初始化。 在系统运行的初始状态,封尾机控制仪的工作和指示状态为规定的默认状态,并与PLC保持一致;考虑到在实际工作中如果单片机与PLC不同步上电,仍必须使控制仪的指示状态与PLC的运行状态一致,在单片机程序的开始应该根据PLC内部的一些标志位对PLC的当前运行状态进行判断,确定PLC当前状态后,点亮或熄灭控制仪的相应指示灯。对PLC标志位的读取通过单片机与PLC间的串行通信来实现。 封尾机自动控制仪的显示屏幕在有按键输入时,显示按键操作的结果或数值的经过值;当没有按键输入时,根据要求显示器显示为加工工件的当班数。所以此时要求单片机与PLC进行串行通信,单片机不断读取PLC内部字的值,并通过LCM045显示。整个程序的流程图如下所示: 4.2 键盘子程序介绍 封尾机自动控制仪的键盘共有10个按键,各按键的作用不同,所对应的键盘服务子程序也各不相同,应该注意的是因为有的按键为多功能复用健,所以在键盘程序中应先对相应的标志位进行判断,以确定应该执行哪一种功能。 5 通信的几个问题 ?1? 因为用键盘对系统进行控制,所以必须保证通信过程的准确性和实时性。首先,应在确保上一数据通信准确完成的基础上,才能进行下一个数据的传送,所以需要根据PLC的反馈数据进行判断、处理。下面以对PLC内部位%M124的处理为例来进行说明?键按下时%M124置1,键松开时%M124置0?,单片机向PLC发送OFFH?置1?,%M124若置1则反馈为0FFH,否则,单片机重发0FFH;若%M124已经置1,则查询按键是否松开,若未松开,则反复查询;若已松开,单片机向PLC发送00H,过程同上。程序流程图如下所示: ?2? 在实际应用中由于干扰或一些外界因素的影响,可能会造成通信的中断,使接收标志位Ri不能置1。若单片机的串行通信采用的是查询方式,接收标志位Ri不能置1,则会造成单片机程序一直等待在这里,无法继续执行。所以,出于程序可靠性的考虑,必须避免这种情况发生。这里采用启动定时器中断的方法,即在串行接收子程序中的开始启动定时器中断0,启动定时并装入定时器初值;当等待Ri置1的时间等于定时值时,启动定时器0中断;在定时器0中断服务程序中利用软件使Ri置1;在串行接收子程序中的结束关闭定时器中断0。相关处理程序如下: in? setb et0 ?启动定时器中断0 setb tr0 ?启动定时 mov th0?#00h ?装入定时器初值 mov t10?#00h setb ren clr ri jbj ri?$ ?等待Ri置1 clr ri mov a?sbuf mov r0?a clr et0 ?关闭定时器中断0 ret reset?setb r i?定时器0中断服务子程序 reti 6 结束语 用单片机为CPU,液晶显示模块为显示器,通过串行通信与PLC进行通信的自动灌装封尾机控制仪小巧美观,易于安装,开发方便,性能稳定可靠。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ| Archiver|手机版|小黑屋| 碧波制图网 Stonespider

Copyright © 2021-2023 Kangli Wu   All Rights Reserved.

Powered by Discuz! X3.5( 苏ICP备18011607号-1 )

快速
回复
返回
列表
返回
顶部