s7-200 smart程序块调用的问题

我想在子程序里面做一个块,然后在主程序里多次调用这个块,我知道块程序里面不能用上升下降沿指令,还需要注意什么事项,块程序里面能用定时器指令码?希望工程师帮一下忙,解答一下,非常感谢。

钻石用户推荐最佳答案

不能够用沿的目的是200及200smart的沿看似没有沿记录的标记位,但是有沿个数的限制,根据沿应用原理,一个沿被触发过必须要有一个位来记录沿触发的过程值。当将沿应用到需要多次调用的子程序时,同样一个沿被多次调用时,这个沿的状态记录位同样会被反复刷新,一个位值如果被反复刷新,那这个不是真值,程序会出错。
同样原理,一个普通定时器,当子程序被多次调用时,因为西门子定时器一旦被触发,定时器将一直运行到数据32767这个值。而被多次调用时,定时器无法正常工作的原因是定时器一旦被重新使能时,定时器会自0重新计时。
一般解决办法:
1)沿指令移除到管脚外侧应用;
2)定时器用脉冲加1的方式累计,累计值再与设置值比较。
3)子程序形参也是有限制的,如果大于16个如何处理?巧用指针方式或者调用多个子程序,这里理解为子程序调用子程序的方式。
4)如果在子程序中需要调用中间处理过程值temp,这个临时变量需要先赋值后使用的原则。

提问者对于答案的评价:

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc279523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日 下午6:01
下一篇 2020年10月30日 下午6:01

相关推荐

发表回复

登录后才能评论