wincc经典问题
- 格式:doc
- 大小:105.00 KB
- 文档页数:22
WINCC试题(1)劳动技能竞赛WINCC试题第⼀部分1.新建⼀个wincc项⽬框架(5分)试题要求:新建⼀个项⽬名为“Project_<姓名>”的WINCC项⽬,类型为单⽤户项⽬,并使⽤OS项⽬编辑器快速创建HMI机框架,然后在图形编辑器中新建名为“Picture1.PDL”、“Picture2.PDL”的两个画⾯,并在画⾯树管理器中建⽴名为“场景演⽰”、“报警”的画⾯容器,把画⾯“Picture1.PDL”分配给“演⽰”画⾯容器、画⾯“Picture2.PDL”分配给“报警趋势”画⾯容器。
2.新建⼀个S7驱动程序,建⽴变量,完成HMI与PLC之间通讯。
(15分)试题要求:在变量管理中添加S7驱动程序,组态TCP/IP通道单元与S7 300进⾏通讯,并建⽴变量名为Start、Stop、Run三个⼆进制变量,在“Picture1.PDL”画⾯中添加两个按钮,并从wincc图库中添加电动机,编辑按钮事件和电动机符号外观,并在PLC程序中编简单的电机启停程序,通过HMI启动/停⽌按钮控制电动机启停,⽤颜⾊反映电机的起停状态。
StartRun状态Stop3.变量模拟器(5分)试题要求:在变量管理器的内部变量中建⽴名为Analog 浮点型变量,通过变量模拟量改变Analog的值,并在在“Picture1.PDL”画⾯添加输⼊/输出域、棒图显⽰变量值。
Analog数字显⽰Analog棒图显⽰4.变量记录(5分)试题要求:将Analog浮点型变量加⼊变量记录中(循环归档,每隔3秒归档⼀次),在“Picture2.PDL”画⾯中添加趋势控件,并结合变量模拟器进⾏仿真。
5.报警记录。
(15分)试题要求:在变量管理器的内部变量中建⽴名为warn、alarm⼆进制变量和warn_value、alarm_value浮点型变量。
在“Picture1.PDL”中利⽤IO域连接warn_value、alarm_value 设定警告和报警值,当Analog的值⼤于warn_value或alarm_value设定值时将warn或alarm置位,同时由warn或alarm触发报警记录,在“Picture2.PDL”画⾯中添加报警控件,在并结合变量模拟器进⾏仿真。
WinCC7.0授权的使用方法及常见问题处理WinCC 软件受法律保护,且只能在具有有效许可证的完整状态下使用。
安装的每个软件以及所用的每个选件都需要获得有效的许可证,才能不受限制地使用 WinCC。
从WinCC7.0开始,亚洲版(Asia)的WinCC实行硬狗授权的模式,即WinCC在使用的过程中既要检测系统里是否安装了匹配的授权文件,同时还检测LICENSE_KEY硬件狗是否插在电脑上。
下面就如何正确使用WinCC7.0授权以及在使用过程中出现的常见问题的处理方法进行简单介绍。
1授权的使用方法购买了WinCC7.0的授权后,会得到一套WinCC安装软件和一个用来安装授权的LICENSE_KEY,LICENSE_KEY中包含所购买WinCC功能的授权,LICENSE_KEY外观如图1。
图1安装好WinCC软件后,将此LICENSE_KEY插到电脑的USB口上,然后通过Automation License Manager (授权管理器,随WinCC软件一起提供,且使用Automation License Manager不需要授权)将LICENSE_KEY中的授权导入到电脑中,只有标记有“Hardlock”字样的LICENSE_KEY,在传送完授权后仍然需要插到电脑上。
导入授权的方法如下:打开Automation License Manager,如果安装了SIMATIC Logon,将会弹出一个登录对话框,如图2,图2点“Cancel”将进入如下界面,如图3。
图3用鼠标选中“LICENSE_KEY”,右边会列出LICENSE_KEY中的授权文件,选中LICENSE_KEY中的授权文件拖拽到电脑的目标盘(不建议放到系统盘,避免系统崩溃造成授权文件丢失);或者用鼠标选中LICENSE_KEY中的授权文件,点击右键,如图4。
图4选Transfer(传送),选中目标路径,如图5,至此WinCC的授权导入就完成了。
1、WINCC在进入某一画面时出现Unhandled exception was raised.Lookfile"c:\program Files\semens\w incc\Diagnose\PDLRTSEH.LOG"for details.出现这种情况前只是删除了该画面的一个矩形图。
--------------------------------------------------------------简单的矩形图删除不会有这个问题的,打开记事本看看进一步的错误信息,有什么错误代码.才能进一步找到错误原因.2、在停电之后5611网卡通讯不上,硬件图标上有黄色的叹号,点测试显示“错误0x0382:未找到内部驱动程序信息(L2)”--------------------------------------------------------黄色的叹号或者感叹号说明没有给CP5611驱动,请手动查阅目录C:\WINDOWS\INF或者C:\WINNT\INF,驱动的信息(OEM**.INF)会在这些目录中,卸载CP5611重新安装即可.CP5611完全卸载方法步骤:1.设备管理器卸载.2.打开注册表WINDOWS START MENU->RUN->"REGEDIT",删除下面路径中的所有的条目:HKEY_LOCAL_MACHINE\SOFTWARE\SIEMENS\SINEC\LOGDEVIES.3.重新启动计算机,再次安装5611驱动.WINCC组态服务器不可用,是否打开项目,将本地计算机作为服务器2011-11-21 15:07:56| 分类:iphone | 标签:|字号大中小订阅/leishuang2005/blog/item/e6ce8c47654a2a046b63e50e.html我从别人那考了一个WINCC例子看可是为什么一打开就是显示“组态服务器不可用,是否打开项目,将本地计算机作为服务器”我点了启动本地服务器为什么总是错误,望高人指点问题在于你直接拷贝人家已经在使用的项目文件夹,哪个文件夹是共享的,特别是人家正在运行的项目,这样的项目文件直接复制过来是不能用的,会缺少文件.正确的复制方法:1)关闭正在运行的WINCC项目,可以在WINCC浏览器里关闭,也可以在开始彩单->运行->输入CMD ->在里面窗体输入命令RESET WINCC来强制关闭WINCC及相关文件.2)取消项目文件夹的共享标记.然后复制项目文件夹(当然项目中也可能调用其它可执行文件,这些你需要向设计方了解),也可以是WINCC安装路径里面的项目复制器复制项目到指定计算机.只有用这样的方法复制的项目文件才能保证WINCC功能部分软件是完整可用的(WINCC内部直接调用可执行文件的执行的功能除外).你如果是拷贝的整个项目的话,你需要启动本地服务器,然后更改项目里面的计算机名字为你的本机名字,然后关闭wincc再重新打开wincc。
wincc中的C例题wincc中的C语言典型题Wincc用动态向导传送S5/S7数据变量Text library设制多语种文本间接寻址:间接变量是一个文本变量16位字符集类型的变量。
使用时必需选中间接寻址。
项目文件的确定:#include"apdefap.h"void onClick(char *lpszpicturename,char *lpszobjectname,char*lpszproper){Bool bRet;char szprojectFile[_MAX_PATH+1];CMN_ERROR ERROR;bRet=DMGetRuntimeProject(szProjectFile,_MAX_PATH+1,& ERROR);IF(bRet==False){printf("\r\nError inDMGetRuntimeProject()\r\n","\t%s\r\n",Error.szErrortext);return;}printf("\r\nProjectFile:\r\n%s\r\n",szpProjectFile);}确定项目路径:#include"apdefap.h"void onClick(char *lpszpicturename,char *lpszobjectname,char*lpszproper){Bool bRet=False;char szprojectFile[_MAX_PATH+1];CMN_ERROR ERROR;char* psz=NULL;IF(bRet==False){printf("\r\nError inDMGetRuntimeProject()\r\n","\t%s\r\n",Error.szErrortext);return;}psz=strrchr(szProjectFile,'\\');if(psz!=NULL){*(psz+1)=0;}printf("\r\nProjectPath:\r\n%s\r\n",szpProjectFile);}确定计算机名称:#include "apdefap.h"void onClick(char *lpszpicturename,char *lpszobjectname,char*lpszproper){#pragma code("Kernel32.dll");Bool GetComputerNameA(LPSTR ComputerName,LPDWORD pdwsize);#pragma code();Bool bRet=FALSE;charszComputerNameA[MAX_COMPUTERNAME_LENGTH+1];DWORD dwSize=MAX_COMPUTERNAME_LENGTH+1;bRet=GetComputerNameA(szComputerName,&dwSize);if(bRet==FALSE){printf("\r\nComputerName:\r\nUnknow computer\r\n");return;}printf("\r\nComputerName:\r\n",szComputerName);}确定用户名:#include "apdefap.h"void onClick(char *lpszpicturename,char *lpszobjectname,char*lpszproper){#pragma code("advapi32.dll");Bool GetUserNameA(LPSTR UserName,LPDWORD pdwSize);#define UNLEN 256#pragma code();Bool bRet=FALSE;char szUserName[UNLEN+1];DWORD dwSize=UNLEN+1;bRet=GetUserNameA(szUserName,&dwSize);if(bRet==FALSE){printf("\r\nUserName:\r\nUnknow User\r\n");return;}printf("\r\nUserName:\r\n%s\r\n",szUserName);}windows API的函数也位于同的DLL中,就如Wincc API的函数一样。
wincc打开时自动关闭
winccv7.0sp1刚装好,打开时闪一下就自动关闭了,已经授权过了,请问是什么原因啊?操作系统是XPSP3,装了几次了.
最佳答案
1、WinCC在程序启动后又自动关闭,有以下可能性:
、授权过期。
、缺少相应的授权。
、升级授权未被正确激活。
、已有授权损坏、未被验证。
2、转帖:WinCC打开时显示一会后就立即关闭:
问:装WinCC时授权管理器版本V1.1,接着装STEP7,里面默认授权管理器是V3.0,重启后授权管理器显示不正常,能授权,WinCC打开时显示一会后就立即关闭,先装了WinCCV6.2ASIA,里边自带V1.1版本的授权管理器;再装了STEP7V5.4专业版的,自带V3.0的授权管理器,安装时考虑到授权管理器可能会冲突,想取消后面的授权安装,但取消不了。
真的不想再重装,太好时间了,想请高手指点下,是否有其他解决方案。
答:卸掉现在的授权管理器,然后安装哪个高版本的授权管理器才行,WINCC运行时会检查授权管理器,授权管理器不能自动启动就会出现所说的问题。
如果还不行,可能要重新安装WINCC,而且注意STEP7一般要在WINCC前面安装。
我今天到了现场了,原来不是死机,而正象yuanle 大哥说的,断线了,这个一天发生几次,我检查接头非常牢固,内部接线也很牢固。
现场网络为CPU315-2DP,其中在315的DP口插上一个可以编程的DP插头1(终端电阻OFF)到A从站(终端电阻ON);然后又再315的DP口插上一个可以编程的DP插头2(终端电阻OFF)到西门子的平板电脑(终端电阻ON),一共就三个设备。
在CPU315上的两个插头换为了一个(终端电阻OFF),其它插头电阻未更改;最后我把各个插头的屏蔽也给压好。
运行了一天没有出现通讯中断的问题。
还有这里还有我们公司的一台设备,与上面网络相同,只有CPU315上也接了两个插头(一个可编程的,一个不可编程的)其他的都一样,一直没有出现过问题,请问各位这个通信中断的故障和插头的形式有关吗?急!wincc运行死机!•悬赏分:5•- 解决时间:2008-7-20 10:34我装的系统是XP PRO+SP3,软件STEP7 V5.3+SP3.WINCC V6.0+SP3.wincc运行一段时间后死机(画面不动,数据变灰色,一天或几天出现一次).请问这是什么原因造成的.问题补充:计算机 2.8GHZ,512M.120Gwincc直接跟PLC连,一共有四台机器,原先有两台死机是因为网卡不行,后来换了一直运行很好.现在四台机器都隔一段时间出现死机,有时一天死一次.重启之后一切恢复正常.V5.3+SP3和V6.0+SP3兼容吗?问题ID: 23254提问者:钢铁娃娃- 新生第1级最佳答案重新安装操作系统,XP+SP2已足够。
检查硬件是否过热导致死机。
若不开WinCC则无死机发生,则故障在WinCC上。
”数据变灰色“表明数据通讯中断,时断时续说明受到网络干扰,检查网卡工作是否正常。
换一台机器运行测试一下,若故障依旧检查网络交换设备是否正常工作。
一般来说机器本身硬件故障的可能性较大。
回答者:506212lw - 高级技术员第7级2008-7-10 08:03 提问者对于答案的评价:谢谢!问题解决了!工控机网卡问题!您觉得最佳答案好不好?50% (0) 50% (0)其他回答你的问题就不光是死机的问题了!变量变灰色是通信不上了!你的计算机有没有连接PLC?是不是通信繁忙造成的?回答者:有谁共鸣- 助理工程师第8级 2008-7-10 00:41wincc 6.0在xp sp3上没有试过,能支持么你是运行仿真还是wincc与plc直接通信,如果直接通信,那么应该是电缆或者协议的问题。
转自西门子网站WinCC Panel IPC/PG论坛,作者西门子Lemon使用 WinCC 有很多禁忌,违反了它们,可能会导致 WinCC 运行不正常,而且通常没有挽救方案。
以下总结了一些常见的禁忌,引以为戒。
1、计算机名称,变量名称等不要含有特殊字符,包括中文字符这些特殊字符或中文字符在某些情况下,将无法被 WinCC 正常解释,可能会导致WinCC 运行异常。
在 WinCC 在线帮助的“使用 WinCC〉使用项目〉附录〉非法的字符”中可以找到那些不允许使用的字符。
2、安装 WinCC 后,不要修改系统时间或时区时间作为项目归档数据的重要参数,如果混乱,将导致数据库紊乱。
/WW/view/en/20423033、WinCC 安装完成后,不要再更改计算机名称因为 WinCC 使用 SQL Server,更改计算机名称后,并非数据库中关联计算机名称的所有参数都能自动更新,这将导致在某些访问下会出错。
如果 WinCC 安装后,发现计算机名称不符合要求,那就请先卸载 WinCC,再卸载 SQL Server,然后再重新安装 SQL Server 和 WinCC 吧。
4、项目名称及存储项目的路径中不要包含中文热线上经常接到 WinCC 项目无法激活的问题,其原因就是项目路径中包含中文字符。
此时只需将项目另存为到纯英文的路径下即可。
5、登录计算机的用户名不要使用中文,密码不要为空默认情况下密码为空的用户权限受限。
虽然可以按照如下设置取消受限,但不建议这么做。
在 Windows 控制面板的“管理工具〉本地安全设置〉本地策略〉安全选项”中,账户:限制密码为空的账户的访问权限。
6、不要轻易修改操作系统的安全设置,DCOM 设置等参数对于 WinCC 的分布式应用,以及 OPC 应用中,这些参数至关重要。
如果由于擅自改动无法正常运行,可以按照如下操作恢复即可(适用于 WinCC 6.2 sp2 以上的版本):开始〉程序〉SIMATIC〉SIMATIC Security Control〉创建设置,单击“应用”按钮即可。
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对话框实现。
大多数朋友都遇到过安装STEP7 5.3 WINCC6.0 这两款软件出现各种问题!说说咱们的经验吧,为后来的朋友都节省时间,免得到处寻找方法。
我当年也曾经遇到过好几次,各个版本安装条件也不一样,有知道的朋友们帮忙留个言,我替正在受此为难工控朋友先谢过了!STEP7 V5.3 安装完毕不能运行如下图:解决方法:启动服务--Automation License Manager Service 并设定成自动(控制面板--管理工具--服务)不能安装STEP7 总是提示需重新启动,但重启动后扔提示需重启!可能原因:你的系统装有“暴风影音”播发器,此软件与STEP7 V5.3有冲突,请将其卸载,再重新启动,就能解决此问题错误描述:<br><br>您需要具备使用STEP 7软件的有效许可证密钥。
但无法找到此许可证密钥。
<br><br>如如何纠正或避免错误:从安装CD重新安装自动化许可证管理器。
Step7 v5.3安装步骤相信有很多人都知道了,但是为了满足大部分入门者的要求,转一份贴子Step7 v5.3 Professional 安装步骤1 安装Windows 2000 SP42 安装 IE6\IE6b2800\ie6setup.exe3 设置 Windows 2000 默认语言为"英语(美国)"控制面板->区域选择->设置默认值, 选择"英语(美国)"4 安装Step7 v5.3\ STEP7_PROFESSIONAL_2004\Setup.exe注: 源文件的路径不能有汉字, 否则Setup.exe不能执行选择: Step7 v5.3S7-SCL v5.3S7-GRAPH v5.3 (Graph 7 )S7-PLCSIM v5.3 (PLC仿真)Aotomation License Manager v1.1选择语言:English提示: Transfer License KeysYes, Transfer should take place during installationNo, Transfer license keys later选择: No, Transfer license keys later5 恢复Windows 2000 默认语言为"中文(中国)"6 安装 Step7 v5.3 和Graph v5.3授权将"\Step7 v5.3+graph5.3授权"目录拷贝到硬盘执行STEP7V53key.exe安装 Step7 v5.3授权A1710453执行s7graph53.exe安装Graph v5.3授权A1S7GR53注: 我并没有先装Step7 v52有些朋友将WIN2000的"当前用户的设置/您的区域设置"设为英语,这是没有用的,应将"系统的语言设置/设置默认值"设为英语才有效7. STEP7与Windows操作系统的兼容性如下表列出了各个版本的STEP7软件与Windows操作系统的兼容情况:STEP7版本 Win95 Win98 Win ME WinNT 4.0+SP3 Win2000 Professional WinXP Professional 2) IE浏览器版本V 3.1 X - - - - - -V 3.2 X - - X - - -V 4.01 X - - X - - -V 4.02 X - - X - - -4.02.5以上版本 X X - X - - -V 5.0包括SP补丁 X X - X - - >=4.01V 5.1 X X - X - - >=4.01V 5.1包括SP补丁 X X X X X1) - >=4.01V 5.2 X X3) X X4) X5) X >=5.0V5.3 - - - - X6) X7) >=6.0X 表示相互兼容, - 代表相互之间不兼容1) 必须使用带SP补丁的STEP7安装光盘,V 5.1 SP2以上版本需要使用Win2000 SP2操作系统;2) 不支持Windows XP家庭版,目前多数PC机随机安装的都是Windows XP Home Edition. ;3) 需要使用Windows 98 SE (Second Edition第二版);4) 需要使用Windows NT 4.0带SP6a补丁的操作系统;5) 操作系统至少是Windows 2000 + SP1补丁;6)操作系统至少是Windows 2000 + SP3补丁;7) 操作系统至少是Windows XP专业版 + SP1补丁; 8) 8) Windows操作系统都为英文版本和英文字符集;论坛上很多人受西门子软件安装需重新启动机器,然而启动机器后又提示重新启动机器,然而反复重新启动仍然出现这样的提示,导致软件不能安装。
、问:如何触发计算机扬声器的声音?答:编写如下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对话框实现。
具体如下:#i nclude"apdefap.h"void onClick(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName) {ProgramExcute("c:\\win98\\control.exe timedate.cpl");} 其中执行的程序路径,需根据具体情况填写。
5、问:如何在WinCC中调用SQL语言?答:1、创建一个SQL文件,此文件在ISQL中建立,文件内包含所要执行的SQL语句。
Windows对话框实现。
具体如下:2、在WinCC中用C Script 调用上述SQL文件,如下所示:#i nclude"apdefap.h"void OnLButtonDown(char* lpszPictureName,char* lpszObjectName,char* lpszPropertyName,UINT nFlags,int x,int y){char*a="c:\\siemens\\common\\SQLANY\\ISQL-q-b-cUID=DBA;PWD=SQL;DBF=E:\\testsql\\testsqlRT.DB;DBN=CC_testsql_99-12-03-12:48:26R;READE:testsql\\test.sql";Printf("%s\r\n",a);ProgramExcute(a);}下面是一个简单的SQL文件内容:select *from pde#hd#t#test;output to e:\\test2.txt FORMAT ascii注意:文件名及路径中不要带空格。
6、问:如何整点启动归档?答:在"Globle Script"下的Project function编写程序函数:cyclicarchiveBOOL cyclicarchive(){#pragma code("kernel.dll");void GetLocalTime(SYSTEMTIME*lpsz);#pragma code();SYSTEMTIME time;Int t1;GetLocalTime(&time);T1=time.wMinute;If(t1==00){SetTagBit("startarchive",1);Return(BOOL) (GetTagBit("startarchive"));}}在Tagloging中的"Properties of process tag"中的"archive tag"Tab下的Archive type选择Cycle-selective,在"Event"标签下的"StartEvent"内选择cyclicarchive函数。
7、问:How can I set and reset a WinCC variable by mouse click with C script?答:The following function shows how you can alternately set and reset a WinCCvariable by mouse click.#i nclude "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){BOOL z;z=GetTagBit("MyBitVariable");if (z==0)SetTagBit("MyBitVariable",1);elseSetTagBit("MyBitVariable",0);}8、问:How can I program a waiting function (Sleep) in WinCC?答:The following sample program shows how the "Sleep" is used.#pragma code("Kernel32.dll")void Sleep(int milliseconds);#pragma code()Sleep(1000); //time specification in millisecondsWarning:If you use Sleep(), processing the C script is interrupted for the time indicated. Re quests for the interrupted function cannot be processed during this time.9、问:How can I output a SIMATIC timer minutes and seconds in WinCC?答:If you want to output a SIMATIC Timer in minutes and seconds in WinCC, th en in WinCC please use a static text in the Graphics Designer to which you interface the following action:char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){char *p;DWORD hilf;int min, sec;p=SysMalloc(10);hilf=GetTagDWord("Time");min=hilf/60000;sec=hilf%60000/1000;sprintf(p,"%d min %d sec",min,sec);return p;}The "Time" variable linked to the I/O field must have the following properties:•Data type "32-bit value without sign"•Format adaptation "DwordToSimaticBCDTimer"•Address: data area "Times" and addressing "Word"10:快捷地切换画面通常要将所有的设备都显示在一张画面里是不可能的,所以将设备按照处理工艺的功能步骤分级在多张画面内,以一个污水处理厂为例分为电泳线、前处理线、生化线、加药线等,之间的切换使用按钮的鼠标动作来实现。
这对于用WinCC现成的鼠标动作来实现是很简单的,但是不是要在每张图上都使用相同数量且位置排列顺序一致的按钮呢?(出于对操作的一致性考虑,不能让操作人员在不同的图上,不同的位置找想要操作的按钮)这个问题的解决我们使用WinCC的脚本编程,在按钮动作中调用它的内部函数来实现。
首先,组态一幅背景画面,其中包括要显示的静态文本、OLE(例如,时钟)、所有的图形切换按钮及推出关机按钮。
第二,在背景画面中插入智能对象(Smart Object)中的画面窗口(Picture Wi ndow),并且使其的尺寸与其分级画面相同。
第三,在相应的切换按钮的属性->事件->鼠标动作中编写如下C语言脚本代码:#i nclude\"apdefap.h\"void onClick(char *lpsz PictureName,char *lpsz ObjectName,char *lpsz PropertyName){SetPictureName(\"背景画面\", \"画面窗口\", \"电泳处理线\");} //\"背景画面\"即为始终显示地静态背景的属性名,\"画面窗口\"即为在背景画//面中插入地画面窗口(PictureWindow)属性名,\"电泳处理线\"即为分级画面//的名称这样就能方便快捷地切换画面。