恭喜,你发布的帖子
发布于 2016-01-18 18:08:43
33楼
最近在看老外写的程序,其中学到最基本的编程手法便是指针循环,也发觉要是做大型的系统,指针也是必不可少的,现贴出我写的供你参考。
定义一个FB块,输入变量IN分别有DB类型的i_DB,此处是用来读你的DB块,还有布尔型的i_IO,用来读你的脉冲,另外还需定义静态变量,分别有s_IO、s_FP、s_Copy_FP,这些都是布尔型,s_Shift为Int型,假设你的DB块数据从地址0开始,那么s_Shift的初始值也定义为0,若为A值,则相应地定义为A,以此类推,好了,开始:
OPN #i_DB
A #i_IO
= #s_IO
A #s_IO
FP #s_Copy_FP
= #s_FP
A #s_FP
JCN AA99
L #s_Shift
SLW 3
LAR1
L DBD [AR1,P#0.0]
T MD100
L #s_Shift
L 4
+I
T #s_Shift
//the maximum length of DB is assumed to be 400(原则上来说所有的注释都是应该用英文来表达的,鉴于大家英文水平不统一,我用中文再说一遍好了。此处是做一个判断,当偏移位s_Shift超过DB的最大地址位400时(假设的),则重新初始化s_Shift,以此又来重新搜寻一遍DB块)
L #s_Shift
L 400
>I
JCN AA99
L 0
T #s_Shift
AA99: NOP 0
如果你想做更为大型的系统,而碰巧项目要用stl的话,强烈建议学习西门子的《STEP7指针编程》,这是最为基础也最有用的。
请填写推广理由:
分享
只看
楼主