内容发布更新时间 : 2024/11/17 5:24:00星期一 下面是文章的全部内容请认真阅读。
6.2.1功率驱动软件编程思想
随着电力电子技术的进步,发展了许多新的电机控制方法,其中PWM(脉宽调制)是最常用的一种调速方法,本次设计也是采用PWM实现电机的调速。
因为PLC的输出电压是DC24V,与电动机的额定电压相等,所以可以直接控制电动机的起停,本次设计使用的S7-200PLC有一个高速脉冲输出指令,通过编程设置它的控制字节就可以使S7-200PLC的输出点Q0.0或Q0.1输出脉宽可调的波形,脉冲宽度的改变是通过S7-200PLC自带的模拟电位器来实现的。设计中,设置PWM波的周期和脉宽的增量单位为微秒(us),为了增大可调范围,设周期值为最大值65535us(即PWM波的频率约为15.26Hz),对于PWM波的宽度(即占空比)的调节(即对电动机转速的调节)是通过特殊存储器的SMW28来实现的,SMW28中的数字分别对应于模拟电位器0和模拟电位器1动触点的位置,在STOP/RUN方式下,每次扫描时更新该值。这种周期时间保持常数,变化脉冲宽度的PWM操作称为PWM的同步更新,波形特性的变化发生在周期边沿,这样可为每一个PWM波提供平滑过渡。
主程序开始6.3控制系统测速软
6.3.2控制系统测速软件流
(一)测速软件主程序
首次扫描SM0.1件
程图 流程图
执行子程序2主程序结束
图6-7 测速软件主程序流程图
(二)测速软件子程序2、中断程序流程图
中断程序INT_0开始子程序2开始VD0记录HSC0中累加的数据,VB8记录累加次数将VD0(累加数据)和VB8(记录累加次数)置0把HSC0当前值清零重新设置其控制字节设置HSC0控制字节、工作模式当前值、预置值执行HSC指令执行HSC指令使设置生效N累加次数VB8=25?N设置定时中断事件50ms到否?Y求累加次数的平均值Y执行中断INT_0将脉冲数转换成转速放到VW20中子程序2结束中断程序INT_0结束图6-8 测速软件子程序2、中断程序流程图
6.3.3控制系统测速软件编程
主程序中用特殊存储器标志位SM0.1在首次扫描时调用高速计算器的初始化子程序2,选用PLC内部编号为0的高速计算器HSC0,使它工作在0模式下,设置它的计数方向为增计数,并且允许更新它的计数方向和当前值,设置高速计数器每20ms执行一次中断程序(即高速计数器的计数频率约为14.29Hz),读出高速计数器的数值后将其置0,并且把每次所读的数据累加起来放入VD0中,在中断程序中执行到规定次数24次时,乘以一个修正系数12,根据M法测速原理就得到了电动机的转速值,把这个值放入一个字存储单元VW20中,等待扫描显示。
1、测速软件主程序编写
Network 1 //调用高速计数器初始化子程序
LD SM0.1
CALL SBR3 //调用高速计数器初始化设置的子程序2
2、高速计数器初始化子程序 Network 1
LD SM0.0 //SM0.0总是为ON
MOVD +0, VD0 //将用于记录累加数据的中间
变量VB8置0
MOVB 0, VB8 //将记录累加数据次数的中间
变量VB8置0
HDEF 0, 0 //选用高速计数器HSC0,工作模式为0 MOVB 16#DC, SMB37 //设置高速计数器HSC0
的控制字节
//更新当前值、预置值、记数方向 //采用加记数
MOVD +0, SMD38 //设置HSC0初始值寄存器SMD38为0 MOVD 16#FFFF, SMD42 //设置HSC0的预置值为最大值 MOVB 50, SMB34 //设定定时中断事件的时间为50ms ATCH INT0, 10 //将定时中断事件与中断处理 程序INT_0建立关联 //允许全局中断
HSC 0 //对HSC0编程
3、中断程序的编写
Network 1 //启用高速脉冲计数器
LD SM0.0 //中断处理程序每隔70ms
扫描刷新一次
+D HC0, VD0 //将HC0的记数当前值
与累加数据累加
INCB VB8 //采用整数递增指令,记录累加次数 MOVD +0, SMD38 //清HC0的当前值
MOVB 16#CC, SMB37 //重新设置HC0控制字节
//允许更新当前值和计数方向
HSC 0 //执行HSC指令
Network 2 //把高速计数器中的脉冲数转换为转速并输出
LDB= VB8, 25 //累加次数=25时,执行网络2程序 *D 16, VD4 //将脉冲数计数转换成转速送入VW10
DTI VD4, VW10
MOVW VW10, VW20
IBCD VW20 //将转速转换成BCD码存入VW20 MOVB 0, VB8 //累加次数VB8清0,便于下次
数据的累加
MOVD +0, VD0 //将用于累加数据的中间变量VD0置0
6.4控制系统扫描显示软件
目前常用的显示元件大多为LED,设计用的电动机的额定转速为2700r/min,所以用四个LED组成一个四位显示电路来显示电动机的转速。 6.4.1扫描显示软件编程思想
霍尔传感器把电机转速以脉冲的形式送给PLC高速计数器,经过计算转换成转速,放入PLC字存储器VW20(16位)中。根据硬件电路设计要求,需要8个输出信号,4个用于74LS48译码器的输入端,另外4个用于数码显示管的4个选通位(高电平有效)。本设计所用PLC的数字量输出模块的输出端口有8个(即QB2:Q2.0~Q2.7),这样可以根据实际控制情况,把VW20中的16位分成4个四位的数,从高到低依次送入数码管的最高位、次高位、次低位、最低位(即依次作为转速显示的千位、百位、十位、个位的数值),分别从Q2.0、Q2.1、Q2.2、Q2.3输出,作为74LS48的输入,Q2.4~Q2.7按次序依次作为数码管四位转速值的选通位,即把16#10放入一个字节存储单元后,与VW20中的最低四位通过“或”指令放到一起组成一个新8位数从QB2中输出,这样只要VW20中的数被扫描后,与它同步变化的选通位就会控制该位的数的显示了,VW20中的其它3个四位数从低到高分别与16#20、16#40、16#80组成新的8位数从QB2中输出,这样就能实现不同位的数由相应的选通位来控制了。
本次设计的扫描程序是实时扫描显示的,由PLC的数字量输入开关I0.4来控制扫描显示程序的开通与关断。一个循环扫描显示周期为45ms,转速值从低位到高位依次扫描显示,每一位的时间间隔为10ms,程序的循环扫描显示是由两个定时器来控制实现的,一个控制停止扫描,把各存储单元的清零,5ms后,另一个定时器启动,开始下一次扫描。