1 龙门刨床机械传动控制要求 图1 往返式机械传动示意图
2 龙门刨床机械传动PLC控制系统硬件设计 2.1 系统对变频器控制要求 变频器正反转由继电器K1、K2控制,速度切换由继电器K3、K4完成。变频器故障报警输出触点(30A、30C触点)用于立即停止高速计数器运行,并由指示灯HR指示。 变频器具有多段速度设定功能,当K3、K4两个继电器触点都断开时,高速行驶({dy}速度);K3闭合,K4断开时,中速行驶(第二速度);K3断开,K4闭合时,低速行驶(第三速度);K3、K4都闭合时,手动调节行驶(第四速度)。 旋钮SF用于手动/自动切换,并用指示灯HG1表示自动状态。手动时,能够按钮SA1(电机正转)和SA2(电机反转)手动调节传动系统位置。 按钮SA用于传动系统自动状态下启动/停止控制。采用“一键开关机”方式实现启动/停止控制,用指示灯HG2表示启动状态。 行程开关SQ用于自动启动时,确定传动系统原点位置,自动停止时,传动系统必须返回原点。行程开关SQ1、SQ2用于传动系统两端限位,确保传动系统不能脱离设备。 2.2 PLC系统硬件系统构成及连接 实现对龙门刨床机械传动xx定位,本系统采用PLC作为控制器,变频器进行速度调节,采用光电编码器和PLC高速计数器进行定位控制。龙门刨床机械传动控制要求,系统中有开关量输入点8个,开关量输出点7个,光电编码器A相输入一个,选用SIEMENSCPU224作为控制器,其I/O点分配及系统接线如图2所示。 图2 龙门刨床机械传动PLC控制系统接线图
PLC梯形图程序设计包含主程序(用于实时调用手动子程序SBR_0和自动子程序SBR_1)、子程序SBR_0(用于实现对系统手动控制)和SBR_1(用于实现对系统自动控制)和中断处理程序INT_0程序(用于处理高速计数器计数当前值到达不同预置值处理)。篇幅所限,以下将以中断处理程序INT_0程序为例,说明变频器对速度控制和调节。其梯形图如下。 4 梯形图设计过程中要注意几个关键问题 4.1多次更改高速计数器中断和预置值实现多点定位 实现多点定位控制关键包括两点,{dy}点是设置高速计数器中断事件12(计数器当前值=计数器预置值),另一点就是中断处理程序中更改高速计数器预置值。 定位控制需要测量定位点与原点距离,然后将单位距离(mm)转换成脉冲量,光电编码器和PLC高速计数器记录脉冲量变化。本系统中,光电编码器机械轴和电动机同轴。传动比=10,用于驱动设备传动辊直径=100mm,光电编码器每转脉冲数=600个/转。可以计算出每毫米距离脉冲数为: 每毫米距离脉冲数=600÷(10×100×3.14)≈0.19108脉冲/mm 定点位和预置值比较,必须采用高速计数器中断方式,而不能采用一般比较指令。一般比较指令无法捕捉高速变化事件。 ,必须ATCH和ENI指令将高速计数器中断事件号12((计数器当前值=计数器预置值)与中断处理程序INT_0连接。中断处理程序INT_0中,到达预置值时,重新装载下一次预置值,并执行工艺要求继电器输出,处理变频器运行速度。 自动子程序SBR_1中,将高速计数器HC0设置为单相计数输入,没有外部控制功能。原点和终点更改计数方向,便于中断处理程序INT_0判断变频器运行方向。 4.2 中断处理程序INT_0中不能使用等于比较指令 一个中断处理程序INT_0中判断处理多个预置值。需要比较指令和计数方向来判断目前高速计数器计数当前值哪个阶段,判断来决定执行那一段指令。,判断不能使用等于比较指令,应该使用大于或小于指令判断。 尽管中断事件(计数器当前值=计数器预置值)发生时,PLC立即中断当前主程序、子程序,执行中断处理程序INT_0中指令。,中断处理程序INT_0中,PLC仍然是逐条逐行扫描机制执行。而高速变化计数值不可能和中断处理程序执行同步,采用等于比较指令,PLC执行中断处理程序时,可能会错过等于值,使PLC中断处理程序中无法判断设备运行到哪个阶段。 4.3 自动运行时,高速计数器初始值寄存器写入必须禁止 多点定位需要多次装载预置值,写入预置值必须执行HSC指令。 执行HSC写入指令,不单单是写入预置值,控制字节中不加以限制,初始值寄存器SMD38中值同样写入。而SMD38=0,这样,就会使高速计数器计数当前值置0。,自动运行时,必须设置控制字节SMB37第七位SM37.6为0,装载预置值时,禁止写入初始值。 ,高速计数器初始设置和返回原点重新开始运行时,又必须写入初始值,使初始值置0,避免机械原因带来误差。,控制字节必须多次修改。遵循原则是:允许写入初始值、执行HSC指令后,必须马上修改控制字节,禁止初始值写入,并再次执行HSC指令,中间不能有其它指令存。 4.4 多点定位输出线圈尽量采用立即指令 采用高速计数器进行多点定位,主要xx定位。定位精度既决定于高速计数器测量,同时也决定于执行机构执行快速性。 采用普通输出指令,一个扫描周期程序执行阶段,改变仅仅是输出映像存储器,PLC输出点不会立即刷新,程序执行完毕后,PLC输出映像存储器才能对输出点刷新,执行输出。 增加定位精度,尽量采用立即输出指令。立即输出指令不受PLC扫描周期阶段限制,改变输出映像存储器同时,立即刷新PLC输出点。 4.5自动/手动程序采用For-Next循环指令和子程序指令实现 本系统中自动/手动功能采用For-Next指令和子程序指令实现。自动程序和手动程序实际上就是两个循环指令循环体。而循环指令仅执行一次循环扫描刷新。 手动子程序SBR_0和自动子程序SBR_1用于整个程序分段,便于程序理解,增加程序可读性。For-Next循环指令作用是使输出线圈能够重复使用,简化程序。 中断处理程序:INT_0 当变频器正向运行(由SM36.5判断,增计数为正向运行,SM36.5=1),高速计数器当前值等于19108(1000mm)时,继电器K3(Q0.2)、K4(Q0.3)断开,变频器速度设定为高速正向行驶({dy}速度)。同时将高速计数器预置值更改为57325(3000mm)。 当变频器正向运行,高速计数器当前值等于59325(3000mm)时,继电器K3(Q0.2)断开、K4(Q0.3)接通,变频器速度设定为低速正向爬行行驶(第三速度)。同时将高速计数器预置值更改为61146(3200mm)。 当变频器正向运行,高速计数器当前值等于61146(3200mm)时,表明达到终点,继电器K1(Q0.0)、K2(Q0.1)、K3(Q0.2)、K4(Q0.3)全部复位断开,变频器立即停止运行。同时,发出终点到达信号M0.1,让子程序SBR_1处理停顿2s时间,并由SBR_1处理反向运行设置。 当变频器反向运行(由SM36.5判断,减计数为反向运行,SM36.5=0),高速计数器当前值等于3822(200mm)时,继电器K3(Q0.2)断开、K4(Q0.3)接通,变频器速度设定为低速反向爬行行驶(第三速度)。同时将高速计数器预置值更改为0。 当变频器反向运行(由SM36.5判断,减计数为反向运行,SM36.5=0),高速计数器当前值等于0时,表明变频器返回到达原点。继电器K1(Q0.0)、K2(Q0.1)、K3(Q0.2)、K4(Q0.3)全部复位断开,变频器立即停止运行。同时,发出原点到达信号M0.0,让子程序SBR_1处理停顿2s时间,并由SBR_1处理正向重新运行设置。 本文创新点: 往返式传动控制系统多点定位是一个较难解决问题,本系统采用PLC作为控制器,变频调速,利用光电编码器和PLC高速计数器进行定位控制,克服了往返式传动控制系统中机械惯性作用给系统带来定点误差,实现了xx定位。 |