分享一个稳定的上电擦除程序(S71500),FirstScan系统时钟存储器配合Reset_BF
当设备、产线、教学仪器更新了硬件,但是地址没有发生改变,图纸没有大动的情况下,只要重启PLC,不用操作任何东西,PLC即可自动擦除M区,计数器,定时器,及FB块,FC块的状态和缓存; 2 设备发生了故障,机械卡壳,断电硬件修复后,重新启动电源,设备能自动进入就绪状态,自动擦除M区,计数器,定时器,及FB块,FC块的状态和缓存; 3 在模式切换的时候,例如我写了一个手动程序,写了一个自动程序,如何保证我的手动程序运行的时候和运行之前,自动程序自动被擦除完成,反之亦然,执行自动时,手动也被擦除干净。
就好像我们去就餐厅吃饭,每次吃饭都是干净的碗筷,桌面和环境,如果碗筷不干净,环境不整洁,我相信大家是不太愿意去这家餐厅就餐的,心情也不会很好,所以对于我们的PLC来说,每次执行程序,或者重新启电的时候,我们需要给MIAN(OB1)块洗一个澡,让他干干净净的干活!说了这么多,具体怎么干,接着往下看↓↓↓
将FirstScan触点配合Reset_BF指令写入一个FC块内,这个块内尽量不要写入其他的程序,例如下图:
工作过程:PLC上电,状态由STOP(停止)转入RUN(运行)的第一个扫描周期,FirstScan M1.0闭合,执行RESET_BF复位位域程序,RESET_BF这个指令,在其上方输入需要复位的第一个点,在下方写入复位的个数,例如,我们在上方写入了M1.4,为什么写要从M1.4开始复位呢,因为系统时钟和字节占用了一些位数,所以从M1.4开始,见下图:
那么我们接着说,在第二行,我们还是执行RESET_BF复位位域程序,用来复位所有的Q点,Q点这个好算,你设备上是多少个Q点,就写多少个Q点,关键在于M点的计算,因为上电复位的时候,如果要保留一些负载和状态,那么就需要恰到好处的计算好。
这时候你可以列出一张配置表,基本上我每次编程的时候都会用到这个表:
在复位的时候,你可以自己配置一下这个表,常规点如果用M1.4-M400.0,那么你就可以像我一样,复位3195就可以了,因为M0.0到0.7这是一组,每一组是8位,M1.0到M400.0一共是400组,400组 X 8位=3200位,减去M1.0-M1.4一共5位,所以一共复位3200-5=3195位。由此就得来我们的复位公式当中,为什么在第一个RESET_BF复位位域的下方写入3195。
MW建议2组一用:例如你用了MW900,那么你下一个就用MW902
MD建议4组一用:例如你用了MD900,那么你下一个就用MD904
PLC上电,状态由STOP(停止)转入RUN(运行)的第一个扫描周期,FirstScan M1.0闭合,执行RESET_BF复位位域程序,两个传送指令将复位程序写入G120变频器,所以对于技能大赛和中小型产线,准确的计算出需要复位的M点和Q点,配合FirstScan,就能在PLC状态由STOP(停止)转入RUN(运行)的第一个扫描周期完成一次机器复位。如果需要按下某个按钮实现擦除程序,那只需要把前面的FirstScan触点更换为按钮的地址就可以了。记得在按钮后面加入上升沿,只执行一个扫描周期!你也可以在FirstScan下面并联(OR)一个标志位(脉冲型),当每次你需要擦除的时候,激活一下这个标志位,就能快捷实现擦除功能!
大家打开博途,在自己的程序算一算,试一试吧!