搬家第31天-citect2018制作管道介质流动效果

在论坛上看到有人提问如何在citect中制作管道介质的流动效果,以前在wincc中实现过,citect没有wincc那么丰富的功能,但也是可以实现的,此文介绍的方法不是唯一的,也未必是最优的,但可以做出相应的效果。

 
假设pump1在运行时,管道内介质流动,需要有动画效果。先在unity中硬件组态,新建一个变量pump1_running,地址是%I1。新建一个citect项目,组态通讯、变量等,,关联unity中新建的变量pump1_running,这里不做介绍。
 
新建一个画面,绘制管道
新建一个小矩形,填充绿色,设置好小矩形的长宽,使其正好能放进前面绘制的管道citect2018制作管道介质流动效果
复制这些小矩形,使其塞满整个管道。心里按照1#、2#、3#对其进行编号
对所有编号为1的小矩形,设置其动态隐藏条件
not  (pump1_running and timesecond(timecurrent())-3*(timesecond(timecurrent())/3)=0)
这个条件的意思是说当pump1运行,且当前秒数正好被3整除,就显示。
对所有编号为2的小矩形,设置其动态隐藏条件
not  (pump1_running and timesecond(timecurrent())-3*(timesecond(timecurrent())/3)=1)
这个条件的意思是说当pump1运行,且当前秒数被3整除余1,就显示。
多所有编号为3的小矩形,设置其动态隐藏条件
not  (pump1_running and timesecond(timecurrent())-3*(timesecond(timecurrent())/3)=2)
这个条件的意思是说当pump1运行,且当前秒数被3整除余2,就显示.
设置完成后保存编译,运行项目。
当pump1没有运行,管道没有介质流动效果,当pump1运行,小矩形按照时间依次显示隐藏,就形成了流动的效果。
2019.8.20补充:
今天上午重新测试了一下子,将所有1#小矩形隐藏条件修改为
not  (pump1_running and (timesecond(timecurrent()) mod 3=0))
将所有2#小矩形的隐藏条件修改为
not  (pump1_running and (timesecond(timecurrent()) mod 3=1))
将所有3#小矩形的隐藏条件修改为
not  (pump1_running and (timesecond(timecurrent()) mod 3=2))
保存编译运行,一样的效果。说明mod函数在cicode下一样可以使用。
posted @ 2021-02-28 07:55  来自金沙江的小鱼  阅读(407)  评论(0编辑  收藏  举报