wincc中图形的旋转
wincc画面转换
wincc画面转换
在wincc运行画面上在菜单工具栏上想设置一个选项,可以切换成其他的画面运行,请问vbs要如何运用。
问题补充:
是在运行图形上方的菜单工具栏里,所以只能用vbs脚本。
用异步也可以。
在工具栏中添加选项,如“运行图形1”,点击后执行,如何切换正在运行的画面到目标画面?谢谢。
最佳答案
参考:
利用变量的变化切换画面可以不用编写脚本。
在winccflexible中新建变量a,在变量a的事件中,选择“改变数值”,选择功能为“activescreenbynumber”,参数“画面编号”选择变量a;注意每一个画面的属性中都有自己画面编号;变量a的常规--采集模式选择“循环连续”。
变量a可以使用plc中的变量。
画面编号可以在画面的属性中设定。
这样做的流程是,项目开始时变量a设为1,显示编号为1的画面(一般将其实画面的编号设为1),当变量a变为2时,就显示编号为2的画面,以此类推...。
wincc settagfloat用法
wincc settagfloat用法WinCC是一个广泛应用于工业自动化领域的实时多任务图形用户界面组态软件。
在WinCC中,SetTagFloat是一种用于设置标签浮动的功能,可用于在WinCC 画面上显示实时数据。
本文将详细介绍SetTagFloat的用法。
一、SetTagFloat概述SetTagFloat用于在WinCC画面上显示实时浮点数数据。
它可以将从PLC或其他数据源获取的浮点数数据与标签相关联,以便在画面上显示这些数据。
SetTagFloat提供了灵活的选项,允许用户根据需要自定义标签的外观和行为。
二、SetTagFloat用法步骤1. 打开WinCC画面组态,选择要添加SetTagFloat的区域。
2. 在“属性”对话框中,选择“常规”选项卡。
3. 在“常规”选项卡中,选择“SetTagFloat”类型。
4. 输入要显示的实时浮点数数据的标签名称和PLC变量地址。
5. 根据需要,设置标签的字体、大小、颜色等外观属性。
6. 保存组态并测试画面,确保SetTagFloat正常工作。
三、SetTagFloat属性设置SetTagFloat提供了多个属性可供设置,以控制标签的显示方式。
以下是一些常用的属性:1. 标签位置:可设置标签在画面上的位置,包括水平和垂直坐标。
2. 标签字体:可以选择所需的字体,并设置字体大小、颜色等属性。
3. 标签旋转:可设置标签的旋转角度,以适应不同的情况。
4. 标签背景色:可设置标签的背景色,以增强视觉效果。
5. 实时更新:可以选择是否实时更新标签的显示数据。
四、注意事项在使用SetTagFloat时,请注意以下几点:1. 确保实时浮点数数据来源正确,能够正常传输和显示。
2. 确保PLC变量地址正确,能够提供所需的实时数据。
3. 定期检查标签的显示数据是否正确,以确保数据源的正常运行。
4. 根据实际需求,调整SetTagFloat的属性,以达到最佳的显示效果。
WINCC作业画面切换组态画面模板和画中画的实现
WINCC作业画面切换组态画面模板和画中画的实现一、画面切换画面切换是指在一个WINCC项目中,通过点击按钮或者其他的交互方式,实现在不同画面之间切换的功能。
画面切换可以用于实现不同设备、不同工艺流程等的显示,操作人员可以根据需求自由切换画面以获取所需的信息。
在WINCC中,实现画面切换有多种方式:1.使用按钮控件:可以在画面上添加按钮控件,通过设置按钮的触发事件,当按钮被点击时,自动切换到指定的画面。
2.使用跳转动画:在画面切换时,可以通过设置动画效果,例如淡入淡出、滑动等,增加画面切换的过渡效果,提升用户体验。
3.使用脚本编程:可以通过在WINCC中编写脚本实现画面切换。
通过判断条件或者调用函数等方式,控制画面的切换逻辑。
画面切换功能可以通过系统自动切换,也可以通过手动切换实现。
可以根据实际需求和界面设计,选择适合的方式来实现画面切换。
二、组态画面模板组态画面模板是指预先设计好的画面布局和界面元素,在WINCC中可以直接应用到新建画面中,快速生成相似风格的画面。
组态画面模板可以提高画面的一致性和规范性,并且减少画面设计的时间和工作量。
在WINCC中,可以通过以下步骤创建组态画面模板:1.创建画面模板:在WINCC中新建一个画面,并将需要固定的界面元素进行设计和布局。
例如,标题栏、菜单栏、按钮、图表等。
3.应用模板:在需要新建画面的地方,选择“应用模板”功能,并选择之前保存的画面模板文件,即可将画面模板应用到新建画面中。
通过使用组态画面模板,可以快速生成一致性的画面设计,降低画面开发的难度和复杂度。
同时,在后期维护和修改时,只需修改模板文件即可,方便快捷。
三、画中画画中画是指在WINCC界面中,可以同时显示多个画面,提供更多的信息展示和操作空间。
画中画功能可以用于实时监控多个设备或者不同工艺流程的状态,方便操作人员对多个画面的同时查看和操作。
在WINCC中,可以通过以下步骤实现画中画的功能:1.新建画面:在WINCC中新建多个画面,每个画面对应不同的设备或者工艺流程。
wincc课件 第3章
5
3.2 使用图形和对象
1、使用画面 (1) 导出功能
位于图形编辑器的“文件”菜单下。 导出到其它文件中,导出的文件格式可为图元文件(.wmf) 和增强型图元文件(.emf)。此格式动态设置和一些对象指 定属性将丢失。 也可以PDL格式导出图形,画面的动态得以保留。 (2) 导入功能 位于图形编辑器的“插入”菜单下。 其他程序创建的图形可以作为图形对象、OLE对象或可编辑 图形插入到图形编辑器中。可编辑图形必须是.wmf或.emf格 式。
C动作 —— 带C缩写的绿色闪电 C动作没有通过编译——带C缩写的黄色闪电 VBS动作—— 带VB缩写带浅蓝色闪电 直接连接—— 蓝色闪电 没有组连接—— 白色闪电
15
3.2 使用图形和对象
6、任务2
打开您的项目,在sample画面完成如下操作:
绘制三个按钮,按钮功能如下:
按钮属性:尺寸60×30,字体宋体,颜色,亮蓝色,字 号16,居中。 按钮1:文本“清零”,按下左键,使参数“Cycle_pos” 清零。用直接连接实现。 按钮2:文本“置100” ,按下左键,使参数 “Cycle_pos”=100。用VBS动作实现。 按钮3:文本“置300” ,选择该键,按下键盘空格,使 参数“Cycle_pos”=300。用VC动作实现。
2
3.1 WinCC图形编辑器
3. 图形编辑器的布局
包括:绘图区、标题栏、菜单栏、标准工具栏、对象选项板、样式选 项板、动态向导、对齐选项板、图层选项板、变量选项板等元素。
3
3.1 WinCC图形编辑器
4. 画面布局
布局条件 总览区 标志 总览区 ——画面分辨率设置为1 024× 768像素。 ——系统位于控制室内,通过鼠标和键盘进行操作。 按 布局方式 现场画面区 钮 现场画面区 布局原理:使用一空白起始画面,然后在其中创建3个画面 窗口(对象选项板上的智能对象) 区 按钮区 画面内容 ——总览区:组态标志符、画面标题、时钟、当前报警行、公 司标志符 ——按钮区:固定按钮和显示按钮 ——现场画面区:各个设备的过程画面
在WinCC (TIA Portal) 中如何通过控制器实现画面的切换
在WinCC (TIA Portal) 中如何通过控制器实现画面的切换。
在WinCC (TIA Portal) 中如何通过控制器实现画面的切换?描述想使用过程控制器实现画面的切换功能。
多种方法可供选择。
● 使用区域指针中的"作业信箱"。
● 使用触发变量使用区域指针中的"作业信箱"在相应链接下的区域指针中激活"作业信箱" 。
作业号51 执行画面切换。
该区域指针对于HMI 面板和WinCC Runtime Advance d 有效。
关于此主题的更多信息请参考手册以下位置"WinCC Advanced V13.0 > Visualizing processes > Communicating with controlle rs > Communicating with SIMATIC S7 1500 (or S7 1200 / S7 3 00/400 / S7 200) > Data exchange > Data exchange over poi nters > Area pointer "Controller Job" ".使用触发变量或者,也可以通过控制器的变量实现设备画面的切换功能。
步骤如下:在控制器中创建一个数据类型为"Int" 的"Screen number" 变量。
在操作面板中插入此变量为HMI变量。
设置采集模式为“循环连续”。
图. 01在此变量的“数值更改”事件下配置"Activate Screen By Numb er" 函数。
选择"Screen number" 变量。
wincc动画命令
WINCC动画脚本默认分类2008-01-21 15:19:23 阅读310 评论0 字号:大中小订阅电机风扇旋转(几何---起始角度):#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {static DWORD f=20;if (GetTagBit("DI电机运行信号")) {f= f+30; '起始角度变化量'if (f==360) (f=0);}return f;}电机风扇旋转(几何---结束角度):#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {static DWORD i=80; '大于起始角度60'if (GetTagBit("DI电机运行信号")) {i = i+30; '等于起始角度变化量'if (i==360) (i=0);}return i;}**物料水平右移动(几何---位置X)(停车后,物料回到原点)**#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {static int a=350;if (GetTagBit("DI电机运行信号") && (a<=730)) {a+=20;if (a>=720) (a=350);}if (!GetTagBit("DI电机运行信号")) (a=350);return a;}物料水平右移动(几何---位置X)(停车后,物料停在该点)#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {static int a=350;if (GetTagBit("DI电机运行信号") && (a<=730)) {a+=20;if (a>=720) (a=350);}return a;}物料向上移动(几何---位置Y)(停车后,物料停在该点)#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {static int b=450;if (GetTagBit("DI电机运行信号") && (b>=290)) {b-=10;if (b<=280) (b=450);}return b;}年月日(静态文本)#include "apdefap.h"char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {time_t timer ;struct tm *ptm;char *p;time(&timer);ptm =localtime(&timer);p =SysMalloc(9);sprintf(p,"%04d/%02d/%02d",ptm->tm_year-100+2000,ptm->tm_mon+1,ptm->tm_mday); return(p);}时分秒(静态文本)#include "apdefap.h"char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {time_t timer ;struct tm *ptm;char *p;time(&timer);ptm =localtime(&timer);p =SysMalloc(9);sprintf(p,"%02d:%02d:%02d",ptm->tm_hour,ptm->tm_min,ptm->tm_sec);return(p);}登陆到指定的用户名无须手动输入(按钮操作)#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y){#pragma code("useadmin.dll")#include "PWRT_API.H"#pragma code()PWRTSilentLogin("用户名", "口令");}**显示登陆对话框无须热键(按钮操作)**#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y){#pragma code ("useadmin.dll")#include "PWRT_api.h"#pragma code( )PWRTLogin('c');}退出WINCC运行(按钮操作)#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y){{DeactivateRTProject ();}}单位递增按钮(到上限不提示出错)#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){DWORD value;value=GetTagDWord("AI标签");if (value>90) (value=上限); '上限值为100'else value=value+10; '单位增加量为10'SetTagDWord("AI标签",value);}单位递减按钮(到下限不提示出错)#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){DWORD value;value=GetTagDWord("AI标签");if (value<10) (value=下限); '下限值为0'else value=value-10; '单位减小量为10'SetTagDWord("AI标签",value);}**单位递增按钮(到上限提示出错)**#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){DWORD value;HWND hWnd=NULL ;hWnd=FindWindow(NULL,"Wincc-运行系统- ");value=GetTagDWord("AI标签");if (value<=90) (value=value+10); '上限值为100,单位增加量为10'else MessageBox(hWnd,"已到达上限值!","错误",MB_OK|MB_ICONWARNING|MB_APPLMODAL);SetTagDWord("AI标签",value);}**单位递减按钮(到下限提示出错)**#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){DWORD value;HWND hWnd=NULL ;hWnd=FindWindow(NULL,"Wincc-运行系统- ");value=GetTagDWord("AI标签");if (value>0) (value=value-10); '下限值为0,单位减小量为10'else MessageBox(hWnd," 已到达下限值!"," 错误",MB_OK|MB_ICONWARNING|MB_APPLMODAL);SetTagDWord("AI标签",value);}**自动登陆到指定的用户(画面属性--其它—授权)**#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma code("useadmin.dll")#include "PWRT_API.H"#pragma code()PWRTSilentLogin("用户名", "口令");return(0X0);}**询问框(最好用于单机启动,组启也可,2个按钮,NO不操作)**#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y){HWND hWnd=NULL;int 上位启动信号;hWnd=FindWindow(NULL,"WinCC C-Course");if (GetTagBit("DI备妥")){上位启动信号=MessageBox(hWnd,"电源已备妥,您现在确定要启动吗?","启动!",MB_YESNO|MB_ICONQUESTION|MB_APPLMODAL);printf("\r\nExample 3\r\n");if (上位启动信号==IDNO) (printf("User selected NO button \r\n"));else (SetTagByte("上位启动信号",1));}elseMessageBox(hWnd,"电源未备妥,请查证后重试!","启动!",MB_OK|MB_ICONHAND|MB_APPLMODAL);}**询问框(最好用于单机启动,组启也可,3个按钮,NO复位)**#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y){HWND hWnd=NULL;int上位启动信号;hWnd=FindWindow(NULL,"WinCC C-Course");if (GetTagBit("DI备妥")){上位启动信号=MessageBox(hWnd," 电源已备妥,您现在确定要启动吗?","启动!",MB_YESNOCANCEL|MB_ICONQUESTION|MB_APPLMODAL);if (上位启动信号==IDCANCEL) (printf("User selected NO button \r\n"));else{if (上位启动信号==IDYES) (SetTagByte("上位启动信号",1));else (SetTagByte("上位启动信号",0));}}elseMessageBox(hWnd," 电源未备妥,请查证后重试!","启动!",MB_OK|MB_ICONHAND|MB_APPLMODAL);}**搅拌器左侧扇页(几何—宽度)**#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {static int h=50;static int u=0;if (GetTagBit("DI电机运行信号")){if ((h>0)&&(h<=50)){(h-=2);return h;}if ((u>=0)&&(u<50)){(u+=2);return u;}u=0;h=50;return h;}if (!GetTagBit("DI电机运行信号")){h=50;u=0;return h;return u;}}**搅拌器左侧扇页(几何—位置X,右侧扇页没有位置变化)**#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {static int h=75;static int u=125;if (GetTagBit("DI电机运行信号")){if ((h>=75)&&(h<125)){(h+=2);return h;}if ((u<=125)&&(u>75)){(u-=2);}u=125;h=75;return h;return u;}if (!GetTagBit("DI电机运行信号")){h=75;u=125;return h;return u;}}**显示层按钮**SubX6309X94AE2X0000X0000_X6309X94AE2X0000X60C5_X6309X94AE2X0000X653E_OnLButtonDow n(ByVal Item, ByVal Flags, ByVal x, ByVal y)Dim objScreenDim CountLayerSet objScreen = HMIRuntime.Screens("layer")For CountLayer=1 To 32 Step 1yers(CountLayer).Visible = vbFalseNextyers(n).Visible = vbTrueEnd Subn=层数+1初始画面程序(画面空地--属性--事件--其它--打开画面--动作)**打印按钮**#include "apdefap.h"void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y){WinExec("PRTSCR.EXE -hardcopy",SW_SHOWNORMAL);}**一个圈代表电机两种状态**#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){char* opentag="DI1电机运行信号";char* closetag="DI2电机运行信号";BOOL open,close;open = GetTagBit(opentag);close = GetTagBit(closetag);if (open)return CO_GREEN;if (close)return CO_BLUE;}**(VB脚本)上位电机颜色**IF DI电机运行信号=0 THENIF 电机上位故障信号=0 THEN100*(DI电机备妥信号*(DI集中位置信号+DI本地位置信号))ELSE:500*电机上位故障信号*(DI电机备妥信号*(DI集中位置信号+DI本地位置信号))+700*电机上位故障信号ENDIFELSE:300*DI电机运行信号*DI集中位置信号+400*DI电机运行信号*DI本地位置信号+200*DI电机运行信号ENDIF值:无备妥=0(黄色)有备妥=100(白色)无备妥有运行信号(接触器粘连)=200(黑色)集中运行=500(亮绿)本地运行=600(暗绿)有备妥故障=1200(亮红)无备妥故障=700(暗红)。
wincc 7.0 sp3中文版图像根据db块数据变化进行位置变换
wincc 7.0 sp3中文版图像根据db块数据变
化进行位置变换
图如附件所示,红色“i”块为需要位置变换的图像,图像默认有四个位置,变量为“有符号32位”,数据块“db10.db6”,现设置几何位置x动态变化,图中设置了db数据块的四个不同数据时位置x分别为200/240/280/320,其他位置1400(超出屏幕外,目的是不显示)。
如此设置无法满足要求,现在要求是想在数据在“数据范围1”的范围是“2700~2800”时图像在x位置的200位,“数据范围2”的范围是“8555~9645”时图像在x位置的240位,以此类推,目的是为了在db块数据在一定范围内图像都在那个位置。
不知道这样的动态画面是否能够实现?该如何实现?之前也提问了一下,不过后来试了一下好像不能实现,因此再提问一下。
可能需要写vbs或者c代码,请详细指导,。
问题补充:
zhangli0,就是之前提问过的。
想补充一下。
尝试了一下方法,很奇怪的是没有实现这一功能。
“i”的x坐标连接内部变量position_x(这个变量也是“有符号32位”吗?)全局脚本里增加vb是不是在刚进wincc左边一栏里的全局脚本?不知道为何无法实现上述功能。
图片说明:1,1
最佳答案
这个肯定用动态对话框最简单啊,
有效范围等于位置x
有效范围1aa
有效范围2bb
有效范围3cc
有效范围4dd
其他e
意思是0<值≤a,x坐标=a,a<值≤b,x坐标=b,b<值≤c,x坐标=c,c<值≤d,x坐标=d,d<值,x坐标=e,
按照你的要求,小于2700,x位置是什么?2800和8555之间,x位置是什么?。
wincc flexible中旋钮开关位反转不锁定
wincc flexible中旋钮开关位反转不锁定
在使用winccflexible2008库中的旋钮开关,按下时进行‘invertbit”“功能,但是实际情况是按下并按住的时候位反转了,但一松开手就又恢复到OFF位了,这是为什么呢,怎么不能自锁定呢,按一次应该改变一次状态才是呀?
问题补充:
ON状态的图形已钩选,实际监视其中的位也已经改变,但是开关只是在按下的时候转向ON位置,一松手就转到OFF,而实际上相关的位还是ON
最佳答案
开关直接连变量就可以了,只有按钮才可以用invertbit---转换变量实现置1置0切换。
具体实现参考:
/service/answer/solution.asp?Q_i d=27350&cid=1032
/service/answer/solution.asp?Q_i d=43583&cid=1033。
wincc怎样制作风机旋转动画
wincc怎样制作风机旋转动画
现在自己有2种方案,但是都不太完美,如下:1、制作GIF动画调用GIF控件播放,但是GIF有时老是崩溃(我的风机多不是一两个,一个画面有二三十个),2、通过WINCCmediacontor播放GIF图片,但是少的话还可以如果多了画面就会卡死,画面切换,参数设置全部卡死;不知道各位师傅有没有更好地办法,在此再说一遍,方案必须能满足二三十台同时运行不卡死,不崩溃,
问题补充:
有没有更简单的办法呢,这样用的话也会占用很多系统资源的
图片说明:1,冷风机动画
最佳答案
看了下你的GIF图片,图片更新的快,占用的资源就多,这种频繁扫描,占的内存本来就大,你一个画面有2、30个那么多,占用的内存可想而知。
你可以降低GIF的分辨率,减少GIF图片大小,在使GIF图片更新减慢,这样加载的时候就能省下一部分内存。
还有就是可以改变思路,上位机除了具备的动态外,最主要的还是响应速度,你风机转得很快,
但是反映速度太慢,系统延迟太久就失去了控制的思想。
建议如果允许的话用颜色取代转动,如转动就是绿色之类的。
Wincc V7.3 自定义控件制作(3)-运转风扇效果进阶
Wincc V7.3 自定义控件制作(3)-运转风扇效果进阶上一篇博客中,介绍了制作运转效果风扇的制作方法。
但这种运转效果只适合需要运转的时候,有时候风机实际没有运转,我们不希望看到这种运转效果,这时候我们就希望完善一下这种风机控件功能。
我们在页面上放置扇叶之后是这个样子:,同样的我们再制作两个扇叶拼接在一起,是这个样子:。
把红色和绿色扇叶重叠在一起。
全选四片扇叶,右键-自定义对象-创建,把四个扇形的起始角度、终止角度、可见性都拖拽到自定义对象的属性集里面,属性名称分别为startangle1、startangle2、startangle3、startangle4、endangle1、endangle2、endangle3、endangle4、visible1、visible2、visible3、visible4。
在起始角度1属性加入以下vbs脚本:Function StartAngle1_Trigger(ByVal Item)item.startangle1=item.startangle1+45item.endangle1=item.endangle1+45item.startangle2=item.startangle2+45item.endangle2=item.endangle2+45If item.visible =True Thenitem.visible3=Falseitem.visible4=FalseIf item.endangle1=360 Thenitem.endangle1=0End IfIf item.endangle2=360 Thenitem.endangle2=0End Ifitem.visible1=Trueitem.visible2=TrueElseitem.visible1=Falseitem.visible2=Falseitem.visible3=Trueitem.visible4=TrueEnd ifEnd Function我们在项目实际应用中,把自定义控件的可见性属性vislble和一个外部变量连接,通常是风机的运行反馈信号,当风机运行时,显示绿色的叶片旋转效果,当风即停止时,显示红色叶片停止效果。
WINCC作业画面切换、组态画面模板和画中画的实现
WINCC作业画⾯切换、组态画⾯模板和画中画的实现画⾯切换和画中画的实现掌握内容:1、掌握画⾯切换的设置⽅法2、掌握画⾯窗⼝的设置⽅法。
画⾯切换的设置⽅法有两种:1、通过组态对话框设置,注意其实质是通过事件选项卡中的直接连接设置2、通过动态向导设置:其实质是通过事件选项卡中的C动作。
(记住OpenPicture(“⽂件名”)函数;)练习1:画⾯切换1、新建以下内部变量Picturenumber 有符号32位变量signed 16-bit value下限值:0,上限值:100Picturename ⽂本变量8位字符集新建结构类型motor,其元素均为内部变量结构属性如下图所⽰:在内部变量中新建三个结构为motor的结构变量:motor1、motor2和motor3。
2:新建六个画⾯:Start1.pdl, ⼤⼩1024*768 定义为起始画⾯hm1.pdl, ⼤⼩1024*768hm2.pdl, ⼤⼩800*600hm3.pdl , ⼤⼩800*600hm4.pdl , ⼤⼩800*600hm5.pdl。
⼤⼩800*6003、分别在hm1~hm5中插⼊:分别插⼊静态⽂本框和按钮设置静态⽂本框的⽂本属性为“画⾯1”、“画⾯2”、“画⾯3”、“画⾯4”和“画⾯5”字号20号、按钮设置为return,要求按下return按钮后,能回到start1.pdl画⾯。
如下图所⽰:3、打开Start.pdl画⾯,并按下图所⽰设置内容:在直接切换⼀栏中,要求蓝⾊按钮按照直接连接⽅式切换到指定画⾯。
绿⾊按钮按照C动作⽅式连接到指定画⾯。
在编程切换⼀栏中,要求按照Picturenumber的值切换画⾯,将其值除以五求余数,如果结果为1、则按下切换按钮时画⾯切换到hm1.pdl。
是2则切换到hm2.pdl,以此类推。
Picturenumber的值可通过输⼊输出域1改变。
在编程切换栏的下半部分,通过按钮改变⽂本变量Picturename的内容,当按下切换按钮2时,要求切换到其指定的画⾯中。
winCC动态画面案例(风机旋转)
winCC动态画面案例(风机旋转)
看了很多关于winCC制作动态画面的帖子,由于是初学者,对脚本的使用,画面编辑器的使用不太清楚。
请问哪位能给发一份动态画面的winCC文件,如果有相关资料,也请分享下。
/p>
问题补充:
最佳答案
其实最简单的办法就是做闪烁交替,占用资源很小,不会提示错误
用C脚本可能会引起触发器的问题
我也是在网络上找到的一篇内容,几何旋转
选择多边形去做,要有出发布尔量,不清楚楼主看过没有,愿对你有帮助
几何-起始角度
{
staticDWORDf=20;
if(GetTagBit(“DI电机运行信号”))
{
f=f+30;
if(f==360)(f=0);
}
returnf;
}
几何-结束角度
{
staticDWORDi=80;
if(GetTagBit(“DI电机运行信号”)){ i=i+30;
if(i==360)(i=0);
}
returni;
}。
创建动态图形 旋转动画(中心旋转)
如何使用玲珑画板创建动态图形(之二)
旋转动画(中心旋转)
一、动画要求及原理
要求:做一个长方形的翻滚。
原理:以长方形的一个顶点为旋转中心,其它三个点绕着它做旋转动画。
二、作图步骤。
2.1右键菜单:2D网格模式。
画一个长方形:四边四点,再画一条水平线修饰用
2.2右键菜单:隐藏网格
因为长方形是一个整体,常常将其合成组件,框选中所有,右键菜单:合成组件
2.3在画面上画一条线及一个点,做为
动画控制条和控制点
2.4长方形的翻滚实际上是一个旋
转动画,上图我们设计翻滚四次,每
次90度,开始我们的动画之旅了。
单
击菜单:动画/旋转动画
2.5起值终值是表示动画控制点在线上的那一段时执行动画,最小是0,最大是1,在这里我们做四次翻滚,每次都是90度,所以起值终值就分别为,0——0.25,0.25——0.5,0.5——0.75,0.75——1。
这里不涉及三维,所以用中心旋转。
第一步:选中这个点,点按钮[设为旋转中心],如左图。
然后选中这个控制点,点按钮[设定变量],如右图。
2.6然后选中其它三个点,点按钮[添加到对象],然后拖动动画
点,可以看出长方形进行了一次翻滚
2.7然后再做第二次翻滚的动画,类似,起值,终值是0.25——0.5
2.8然后拖动控制点试试。
再做第三次动画,第四次动画类似,起值终值做相应改变。
三、注意事项。
1、绕中心旋转的旋转动画一般用于平面图形处理。
立体的一般都是旋转轴旋转动画。
2、做好动画后,一般会添加些线及面修饰一下,效果会更好。
如何制作一个变量每一秒加1从0到30不断循环用于WINCC画面的动画组态如物体和移动和旋转
如何制作一个变量每一秒加1从0到30不断循环用于WINCC画面的动画组态如物体和移动和旋转
WINCC组态如下:
第一种用于物体的移动:
第二种用于物体的旋转:
第一种方法用PLC程序做,步骤如下:
打开PLC硬件组态
打开CPU属性对话框
选择“周期/时钟存储器”选项
MB10对应的脉冲数据如下:
比如:M10.5对应1S钟的脉冲
L C#30
S C 2
A M 50.1
R C 2
NOP 0
LC C 2
T "move"
A C 2
)
NOT
= M 50.2
该程序的缺点就是每种CPU都适合,比如CPU313C就不行!所以CPU313C的程序就不相同,如下:
程序段5:
A(
A M 11.5
L S5T#30S
SD T 1
NOP 0
NOP 0
NOP 0
A T 1
)
NOT
= M 13.5
程序段6:
A M 12.5
CU C 2
BLD 101
A M 13.5
L C#0
S C 2
NOP 0
NOP 0
LC C 2
T DB1.DBW 0
A C 2
= M 50.2
所以以上的两种方法会占用WINCC变量授权!而且不是所以的CPU程序都一样,所以比较麻烦。
然后在符号表中新建二个变量AA及move
在OB1中写程序
程序段15
A(
A M 12.5
CD C 1
BLD 101
A M 50.1
L C#30
S C 1
NOP 0
Wincc画面制作--动态变化
Wincc画面制作—动态变化相关介绍,请参考另外文章:Step7及Wincc新手入门教程:介绍西门子Step7和Wincc通讯方法Wincc画面制作--窗口的使用:介绍画面切换及弹出框本文介绍画面上物体的动态变化,变量连接等不做详细介绍,请参考以上。
1.多个位置变化如下所示,给圆三个位置,分别为上中下,当前位置为(X=330,Y=460),当上位置信号触发,Y就变为300,中间位置触发Y变为380,不在任意一个位置Y 变成530,且圆变成红色,其它三个位置为绿色。
在属性的位置Y添加代码如下:主要说侠表达式含义:'HMI_UpPos'+2*'HMI_MidPos'+4*'HMI_DownPos'虽然每个变量都是BOOL 量,但是在选择数据类型的时候我们可以选择模拟量:然后对此定义范围,如下我们看到有5个范围: 0---------------不在任意一个位置,定义Y=5301---------------就是当HMI_UpPos 变量为1时,也就是在上位置,定义Y=300 2---------------就是当HMI_MidPos 变量为1时,也就是在中位置,定义Y=380 3--------------不在任意一个位置,定义Y=5304---------------就是当HMI_DownPos 变量为1时,也就是在下位置,定义Y=460 其它--------------表达式的值不等于上述任意值,Y=530那么问题来了,既然只有3个位置,数值范围可以取“等于1” “等于2” “等于4”和“其它”4项吗,而不是上述的6项,测试了下,发现不行,只有4项的话“等于0”和“等于3”不会默认属于其它里面,也就无法显示在本来对于的位置。
同样的,对颜色变化做相应处理:效果如下:2.位置动态变化还是以上述圆为例,希望它可以从下面直线的一端走到另一端(X位置从330到1130)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
wincc中图形的旋转
wincc图库自带的图形是朝一个方向的,在通常的画面中应该是多种角度的,能否旋转?在图库中双击过图形,没有出现任何可以修改旋转角度的对话框!难道只能到bmp等里面去修改?
最佳答案
需要旋转的,可以用几个图拼成要的图,然后打成组,组的属性就可以设置旋转了。
如果是wincc图库中的图可以和别的打成组,那么就做一个三角形,然后复制翻转,两个三角形组成组(要小于图库中的图,并放在图库中的图的后面)再和图库中的图打成组,就可以设置旋转了。