用SFB4做时间累积问题

设定运行时间48小时,48小时到后切换泵,在SFB4的ET脚连接变量MD0
编程:
L   MD0
L   L#3600000
/R
T   MD4
刚开始运行时间是正常的,但随着时间增加,到MD0大于12小时时,MD4就已经超过20小时了,请问哪出错了,该怎么改,谢谢

最佳答案

1、程序有问题。参加算术运算的双方变量的数据类型必须一致!如果两者均为长整数必须应用/D(长整数除法)。
L   MD0    //取 MD0 内容
L   L#3600000   //取32位长整数3600000
/R       //上述两者相除,注意!如果上述两者均为长整数必须应用/D(长整数除法)
T   MD4
2、如果两者均为实数(浮点数)可应用/R(浮点数除法)。如果是实数(浮点数),则程序可以为:
L   MD0    //取 MD0 内容
DTR  //如果MD0 内容为实数(浮点数),必须应用DTR 指令转为实数(浮点数)。
L  3600000.0   //取实数(浮点数)3600000.0 常数。
/R       //上述两者相除,注意!如果上述两者均为长实数(浮点数)必须应用/R(浮点数除法)。
T   MD4
3、注意!在STEP7中参加算术运算的双方变量的数据类型必须一致!否则结果是不正确的。

提问者对于答案的评价:
谢谢阿鸣老师、RENHQ、WWCWWC,帮我解决问题

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月19日 下午6:11
下一篇 2017年6月19日 下午6:12

相关推荐