首页 上一页 1 2 3 下一页 尾页

用ST语言写的分期付款功能块,包含大部分ST语法。 点击:2121 | 回复:41



solidgzq

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 30回
  • 年度积分:21
  • 历史总积分:280
  • 注册:2011年6月29日
发表于:2016-10-09 17:28:12
楼主

用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等,多重嵌套的时候一目了然。



这边好难增加积分,发给来赚点积分





正在下载,请等待……
下载附件需3积分!



工控网88

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2743回
  • 年度积分:286
  • 历史总积分:627
  • 注册:2019年8月17日
发表于:2024-11-20 14:50:28
41楼

感谢楼主

回复本条

    

热门招聘
相关主题

官方公众号

智造工程师
    
    首页 上一页 1 2 3 下一页 尾页