wincc时钟控件问题
如何使用 WinCC 全局脚本访问系统时钟

如何使用WinCC 全局脚本访问系统时钟?
说明:
使用下列函数设置或读取系统时间:
∙SetSystemTime
∙SetLocalTime
∙GetSystemTime
∙GetLocalTime
系统中本地计算机时间和格林威治时间是有区别的。
函数“SetSystemTime / GetSystemTime”用于设置或读取格林威治时间。
函数“SetLocalTime / GetLocalTime”用于设置或读取本地计算机时间。
两种时间会因地理的时区不同而改变,也会受到冬令时和夏令时的影响。
两个函数使用方法相同。
操作本地计算机时间的函数是Windows 系统函数,因此它独立于WinCC 函数“GetLocalTimeString”或WinCC 早期版本的“GetLocalTime”函数。
Time_Functions.zip
图. 01
创建环境
在该FAQ 中的画面和下载,创建在WinCC Professional V11 SP2 中。
条目号:59558655 日期:2012-05-04。
WinCC中使用控件

SIMATIC HMI WinCC V6.2 SP2使用控件在线帮助的打印输出在线帮助的打印输出安全技术提示为了您的人身安全以及避免财产损失,必须注意本手册中的提示。
人身安全的提示用一个警告三角表示,仅与财产损失有关的提示不带警告三角。
警告提示根据危险等级由高到低如下表示。
危险表示如果不采取相应的小心措施,将会导致死亡或者严重的人身伤害。
警告表示如果不采取相应的小心措施,可能导致死亡或者严重的人身伤害。
小心带有警告三角,表示如果不采取相应的小心措施,可能导致轻微的人身伤害。
小心不带警告三角,表示如果不采取相应的小心措施,可能导致财产损失。
注意表示如果不注意相应的提示,可能会出现不希望的结果或状态。
当出现多个危险等级的情况下,每次总是使用最高等级的警告提示。
如果在某个警告提示中带有警告可能导致人身伤害的警告三角,则可能在该警告提示中另外还附带有可能导致财产损失的警告。
合格的专业人员仅允许安装和驱动与本文件相关的附属设备或系统。
设备或系统的调试和运行仅允许由合格的专业人员进行。
本文件安全技术提示中的合格专业人员是指根据安全技术标准具有从事进行设备、系统和电路的运行,接地和标识资格的人员。
按规定使用请注意下列说明:警告设备仅允许用在目录和技术说明中规定的使用情况下,并且仅允许使用西门子股份有限公司推荐的或指定的其他制造商生产的设备和部件。
设备的正常和安全运行必须依赖于恰当的运输,合适的存储、安放和安装以及小心的操作和维修。
商标所有带有标记符号 ® 的都是西门子股份有限公司的注册商标。
标签中的其他符号可能是一些其他商标,这是出于保护所有者权利的目地由第三方使用而特别标示的。
责任免除我们已对印刷品中所述内容与硬件和软件的一致性作过检查。
然而不排除存在偏差的可能性,因此我们不保证印刷品中所述内容与硬件和软件完全一致。
印刷品中的数据都按规定经过检测,必要的修正值包含在下一版本中。
Siemens AG Automation and Drives Postfach 48 48 在线帮助的打印输出09/2007Ⓟ 2007.本公司保留技术更改的权利目录1 使用控件 (5)2 关于 WinCC 控件和附加控件的简述 (7)3 如何插入智能 OLE 对象 (9)4 如何从“控件”标签中插入控件 (11)5 如何调整控件大小 (13)6 如何定位控件 (15)7 组态对象选项板的控件选择 (17)8 如何更改控件的注册 (19)9 如何更改控件的属性 (23)10 IXDiskSpace.DiskSpace 控件 (25)10.1 “IXDiskSpace.DiskSpace”控件 (25)10.2 如何组态磁盘空间控件 (26)10.3 如何控制内存的使用 (28)11 Siemens HMI 符号库 (31)11.1 “Siemens HMI 符号库”控件 (31)11.2 如何选择符号库中的符号 (32)11.3 如何改变对齐方式 (34)11.4 如何更改显示选项 (35)11.5 如何更改颜色 (38)12 WinCC 数字/模拟时钟控件 (41)12.1 “WinCC 数字/模拟时钟”控件 (41)12.2 如何更改时钟控件的外观 (42)12.3 如何更改数字时钟控件显示的字体 (44)12.4 如何更改时钟控件的颜色 (45)12.5 如何更改时钟控件的背景画面 (47)13 WinCC 量表控件 (49)13.1 “WinCC 量表”控件 (49)13.2 如何更改量表控件的外观 (50)13.3 如何组态量表控件的刻度 (52)13.4 如何标记特殊值范围 (54)13.5 如何更改量表控件的字体 (55)目录13.6 如何更改量表控件的颜色 (56)13.7 如何将画面分配给量表控件 (58)14 WinCC 按钮控件 (61)14.1 “WinCC 按钮”控件 (61)14.2 如何更改按钮的外观和标签 (62)14.3 如何更改按钮的颜色 (63)14.4 如何更改按钮的字体 (64)14.5 如何将画面分配给按钮 (66)15 WinCC 滚动条控件 (69)15.1 “WinCC 滚动条”控件 (69)15.2 如何更改滚动条控件的外观 (70)15.3 如何更改滚动条控件的测量区和标签 (72)15.4 如何更改滚动条控件的 3D 效果 (73)15.5 如何更改滚动条控件的字体 (75)15.6 如何更改滚动条控件的颜色 (76)15.7 如何将画面分配给滚动条控件 (77)16 Autodesk Volo 视图控件 (79)索引 (83)使用控件 1内容ActiveX 控件提供了将控制和监控系统过程的元素集成到过程画面中的选项。
WINCC的n个经典问题解答之一1

标动作来实现。
这对于用WinCC现成的鼠标动作来实现是很简单的,但是不是要在每张图上都使用相同数量且位置排列顺序一致的按钮呢?(出于对操作的一致性考虑,不能让操作人员在不同的图上,不同的位置找想要操作的按钮)这个问题的解决我们使用WinCC的脚本编程,在按钮动作中调用它的内部函数来实现。
首先,组态一幅背景画面,其中包括要显示的静态文本、OLE(例如,时钟)、所有的图形切换按钮及推出关机按钮。
第二,在背景画面中插入智能对象(Smart Object)中的画面窗口(Picture Window),并且使其的尺寸与其分级画面相同。
第三,在相应的切换按钮的属性->事件->鼠标动作中编写如下C语言脚本代码:#include\"apdefap.h\"void onClick(char *lpsz PictureName,char *lpsz ObjectName,char *lpsz PropertyName){SetPictureName(\"背景画面\", \"画面窗口\", \"电泳处理线\");} //\"背景画面\"即为始终显示地静态背景的属性名,\"画面窗口\"即为在背景画//面中插入地画面窗口(PictureWindow)属性名,\"电泳处理线\"即为分级画面//的名称这样就能方便快捷地切换画面。
11:必须始终显示的报警记录,用画面颜色闪烁来提示操作者有故障发生,可以用同样的C语言脚本(当然不是加在鼠标动作中)在背景画面的底部留下一条类似Windows状态栏的报警栏,当出现故障报警的时候在报警栏显示最近一条报警记录,操作人员可以利用按钮切换到主报警记录画面了解故障的完全信息。
12:单个部件的组态WinCC在其内部的图库里集成很多的图形对象,如水箱、电机、阀门等等,对于污水处理用的最多的是水池,搅拌机等等。
wincc实用问答

WinCC实用问题问答1、wincc Online Table control 监测的数值有中间划横线、有后面是u的是什么意思?确保WinCC运行正常和通讯没有故障的情况下,出现这种现象的原因:1、归档变量的归档时间点不同;2、归档变量在wincc 在线表格控件中显示时,使用了公共的时间列。
解决方法:1、将要在wincc 在线表格控件中的归档变量的归档周期系数设置成相同、归档/显示周期设置也设置成相同。
2、指定定时器(归档/显示周期所使用的定时器)的循环起始点(如都指定为 0)。
3、取消激活项目,再重新激活项目。
2、两个WINCC和一个PLC通信还是各控制各的如果是前者的话用一个交换机就可以了具体的你可以参考西门子工业网络通讯指南这本书很全面的3、wincc运行时间久了,速度变慢是很正常的。
做一下处理很有必要删除历史数据感觉影响不大,关键是删除归档数据。
先做个备份,然后再删除。
另外,你要注意,有没有配方等数据存在数据库里,如果没有,可以放心删除,如果有,一定要仔细点。
还有,项目的文件,不要放在c盘,否则,系统会更快变慢4、我在笔记本上运行WInCC项目,可以正常运行,可以完成一些组态开发功能,下面提示栏显示变量305/许可证1024,但是我想要激活项目时,进度条第一条显示45%,第二条显示0,不再运行,而且没有任何提示,是什么原因呢?检查:a.项目路径是否有中文名;b.错误的脚本;b.否安装了STEP7,且版本有冲突;c.安装了中文版杀毒软件及防火墙(尤其是瑞星和金山毒霸),建议将你的杀毒软件卸掉;d.更改或删除了项目文件夹内的文件;计算机名、项目存放的完整路径中不能有中文5、用按钮执行settag脚本只能实现一次绑定,当执行之后外部变量如果变化,中间变量就不变化了,怎么样才能实现始终绑定在全局脚本中使用周期脚本比如两秒一个周期,脚本内容:SetTagFLoat("内部变量",GetTagFLoat("外部变量"));6、我用的是内部变量,想用变量模拟器来模拟液位的变化,前几步做完后,到最后一步start simulation是灰色的,为什么?变量模拟器需要在wincc运行时使用,先激活项目,然后开始菜单->SIMATIC->WinCC->Tools->WinCC Tag Simulator ,打开之后edit----->new tag----->选择你需要的变量properties---->选择变量发生类型,有线性的、随机的、布尔型的等。
wincc读写定时器问题

[PLC、仪表资料][转载一西门子工程师]wincc读写定时器问题[ 2008/6/4 14:08:50 | By: 天涯 ]前日碰到了在wincc里面如何读取定时器当前时间以及设定定时器的时间问题,想起来以前曾经在西门子论坛里面看到过有人问这个问题,就去官方论坛里面search一把,果然很多帖子啊,整理了一下:-------------------------------------终于搞对了,WINCC里建立无符号32位数,改变格式DwordToSimaticBCDTimer,线形标定过程值0--1000,变量值0-1,地址选择对应的定时器就OK了,要注意的是I/O域的数据格式选择为字符串。
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――将当前时间值的BCD码传给数据块―――――――――――――――――――――――――――――――――――――――――――――――――――――――――其实平常最多使用的是直接把定时器的bi端接到一个MW,然后从WINCC中读。
用MW20做为定时器的时间设定值 , 前面用一条I_BCD码转换指令传MW20定时时间, 结果输入0_999 的数时间对应0_9.99S没有问题, 但用0.1S做时间单元,设定4096以上的数时有时定时器不能正常启动. 总的说来还是对这块的帮组没有看明白,那位给指点下,我想连续的可以设定时间值在10S-50S 该怎么设定s5#time数据格式是低12位为BCD码时间数;高2位是时基:00-10ms01- 100ms10- 1s11- 10s所以大于4096就不正常了--------------------------------------找了台300plc,测试了下,第一个方法就可以(即:WINCC里建立无符号32位数,改变格式DwordToSimaticBCDTimer),我用的是sodts定时器指令,其bcd输出可以显示当前计时时间,设定端也可以从wincc直接改写,很简单啊。
Wincc常见问题50问要点

1问:如何触发计算机扬声器的声音?答:编写如下C-Action:#pragmacode("kernel32.dll");BOOLBeep(DWORDdwFreq,DWORDdwDuration);#pragmacode();Beep(500,500);2、问:如何通过C脚本来确定报警信息?答:首先必须在画面中插入报警控件,可以用如下两种方式来确认信息:(1)、确认单条信息4版本和高于此版本的WinCCBOOLOnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)5版本和高于此版本的WinCCBOOLAXC_OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)(2)、确认报警窗口所有可见的报警4版本和低于此版本的WinCCBOOLOnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)5版本和高于此版本的WinCCBOOLAXC_OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)3、问:如何在WinCC中读取系统时间?答:通过如下C-Action:#pragmacode("kernel32.dll");VoidGetLocalTimes(SYSTEMTIME*lpst);#pragmacode();SYSTEMTIMEtime;GetLocalTime(&time);SetTagWord("Varname",time.wYear);SetTagWord("Varname",time.wMonth);SetTagWord("Varname",time.wDayOfWeek);SetTagWord("Varname",time.wDay);SetTagWord("Varname",time.wHour);SetTagWord("Varname",time.wMinute);SetTagWord("Varname",time.wSecond);SetTagWord("Varname",time.wMilliseconds);4、问:如何经Windows对话框设置日期时间?答:通过调用Windows对话框实现。
WINCC的50个经典问题解答

WINCC的50个经典问题解答1、问: 如何触发计算机扬声器的声音?答: 编写如下C-Action:#pragma code("kernel32.dll");BOOL Beep(DWORD dwFreq,DWORD dwDuration);#pragma code();Beep(500,500);2、问: 如何通过C脚本来确定报警信息?答: 首先必须在画面中插入报警控件,可以用如下两种方式来确认信息: (1)、确认单条信息4版本和高于此版本的WinCCBOOL OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName)5版本和高于此版本的WinCCBOOL AXC_OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName) (2)、确认报警窗口所有可见的报警4版本和低于此版本的WinCCBOOL OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)5版本和高于此版本的WinCCBOOL AXC_OnBtnVisibleAckn(char*lpszPictureName,char*lpszObjectName)3、问: 如何在WinCC中读取系统时间?答: 通过如下C-Action:#pragma code("kernel32.dll");Void GetLocalTimes(SYSTEMTIME*lpst);#pragma code();SYSTEMTIME time;GetLocalTime(&time);SetTagWord("Varname",time.wYear);SetTagWord("Varname",time.wMonth);SetTagWord("Varname",time.wDayOfWeek);SetTagWord("Varname",time.wDay);SetTagWord("Varname",time.wHour);SetTagWord("Varname",time.wMinute);SetTagWord("Varname",time.wSecond);SetTagWord("Varname",time.wMilliseconds);4、问: 如何经Windows对话框设置日期时间?答: 通过调用Windows对话框实现。
wincc时间格式的更改

时间显示的格式是在WinCC在线趋势控制中通过“控制面板>区域和语言设置>区域选项>自定义>时间”设置的。
在此可指定想使用12还是24小时的显示格式。
如果设置被更改,系统必须重新启动才能使更改生效。
1.利用Wincc本身的时间控件,就是那个不能变24小时制的。
在打开画面中做一C动作。
代码如下:SetPropChar(lpszPictureName,"控件1","LocaleID","2052");问题解决。
对于时间控件显示时间的一点补充在第一种方法里,在打开画面里赋了C动作之后,在画面一打开的时候时间控件就有个框,非得在其他地方点一下才可以,问我怎么解决。
我刚看了一下,出现那个虚线框的原因是因为在对控件N赋值之后,控件自然就成为了画面的焦点。
我看了一下,在控件的属性里,有一项叫“FocusRect”,把这个取消就可以了。
2.在全局脚本中做一动作。
代码如下:#pragma code("kernel32.dll");void GetLocalTime(SYSTEMTIME* lpst);#pragma code();SYSTEMTIME time;GetLocalTime(&time);SetTagWord("Time1",time.wYear );SetTagWord("Time2",time.wMonth );SetTagWord("Time3",time.wDay );SetTagWord("Time4",time.wHour );SetTagWord("Time5",time.wMinute );SetTagWord("Time6",time.wSecond );SetTagWord("Time7",time.wDayOfWeek );其中Time1~Time7为所建立的变量,我建立的是16位有符号数,在画面上做几个输入输出域连上即可。