WINCC中制作管道流体流动动画的一种方法
流体流动现象的动画仿真(一)--基于activex的实现方法

流体流动现象的动画仿真(一)——基于ActiveX的实现方法李士雨(天津大学化工学院天津300072)10—27在化工类多媒体软件开发中,如果采用动画形式演示管道内流体流动效果,会使课件形象直观,活泼生动.增加表现力。
根据开发要求,可采用不同方案解决上述同题。
本文提供一种基于ActiveX的实现方法。
这种方法使用ActiveX技术编程,其优点是所开发课件的使用方式与Ⅶ所提供的标准控件一样,使用时不需编程。
●t1.动画原理动画是由一系列静态图片在一定时间内迅速播放产生的视觉效果。
例如在一合适时间内连续依次播放下述图片(图1),将产生逼真的蝴蝶飞舞的视觉效果。
视◆。
+一『=’。
≯图1■■=,■=,●=,■Ej—E=■●=,●E-U·旨■_皇_=-七日-畸捌■__自;,‘lt=·_=,_=,_c=_‘=_·=,_=,_,c,—=,—=】■E,—E,■Ej■Ej■口了E_-;i._...*-lh_,[_--,_i_I_._T-I_一I4q_Ej__=,_口j-‘=_·=,-c=--=l5圈2同理.设计合适的静态图象序列.可产生流体流动的动态效果。
采用不同的静恋图象所产生的5。
第2步:通过缠程,两期性地在罔一位置调入线0,线I,…,线5。
it{trH、2;。
&tiveX控件的设计。
;{流体流动现象的动两仿真是纯工j够嫌体软件的典型问题,许多地方均要用到。
按传统的程序设计思想,最好的黑决方案是将士述程序设计虞子程序。
若采用VisualBasic5.0(以下简称vB5.o)编程.逑有吏好的解决方法;麓聂采角‘麟i试技术。
ActiveX是Microsoft为基于C。
mlⅫ诺lIt0t咖ctModel(COM)韵技术赋予的名称.VisualBasic5.0允许创建ActiveX控件、ActlveX文挡、AetiveX动态链接库等。
由此技术可创建流体流动通用控件。
所创建的控件的使用方法与VB5m所羹供触标准控件一样。
3ds max 粒子流管道流动液体动画制作

本课我们将通过在水管中流淌的水的效果来学习液体在管道中流淌的设置方法。
我们将学习到水在多个分支管道中的流动的设置,当水管中的水接近分支管道时,它将会有选择的改变方向,最终效果如下图所示。
1、打开范例场景。
单击此处打开pf10.max场景文件(52K, Winzip压缩文件)。
在这个场景中我们提供了一个带有分支的水管的模型、三条样条曲线(主要用于定义不同分支水管的路径)、一个箭头模型,如图1-1所示。
图1-12、创建粒子流系统。
单击Create(建立)/Geometry(物体)钮,在其下拉列表中选择Particle Systems(粒子系统)选项,然后在命令面板上单击PF Source在Front视图中创建一个粒子流,其大小同水管的开口大小相当,如图1-2所示。
图1-23、单击Modify钮进入修改命令面板中,在“Emission(发射)”卷展栏上,将“Icon Type(图标类型)”设置为“Circle(圆形)”,并将“Diameter(直径)”设置为20,此时观察摄影机视图,我们会发现粒子流源的图标显示为圆形,其中有一个徽标和一个从图标中心指向外侧的箭头,然后使用鼠标拖动粒子粒子流源图标使其位于水管的开口位置,它的箭头方向应该指向管道的内部,如图1-3所示。
图1-34、在场景中首先选定粒子流源图标,然后按下键盘上的6键或者是在Modify(修改)命令面板中单击Particle View(粒子视图)以打开粒子视图设置窗口,此时将按照默认排列打开“粒子视图”编辑器,在“Particle View(粒子视图)”中,打开“Options(选项)”菜单并选择“Track Up Date(跟踪更新)”>“Particle Count(粒子数)”,如图1-4所示。
此时在每个事件的上方将会出现一个数字,这是查看流中的粒子如何穿过事件的有效方法。
现在我们如果拖动时间滑块会发现选项卡上的粒子数也就是数字会随时进行更新。
任务二、管道液体流动组态设计

任务二、管道液体流动组态设计设计目标:(1)当点击泵的时候(相当开始按钮),管道就有液体流过,并且反应器里面的液面会增加,即b的数值增加;(2)当再次点击泵的时候(就相当于停止按钮),这时,管道的液体停止流动,即b的数值保持不变,并且反应器中的液体保持不变,如此循环。
一、管道液体流动组态设计的具体步骤⑴【画面的绘制】1、打开【工具箱】中的【图库精灵】,在【图库管理器】中找出相应的“泵”和“反应器”;2、选择【立体管道】,绘制管道(颜色可自行设置)。
(2)【定义变量】1、选择【数据库】中的【数据词典】,点击新建;2、定义泵的【变量名】为a,【变量类型】为“内存离散”;3、定义反应器的【变量名】为b,【变量类型】为“内存整数”,点击确定即可。
(3)【程序设计】1、选择【命令语言】中的【应用程序命令语言】;2、设计的程序如下:,然后点击确定即可。
(4)【动画及变量的确定】1、管道的动画设置:双击管道,出现【动画连接】对话框,然后点击【特殊】中的【流动】,点击【流动条件】后面的问号,出现【选择变量名】对话框,然后选择设置好的【变量名称】a,然后点击确定即可;2、双击泵,点击【变量名】后的问号,选择【变量名】a,点击确定即可;3、双击反应器,点击【变量名】后的问号,选择【变量名】b,点击确定即可。
(5)【反应器数值的显示】1、选择【工具箱】中的【文本】,输入b的数值及#####即可;2、双击“#####”,弹出【动画连接】对话框,然后勾选【值输出】中的【模拟值输出】,点击确定即可。
二、管道液体流动组态的画面设计三、管道液体流动组态的调试与运行1、管道液体未流动时的画面(单击泵为开始运行,再次单击泵为停止)(管道液体未流动时,b的数值为0,其中b的数值表示的是反应器的液面高度)2、管道液体开始流动时的画面(图中泵中心的颜色为绿色时,表示运行状态)(管道液体开始流动时,b的数值在0-100之间变化)3、管道液体停止流动时的画面(图中泵中心的颜色为红色时,表示运行状态)(管道液体停止流动时,b的数值保持不变)。
如何制作视频液态和流动效果的方法

如何制作视频液态和流动效果的方法在视频制作中,液态和流动效果可以使视频更具吸引力和戏剧性。
Adobe Premiere Pro是一款功能强大的视频编辑软件,提供了多种工具和特效,可以帮助用户轻松制作出各种液态和流动效果。
本文将介绍几种常用的制作视频液态和流动效果的方法。
方法一:使用形状剪辑1. 在 Premiere Pro 的时间线上创建一个新的形状图层。
2. 选择形状工具,在程序监视器上创建一个形状。
3. 在“形状”选项卡下,选择想要的颜色和样式。
4. 在时间线上将形状图层放置到想要添加液态效果的视频剪辑上方。
5. 将形状图层的长度调整为视频剪辑的长度。
方法二:应用过渡效果1. 在Premiere Pro 的时间线上选择要应用液态效果的两个视频剪辑。
2. 在“效果控制”面板中,选择“过渡效果”选项卡。
3. 选择一个适合的流动和液态效果过渡效果,如“溶解”、“波纹”等。
4. 将过渡效果拖放到两个视频剪辑之间的过渡区域。
5. 调整过渡效果的持续时间和其他参数,以实现所需的效果。
方法三:使用关键帧动画1. 在 Premiere Pro 的时间线上选择一个视频剪辑。
2. 选择“效果控制”面板中的“位置”选项卡。
3. 点击“位置”属性旁边的“停止动画”图标,创建一个关键帧。
4. 将时间线游标拖动到视频剪辑的另一个位置。
5. 调整视频剪辑的位置和大小,并再次点击“位置”属性旁边的“停止动画”图标,创建另一个关键帧。
6. 在关键帧之间自动插值,以制作流动和液态效果。
方法四:使用蒙版效果1. 在 Premiere Pro 的时间线上选择一个视频剪辑。
2. 在“效果”选项卡下的“视频效果”>“蒙版”中选择一个适合的蒙版效果,如“椭圆蒙版”、“矩形蒙版”等。
3. 将蒙版效果拖放到视频剪辑上。
4. 调整蒙版的位置、大小和其他参数以实现所需的效果。
总结:通过使用形状剪辑、过渡效果、关键帧动画和蒙版效果,我们可以很容易地制作出各种液态和流动效果的视频。
4WINCC课程--动态连接

第四部分:WINCC 软件课程——动态连接目的:通过动态连接将对象属性动态化,从而实现直观的视觉效果。
● 第1步: 对象颜色属性的改变,将流程图中的阀头和水泵电机的颜色设置成当运行时,颜色为绿;停止时颜色为红;按照下图,打开水泵电机(圆)的属性页,右击BACKGROUND COLOR 背景色右面的小灯泡(灯泡代表对象的动态属性,一旦对象属性和变量关联后,灯泡将变绿或闪电标志)。
第2步:选中点击动态对话Dynamic dialog ;系统弹出设定窗口,首先选择TAG 变量,点击Expression/Formula 右面的按钮选中TAG,● 第3步:系统弹出变量选择窗口,选中PUMP 变量,点击OK !灯泡代表对象的动态属性,一旦对象属性和后,灯泡将变绿或闪电标志第4步:在Expression/Formula栏将出现‘PUMP’,按照下图选中BOOL,将变量YES 时的颜色变成绿色,将变量NO时的颜色变成红色。
● 第5步:然后点击APPL Y ,结束颜色“动态连接”!在背景色右面将出现一个红色闪电,表示圆的背景色已经与变量关联了!● 第6步:同样的方法,将阀头的颜色和Q4 .5关联!对象的属性如显示、颜色等(BOOL 量控制的属性),都可以使用同种方法来控制!☺ 结束颜色和变量关联● 第7步:生成模拟量数值显示;按照下图选中I/O FIELD ,在流程图中合适位置点击,系统弹出设置窗口,在TAG 栏选择变量PI1001;选中I/OFIELD在流程图中合适位置点击只做显示,选择OUTPUT类型;如果要求改变数值就要选择BOTH然后,将I/O FIELD大小进行调整成合适尺寸!按照上面做法制作〈高压力设定值〉和〈底压力设定值〉;将TYPE设为BOTH;如果改变I/O FIELD大小和颜色,打开其属性页即可更改!●第8步:生成模拟量棒图显示;使用低液位水罐高度来指示压力值。
打开水罐(矩形)属性页,将FILLING属性的DYNAMIC FILLING 的静态属性变成YES;双击变成YES●第9步:右击FILL LEVEL右面的小灯泡。
流水灯wincc监控画面制作

流水灯实验步骤1.启动,文件/新建工程,右击新建工程名,选择插入新对象/SIMATIC 300站点,双击SIMATIC 300,双击硬件,在右边SIMATIC 300中选择RACK-300中的rail,将其拖到左边的空白处,,在第一槽组态一个电源,任选第四个电源PS 307 5A。
第二槽组态CPU选择CPU 314第一个。
第三槽空着,第四槽组态输入输出接口模块DI/DO-300第一个。
组态完成后点击保存编译。
回到SIMATIC MANAGER ,,点击块,双击OB1,点确定。
在弹出的窗口编写流水灯实验程序。
流水灯PLC程序完成PLC程序编写后,点击保存。
此时回到SIMATIC Manager,点击第二排按钮,点击插入/输入变量,输出变量。
回到硬件组态窗口,点击第二排下载组态硬件,回到PLC程序编写窗口,点击第二排下载软件组态。
此时可通过仿真器观察流水灯程序编写是否正常。
正常,那么可以进入WINCC编写。
翻开,点击文件/新建,单用户工程,确定。
右击变量管理/添加新驱动程序,选择,双击,双击MPI,右击鼠标/新建驱动连接,随意命名。
右击,选属性,再选属性,插槽号改为2.右击MPI,选系统参数,单元,逻辑设备名称选PLCSIM(MPI)。
双击S7新建变量修改名称为lamp0,点击选择,数据选输出。
同样操作,建立lamp1,lamp2。
后两个Q0.1,Q0.2。
新建start后stop时,将数据改为位存储器M0.0和M0.1。
单击图形编辑器,在右边空白处右击新建画面,双击新建画面,进入图形编辑器,在选择静态文本,拖到网格线处,编辑文字:流水灯演示实验。
选择圆形,画三个圆,右击第一个圆,选属性点击颜色,在背景颜色的小灯泡处,右击选动态对话框,表达式/公式选择变量,点击MPI下的S7,选择lamp0,点击布尔型,改变你所希望的背景颜色。
单击,双击标准周期下的时间,选择根据变化。
点击确定,点击应用。
在,中点击按钮,拖到网格线处。
水流动画连接PPT课件

制作简单实例——温湿度指示调节仪
1、教学目的 (1)掌握温湿度指示调节仪的制图方法。 (2)掌握模拟值输出动画连接、文本色动画连接、闪烁动画 连接、填充属性动画连接和“弹起时”命令语言连接。 (3)进一步熟练掌握编程方法。
2、制作要求 制作一个显示仪表能够显示温度和湿度,其中温度每 200ms 递 增 12,当温度大于等于 200 时重新加起。湿度从 100 开始 每 200ms 递减 5,湿度小于等于 0 时,重新从 100减起。设置 两个报警灯,其中一个是当温度超过 100 时。
《组态王软件》
制作简单实例——整数累加
(一)实训目的 1、掌握监控组态软件King View的集成开发环境。 2、掌握建立应用工程的一般过程。 (二)实训任务 利用监控组态软件King View编写应用程序,完成下面 的任务。 1、一个整数从零开始每隔1s加1,累加数显示在画面 的文本框中。 2、当该数累加至10时,画面中指示灯变幻颜色,整数 停止累加。
《组态王软件》
{温度=0;}
湿度=湿度- 5;
if(湿度<=0)
{湿度= 100;}
《组态王软件》
(4)动画连接。对“湿度”、“温度”‘字符进行模拟值输 出连接,分别对温度报警、湿度报警用的两个小圆进行闪烁动 画连接。双击温度显示值下方代表报警灯的小圆,打开“填充 属性连接”窗口,表达式选择“温度”,修改阈值与填充色: 阈值为 0 时绿色,阈值为 100时红色。打开“闪烁连接”窗口, 选择闪烁条件“温度>100",调整闪烁速度,然后单击“确定” 按钮。
《组态王软件》
反应车间监控中心水流设置
(3)选择所有方块,单击鼠标右键,在弹出的下拉菜单中 执行“组合拆分\合成组合图素”命令将其组合成一个图素, 双击此图素弹出动画连接对话框,在此对话框中单击“水平 移动”选项,弹出“水平移动连接”对话框,对话框设置如 图4−54所示。
在Wincc6.0中实现管道流水动态化

如何我们在WINCC 图形编辑器中组态一幅画面,例如是一条流水管道,我们想在项目在激活后,实现管道流水动态化,就是看起来像有液体在流动的效果,那么如何实现此功能。
可能在组态王、力控等组态软件中实现这种功能很容易,其实在Wincc6.0中实现这种功能也很容易,下面是我的具体做法。
——编写脚本进行动作触发。
我使用的是wincc6.0版本,在管道画面组态完毕之后,我们关闭保存刚组态过的画面,回到wincc资源管理器窗口,右击“变量管理”——“添加新的驱动程序”,再添加新的驱动程序对话框中选择“System Info.chn”,打开,这是我们就会发现在“变量管理”下出现通道驱动程序“SYSTEM INFO”,单击其前面“+”号,出现“系统信息”通道,右击此通道,选择“新驱动程序的连接”,在“连接属性”中命名为time,在time中新建变量,命名为second,数据类型设置为无符号16位数,确定,此时又弹出一个“无效的地址参数”对话框,地址参数无效我们指定一个新的数值,在随后弹出的“系统信息”对话框中,设置函数为“秒”,格式化为SS,确定。
退出。
新建四个内部变量,分别命名为“line1”“line2”“line3”“line4”,数据类型都是二进制。
在Wincc资源管理器窗口,右击“全局脚本”,打开C编辑器,在全局脚本C编辑器窗口中,我们单击“动作”前的加号,右击弹出的“全局动作”新建以动作,在其中写以下C程序。
(为了方便大家查看,我直接将所有代码注释全部复制过来):#include "apdefap.h"int gscAction( void ){ unsigned int t;t=GetTagWord("second");if((t%4)==1){SetTagBit("line1",1);SetTagBit("line2",0);SetTagBit("line3",0);S etTagBit("line4",0);}if((t%4)==2){SetTagBit("line1",0);SetTagBit("line2",1);SetTagBit("line3",0);S etTagBit("line4",0);}if((t%4)==3){SetTagBit("line1",0);SetTagBit("line2",0);SetTagBit("line3",1);S etTagBit("line4",0);}if((t%4)==0){SetTagBit("line1",0);SetTagBit("line2",0);SetTagBit("line3",0);S etTagBit("line4",1);}// WINCC:TAGNAME_SECTION_START// syntax: #define TagNameInAction "DMTagName"// next TagID : 1// WINCC:TAGNAME_SECTION_END// WINCC:PICNAME_SECTION_START// syntax: #define PicNameInAction "PictureName"// next PicID : 1// WINCC:PICNAME_SECTION_ENDreturn 0;}在代码写完之后,将此动作命名为jishi.pas。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WINCC中制作管道流体流动动画的一种方法
采用自定义对象的方法制作,不需要使用全局变量及外部量。
以制作横向向右流动流动块为例:
1、画两个高度相等的矩形,分为是rec1和rec2,rec1的宽度小于rec2,rec2属性中的“显示”为否,将rec1和rec2放在一起,左对齐,rec1居前。
rec1为实际要显示的流动块,rec2在实际运行中不显示,但需要其属性参数作为定值,以供程序使用,rec2-rec1的值即为流动块每次向右移的距离。
2、将rec1和rec2组合成自定义对象,需要加入属性rec1.Left、rec1.Width、rec1.Visible、rec2.Width 这几个属性到自定义对象中去,其它属性可以根据需要添加。
3、在自定义块中的属性“位置X1”加入C脚本,触发器选“250ms”标准周期,代码如下:
long Left,Left1,Width1,Width2;
BOOL Visible1;
long i,k;
Visible1 = GetPropBOOL(lpszPictureName,lpszObjectName,"Visible1"); //Return-Type: BOOL
Left1 = GetPropWord(lpszPictureName,lpszObjectName,lpszPropertyName); //Return-Type: long int
if (Visible1)
{
Left = GetLeft(lpszPictureName,lpszObjectName);
Width1 = GetPropWord(lpszPictureName,lpszObjectName,"Width1");
Width2 = GetPropWord(lpszPictureName,lpszObjectName,"Width2");
k = Width2 - Width1;
i = Left + Width1;
Left1 = Left1 + k;
if (Left1 >= i)
Left1 = Left;
}
return Left1;
4、将此自定义对象加入全局库中,以后可以在其它项目中直接使用。
5、在画面中使用直接拷贝,一个接一个连起来,可以形成管道流体动画效果。
其它方向的流动块按此方法一样可以,还可以制作起始流动块和结束流动块,实际使用中这两个块不要也行,用其它的东西把头尾盖起来就可以了。