跟我一起玩200smart PLC
200 smart PLC自2012年7月30日推出市场以来,受到用户的关注度与日俱增,在小型机范畴应用中其卓越的性价比和不断推出的新功能直面用户、方便用户。
今天来做模拟正弦波输出的程序,了解及应用定时中断的使用。200smart PLC硬件固化有2个定时中断,其中,分别是定时中断0(SMB34)中断事件号10和中断1(SMB35)中断事件号11,定时中断时间设置范围1~255mS,在众多中断中优先级是最低的,一个中断事件号允许连接多个中断子程序。
编程思路:
定义一个定时中断(SMB34),中断时间设置为10mS,连接一个中断事件对应的中断子程序并开启中断。主程序用沿触发调用或者采用SM0.1标志位初始化调用,在定时中断中编辑数值累加,由起始的0逐渐累加到27648,模拟量输出最大值,当到达最大值后逐渐下降到0;然后继续由0逐渐下降到-27648,模拟量输出最小值,继续回升到0的过程。其中,递增或者递减按一个中断数值增、减27.648,完成一个正弦波需要的时间大概为40秒。注:如果按工频50HZ计算,一个完整的正弦波所需的时间为20mS。
程序:
初始化定时中断:
主程序调用中断:
定时中断子程序:
程序解释:
主程序调用定时中断后,中断子程序按每10mS调用一次中断连续循环。进入定时中断时,首先执行网络段2的程序,VD0由0值开始按每10mS递增27.648一个数值。当VD0值上升大于27648时(相当于中断执行1000次,10秒)置位M0.0。断开网络段2的程序,执行网络段3的程序,VD0由27648按每10mS递减,一直递减到-27648止,复位M0.0(相当于执行中断2000次,20秒)程序返回到网络段2,一直将数值上升到置位条件满足止,完成整个模拟正弦波过程用时40秒,这样连续循环。
中断程序一般使用在要求一个相对稳定的时间常数下相关数据采集;计数等。如模拟量平均值计算、判断A/B相编码器的旋转方向、流量的积算、PID控制等应用十分广泛。