用ST语言写的分期付款功能块,包含大部分ST语法。有详细注释。
里面上升沿,IF,while,for,循环里面嵌套等语法都有用到。
里面3U和5U用的都有,由于ST语言的,天然可移植性,把特殊M和D改成SM,SD直接复制就可以了
IF ANDP(1,开始计算) THEN (*计算激活日期N天后是几月几日*)
D8000 := 2000;
DAYi0 := 激活日期日;
MONi0 := 激活日期月;
YEARi0 := 激活日期年;
FOR DAYi:=1
TO 停机天数 BY 1 DO
DAYi0:=DAYi0+1;
IF DAYi0 > 月份[MONi0] THEN
DAYi0 := 1;
MONi0 := MONi0+1;
IF MONi0 > 12 THEN
MONi0 := 1;
YEARi0 := YEARi0+1;
IF YEARi0 MOD 4=0 AND YEARi0 MOD 100 <> 0 OR YEARi0 MOD 100 = 0 THEN
月份[2]:=29;
ELSE
月份[2]:=28;
END_IF;
END_IF;
END_IF;
END_FOR;
END_IF;
开始用这个按天累加的写法,3U运行时变量DAYi累加到2000多就已经出发200ms的看门狗报警了
后面改成按月累加的方式写法复杂写,但是运算周期就小了很多了。
3U变成5U,绝对不是运算速度65ns到34ns那点提升,感觉快了几倍都有。
不过GX works2有个优点,可以看编译结果显示,可以用不同的ST语法看有多少行代码,改善自己的写法
就这些都有1千行的代码
GX works3的优点就是知道缩放IF END_IF,for END_FOR等,多重嵌套的时候一目了然。
这边好难增加积分,发给来赚点积分