登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:长定时子程序调用完怎么不能清零呢

点击:327 回复:3

长定时子程序调用完怎么不能清零呢
子程序每次执行完,不能把内部变量清零,
请大佬帮分析一下表情表情
附件为原程序
附件 0a1.jpg
附件 0a2.jpg
23-08-25 19:42
附件:定时器230825-3.rar
[本地下载]
23-08-25 19:44
2楼
该帖内容不符合相关规定!
23-09-18 15:56
A)主程序段2中的:【VD0 为小时,VD4 为分钟】以及段6中的【VD16 为小时,VD20 为分钟】是不是设定时间?【VD12为显示秒数】,【VD28为显示秒数】则为剩余时间?
 如果是设定时间:乘法运算转为秒的积,就不能再用VD0、VD4(VD16、VD20)了,由于这两个【积】是数学运算的中间值,即:计算过程的临时变量,可以用AC或LD;
B)Time0820(SBR1)是:可以重复调用的带参数子程序。
1、内秒、内分、内时,为当前计时值吧?数据的 变量类型不能用TEMP,应采用IN_OUT 变量类型,并在掉电保持的V区分配相应地址;子程序调用时:先将保存在V区的历史数据读入子程序,子程序执行结束后,再将新值传送出来保存。多次调用时,每个调用均有其当前计时数据值的专用保存地址(V区),不相互影响。
2、Time0820(SBR1)的输入脚【条件】是用于【复位】当前计时值的 内时、内分、内秒的吧?
 其实,没必要复位 内分转秒、内时转秒、内时分转秒和、内总秒和。只需将程序段2的计算条件,由【启动】改为SM0.0即可。
3)Time0820(SBR1)子程序中,不要使用沿指令。可重复多次调用的子程序中,不要使用沿指令。可在主程序中增加一个程序段,用沿指令获得秒脉冲,在子程序中直接使用该秒脉冲(如:M31.0)即可。
如M31.0为秒脉冲:
LD     SM0.5
EU
=      M31.0
23-11-27 15:24

工控新闻

更多新闻资讯