博图wincc中一个变量按一定的时间间隔,取不同的值应该怎么做?

博图wincc中,一个变量要按不同的时间间隔依次取值,要怎么实现?变量在0时刻取值x1,经过t1时刻后取值x2,经过t2时刻后取值x3......这样的功能需要怎么实现嘞??

问题补充:
主要是为了实现一个运动序列,希望机构可以在时刻0的时候初始位置x1,停留t1时间后,运动到x2位置,停留t2时间后,运动到x3位置......采用的是wincc+simotion,不太明白如何通过wincc向simotion传递这个运动序列

最佳答案

此回答已完善

你这样做的目的是要实现什么功能?我感觉你的这个功能用plc来做更合适。

补充:T0时刻如果不在x1位置怎么办?需要回到T1吗?
启动按钮计时变量清零,比如你的脚本1s执行一次,那么脚本中用vbs:
dim start,start_sav, runtime,srun,T_sp(10)
start=hmiruntime.tags("Bstart").read
start_sav=hmiruntime.tags("start_backup").read
runtime=hmiruntime.tags("runing_time").read
T_sp(0)=hmiruntime.tags("T0").read
T_sp(1)=hmiruntime.tags("T1").read
T_sp(2)=hmiruntime.tags("T2").read
T_sp(3)=hmiruntime.tags("T3").read
T_sp(4)=hmiruntime.tags("T4").read
T_sp(5)=hmiruntime.tags("T5").read
T_sp(6)=hmiruntime.tags("T6").read
T_sp(7)=hmiruntime.tags("T7").read

if start and not start_sav then
runtime=0
srun=1
end if
start_sav=start
if srun then
runtime=runtime+1
end if
if runtime>T_sp(0) then
发送移动到x1的指令
end if
if runtime>T_sp(1) then
发送移动到x2的指令
end if
if runtime>T_sp(2) then
发送移动到x3的指令
end if
。。。。。。。。。。
if runtime>T_sp(7) then
srun=0
end if
hmiruntime.tags("Bstart").write start
hmiruntime.tags("start_backup").write start_sav
hmiruntime.tags("runing_time").write runtime

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午2:34
下一篇 2021年7月5日 下午2:34

相关推荐

发表回复

登录后才能评论