我的设备上用的是增量型360编码器,我将编码器0位信号接在I0.2上,用I0.2取非来启动高速计数功能块,这样每转一周角度值CV就清零一次,我用比较功能跨将CV值和我需要的设定值进行比较,来控制每个动作的输出起始及结束角度。但是CV是由高速计数功能块输出的,即使放在掉电保持区里面也无法保持。于是我做了这样一个程序:
1、用I0.2给中间变量M1置位
2、变量M1同时触发两个MOVE使能运算符,将CV分别覆值给CV1和CV2,并将CV2放在掉电保持区
3、变量M1取非,触发使能运算符ADD,使CV+CV2=CV1
正常运行的时候只要经过了I0.2,那么M1始终是置位的,CV值就不断地覆值给CV1和CV2,掉电后CV2的值被保存(掉电保持区),再次上电后,在未运行到I0.2的时候,高速计数已启动,但是CV已经被清零,CV1的值就是把CV2保存的值加上CV,即从CV2开始+1+1。。。。。,直到运行到清零信号I0.2,此时M1置位,加法运算不再进行,MOVE开始运行,CV1的值就是当前CV值,我们就可以用CV1的值作为当前角度值来控制输出了。