的中断程序。
6.2.4 程序举例
【例6-1】编写由I0.1的上升沿产生的中断事件的初始化程序。
分析:查表6-2可知,I0.1上升沿产生的中断事件号为2。所以在主程序中用ATCH指令将事件号2和中断程序0连接起来,并全局开中断。程序如图6-1所示。
【例6-2】编程完成采样工作,要求每10ms采样一次。
分析:完成每10ms采样一次,需用定时中断,查表6-2可知,定时中断0的中断事件号为10。因此在主程序中将采样周期(10ms)即定时中断的时间间隔写入定时中断0的特殊存储器SMB34,并将中断事件10和INT-0连接,全局开中断。在中断程序0中,将模拟量输入信号读入,程序如图6-2所示。
【例6-3】利用定时中断功能编制一个程序,实现如下功能:当I0.0由OFF→ON,Q0.0亮1s,灭1s,如此循环反复直至I0.0由ON→OFF,Q0.0变为OFF。
程序如图6-3所示。
6.2.5 中断程序编程实训
1. 实训目的
(1)熟悉中断指令的使用方法。 (2)掌握定时中断设计程序的方法。 2. 实训内容
(1)利用T32定时中断编写程序,要求产生占空比为50%,周期为4s的的方波信号。 (2)用定时中断实现喷泉的模拟控制,控制要求如【例5-7】。 3. 参考程序
(1)产生占空比为50%,周期为4s的的方波信号,主程序和中断程序如图6-4所示。
(2)喷泉的模拟控制参考程序如图6-5所示。
分析:程序中采用定时中断0,其中断号为10,定时中断0的周期控制字SMB34中的定时时间设定值的范围为1-255ms。喷泉模拟控制的移位时间为0.5s,大于定时中断0的最大定时时间设定值255ms,所以将中断的时间间隔设为100ms,这样中断执行5次,其时间间隔为0.5s,在程序中用VB0来累计中断的次数,每执行一次中断,VB0在中断程序中加1,当VB0=5时,即时间间隔为0.5s,QB0移一位。
4. 输入并调试程序
用状态图监视程序的运行,并记录观察到的现象。
6.3 高速计数器与高速脉冲输出
前面讲的计数器指令的计数速度受扫描周期的影响,对比CPU扫描频率高的脉冲输入,就不能满足控制要求了。为此,SIMATIC S7-200系列PLC设计了高速计数功能(HSC),其计数自动进行不受扫描周期的影响,最高计数频率取决于CPU的类型,CPU22x系列最高计数频率为30KHz,用于捕捉比CPU扫描速更快的事件,并产生中断,执行中断程序,完成预定的操作。高速计数器最多可设置12种不同的操作模式。用高速计数器可实现高速运动的精确控制。
SIMATIC S7-200 CPU22x系列PLC还设有高速脉冲输出,输出频率可达20KHz,用于PTO(输出一个频率可调,占空比为50%的脉冲)和PWM(输出占空比可调的脉冲),高速脉冲输出的功能可用于对电动机进行速度控制及位置控制和控制变频器使电机调速。
6.3.1 占用输入/输出端子
1. 高速计数器占用输入端子
CPU224有六个高速计数器,其占用的输入端子如表6-5所示。
表6-5 高速计数器占用的输入端子
高速计数器 HSC0 HSC1 HSC2 HSC3 HSC4 HSC5 使用的输入端子 I0.0, I0.1, I0.2 I0.6, I0.7, I1.0, I1.1 I1.2, I1.3, I1.4, I1.5 I0.1 I0.3, I0.4, I0.5 I0.4 各高速计数器不同的输入端有专用的功能,如:时钟脉冲端、方向控制端、复位端、起动端。
注意:同一个输入端不能用于两种不同的功能。但是高速计数器当前模式未使用的输入端均可用于其他用途,如作为中断输入端或作为数字量输入端。例如,如果在模式2中使用高速计数器HSC0,模式2使用I0.0和I0.2,则I0.1可用于边缘中断或用于HSC3。
2. 高速脉冲输出占用的输出端子
S7-200有PTO、PWM两台高速脉冲发生器。 PTO脉冲串功能可输出指定个数、指定周期的方波脉冲(占空比50%);PWM功能可输出脉宽变化的脉冲信号,用户可以指定脉冲的周期和脉冲的宽度。若一台发生器指定给数字输出点Q0.0,另一台发生器则指定给数字输出点Q0.1。当PTO、PWM发生器控制输出时,将禁止输出点Q0.0、Q0.1的正常使用;当不使用PTO、PWM高速脉冲发生器时,输出点Q0.0、Q0.1恢复正常的使用,即由输出映像寄存器决定其输出状态。
6.3.2 高速计数器的工作模式
1. 高速计数器的计数方式