数控平台PLC控制系统的开发

资源类型:pdf 资源大小:296.00KB 文档分类:工业技术 上传者:吴瑶

文档信息

【作者】 黄菊生  龚庆寿  夏平  龚存宇 

【关键词】S7-200PLC 数控平台 插补 步进电机 

【出版日期】2005-04-30

【摘要】介绍了用西门子S7 200PLC构成数控平台控制系统的开发, 讨论了系统组成、插补运算、PLC软件脉冲分配及控制程序的设计, 给出了脉冲分配梯形图和PLC控制程序流程图。

【刊名】机床与液压

全文阅读

Keywords: S7 200PLC; NCplatform; Interpolation; Step motor0 前言可编程控制器 (PLC) 是上世纪 60年代发展起来的一种新型自动化控制器。最早是用于替代传统的继电器控制装置, 功能上只有逻辑控制、计时、计数以及顺序控制等, 而且只能进行开关量控制。随着技术的进步, PLC吸取了微电子技术和计算机技术的最新成果, 发展十分迅速, 其控制功能已远远超出逻辑控制的范畴, 从单机自动化、生产线的自动化, 到整个工厂的生产自动化, 从柔性制造、工业机器人到大型分散型控制系统, PLC均担当着重要角色。PLC、数控技术和工业机器人已成为机械工业自动化的三大支柱。PLC与数控技术的结合产生了各种不同类型的数控设备, 如复杂的数控加工中心, 简单的激光淬火用X Y数控平台, X Y绘图仪。如两轴运动的X Y数控装置, 不但有着广泛的工业应用, 而且在高校数控实践教学中也是典型的实验设备。它一般由两个步进电机驱动, 可以沿X轴方向和Y轴方向运动, 用单片机或PLC编程控制其走出不同的运动轨迹。本设计用西门子S7 200PLC控制数控平台, 用PC机作上位机构成控制系统, 通过直线插补、圆弧插补运算实现数控平台按规定的轨迹运动 [1]。1 数控平台控制系统用西门子S7 200PLC (CPU226模块 ) 作控制器,由于现有的PLC主机模块为继电器输出型, 24点输入 16点输出, 接交流 220V电源工作, 继电器输出不适合步进电机控制的大量、快速脉冲输出, 故扩展一个晶体管输出型EM222模块作输出口。EM222模块有 8个输出点, 一边 4个点, 模块要外接电源才能工作, 一般只要直接接PLC主机模块的 24V直流输出就行, 也可以用 +5V电源, 但要注意与驱动电源共地的问题。驱动数控平台的两个步进电机型号为 45BF005Ⅱ, 是三相反应式步进电机, 步距角 1 5°, 相电流2 5A, 驱动电压直流 24 ~40V。X轴步进电机三相XA~XC接EM222输出点的Q2 7 ~Q2 5, Y轴步进电机三相YA~YC接EM222输出点的Q2 4 ~Q2 2。输出点通过一大电阻接地M, 使其与EM222内部晶体管输出电路L+ ( 24V)、M形成完整回路, 能保证输出信号的确定 [2, 3]。PC机作上位机, 设计人机接口界面, 数据输入,数控插补运算, 仿真动态显示插补运动轨迹, 并将插补运动轨迹控制信息传给PLC, 由PLC控制步进电机运动。驱动电路就是功率放大, 使步进电机获得所要求的相电流和驱动电压。图 1 数控平台控制系统2 插补运算PC机界面友好, 数据输入方便, 插补运算速度快, 插补轨迹显示直观生动, 利用PC机强大的软硬件功能完成这些任务弥补了PLC的不足。一般的零件轮廓大都可以分解为直线和圆弧, 用VB编程, 采用逐点比较法设计直线插补和圆弧插补运算程序。无论图形在哪个象限, 插补运算的结果就是产生步进电机的运动控制信息, 一是运动轴, 二是在该轴的正或负方向运动。PC机插补运算一步, 实时地将插步结果的运动控制信息传送给PLC, PLC根据PC机传来的控制信息驱动相应的步进电机运动。PC机传给PLC的运动控制信息分下面几种情况:MSComm1 Output= " 1 " + " 1 " + " 0 " +Chr$ (&HA) ----------+X方向走一步MSComm1 Output= " 1 " + " 2 " + " 0 " +Chr$ (&HA) -----------X方向走一步MSComm1 Output= " 2 " + " 3 " + " 0 " +Chr$ (&HA) ----------+Y方向走一步MSComm1 Output= " 2 " + " 4 " + " 0 " +Chr$ (&HA) -----------Y方向走一步MSComm1 Output= " 0 " + " 0 " + " 6 " +Chr$ (&HA) ----------停止信号实际上就是PC机与PLC之间的通信数据协议问题, PC机实时传送的数据由 4个字节组成, 分别为轴、轴的运动方向、停止信号、最后是结束符 0AH,数据格式如下:图 2 通信数据格式第一个字节表示运动轴, 字符 1 (传ASCII码31H) 为X轴, 字符 2 (传ASCII码 32H) 为Y轴。第二个字节表示运动方向, 字符 1为+X方向, 字符2为-X方向, 字符 3为 +Y方向, 字符 4为 -Y方向。第三个字节表示停止信号, 字符 6表示插补结束, 关闭步进电机。第四个字节为结束符 0AH, PLC以接收到 0AH为标志, 认为本次数据接收完毕。3 PLC控制程序3 1接收数据按照通信协议, PLC处于接收数据状态。用接收指令RCVVB100, 0, 将接收到的数据存放在PLC接收缓冲区VB100开始的存储区, 接收缓冲区与插补控制信息的对应关系如图 3所示。图 3 PLC接收数  据缓冲区3 2 通信及初始化设置S7 200PLC与PC机通信采用自由端口通信模式, 通信参数为波特率 9600bps, 每个字符 8位数据位, 无奇偶校验。采用报文接收, 一次接收多个字节, 这时需要设置特殊存储器字节SMB87 ~SMB94及脉冲分配要用到的几个寄存器。通信与初始化设置程序如下:LD  SM0 1     //首次扫描为 1MOVB 16#09, SMB30 //初始化自由口通信参数MOVB 16#B0, SMB87 //RCV信息控制字节MOVB 16#0A, SMB89 //结束符为 16#0AMOVW +1, SMW90 //空闲超时为 1msMOVB 100, SMB94 //最大字符数为 100MOVB 1, VB400 //X轴脉冲分配移位寄存器MOVB 1, VB500 //Y轴脉冲分配移位寄存器MOVB 0, VB300  //移位寄存器的移入数据MOVB 0, AC1 //X轴的时序脉冲记数器MOVB 0, AC2 //Y轴的时序脉冲记数器ATCH INT_ 0, 23 //报文接收结束中断事件ENI //允许中断RCV VB100, 0 //执行接收指令, 接收缓冲区         指向VB1003 3 脉冲分配对三相步进电机的控制, 有单三拍、双三拍和单、双六拍通电方式, 我们采用六拍通电方式。改变通电顺序就改变了步进电机的旋转方向, 数控平台的移动方向就改变了。如何用PLC产生六拍时序脉冲及改变通电顺序, 实现数控平台沿X、Y轴正确移动是PLC控制程序的关键。以X轴步进电机为例, 用移位寄存器指令SHRBV300 0, V400 0, +7对VB400移位产生六拍时序脉冲, 初始化时VB300为 0, VB400为 1, 执行一次移位将V300 0位的值从V400 0位移入, +7表示VB400中参与移位的 7位为V400 0 ~V400 6。用VB400中的六位V400 1 ~V400 6产生六拍时序脉冲, 每移位一次为一拍, V400 1~V400 6前移一位,在V400 1~V400 6中每次总有一位为逻辑 1, 其它位为逻辑 0, 如第一次移位后V400 1 ~V400 6等于100000, 逻辑 1就代表着当前拍所在位置。移位六次为一循环, 反复进行 [4]。每一拍X步进电机三相的通电情况用M1 0、M1 1和M1 2存储, M1 0、M1 1和M1 2组成三相单、双六拍环形脉冲分配器, 在V400 1 ~V400 6产生的六拍时序脉冲的作用下, M1 0、M1 1和M1 2的通电顺序为: M1 0→M1 0、M1 1→M1 1→M1 1、M1 2→M1 2→M1 2、M1 0。步进电机的正反转控制用 4个控制开关实现,Q0 3作X轴正转开关, Q0 3=1正转, Q0 4作X轴反转开关, Q0 4 = 1反转, Y轴类似, 用Q0 5和Q0 6。用Q2 7、Q2 6和Q2 5输出控制信号到X轴步进电机XA、XB和XC三相, 当Q0 3闭合时X轴正转, X步进电机的通电顺序为A→AB→B→BC→C→CA→A, 循环。即:Q2 7→Q2 7、Q2 6→Q2 6→Q2 6、Q2 5→Q2 5→Q2 5、Q2 7→Q2 7, 循环。当Q0 4闭合时X轴反转, X步进电机的通电顺序为B→BA→A→AC→C→CB→B, 循环。即:Q2 6→Q2 6、Q2 7→Q2 7→Q2 7、Q2 5→Q2 5→Q2 5、Q2 6→Q2 6, 循环。将以上时序脉冲的产生及脉冲分配各控制元素的状态总结为表 1。相应的脉冲分配梯形图见图 4所示。表 1 PLC脉冲分配控制元素状态V400 1V400 2V400 3V400 4V400 5V400 6 M1 0 M1 1 M1 2Q0 3=1 (正转) Q0 4=1 (反转)Q2 7 Q2 6 Q2 5 Q2 7 Q2 6 Q2 5A相B相C相A相B相C相第 1拍 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0第 2拍 0 1 0 0 0 0 1 1 0 1 1 0 1 1 0第 3拍 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0第 4拍 0 0 0 1 0 0 0 1 1 0 1 1 1 0 1第 5拍 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1第 6拍 0 0 0 0 0 1 1 0 1 1 0 1 0 1 13 3 PLC控制程序图 4 软件脉冲分  配梯形图PLC采用报文接收方式接收PC机实时传送来的数据, 接收到的数据存入缓冲区VB100。初始化程序中已用中断连接指令ATCHINT_0, 23将报文接收完成中断(中断号为 23 ) 连接到用户中断处理程序INT_ 0。PLC每接收到一次PC机传送的数据, 响应一次中断并立即执行用户中断处理程序INT_ 0。在中断处理程序中首先对接收到的数据进行判断, 根据VB102中的值判断是X或Y轴朝正、负哪个方向运动, 并将此次运动方向开关Q0 3 ~Q0 6之一置逻辑 1。然后根据VB101中的值判断是X或Y轴的哪个轴运动, 如是X轴运动, 则X轴计数一拍 (无论是+X方向还是-X方向 ),

1 2

问答

我要提问