2022年WINCC技巧集锦 2.pdf

上传人:Che****ry 文档编号:34264267 上传时间:2022-08-15 格式:PDF 页数:9 大小:62.47KB
返回 下载 相关 举报
2022年WINCC技巧集锦 2.pdf_第1页
第1页 / 共9页
2022年WINCC技巧集锦 2.pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年WINCC技巧集锦 2.pdf》由会员分享,可在线阅读,更多相关《2022年WINCC技巧集锦 2.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、WINCC 技巧集锦如何确认信息?首先必须在画面中插入报警控件,可以用以下两种方式来确认信息:可以用如下的函数来确认单条信息:4 版本和低于此版本的WinCC:BOOL OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName) 5 版本和高于此版本的WinCC:BOOL AXC_OnBtnSinglAckn(char*lpszPictureName,char*lpszObjectName) 可以用如下的函数确认报警窗口所有可见的报警:4 版本和低于此版本的WinCC:BOOL OnBtnVisibleAckn(char*lpszPictu

2、reName,char*lpszObjectName) 5 版本和高于此版本的WinCC:BOOL AXC_OnBtnVisibleAckn(char*lpszPictureName,char*lpszObje 如何实现从WinCC 运行画面跳转至WinCC 控制中心?最好的方式是在WinCC 运行画面上做一个按钮,该按钮应该置为密码保护,在该按钮上设置 C-action 。低于 WinCC V5.0 :#pragma code(user32.dll) Bool SetForegroundWindow(HWND); #pragma code() HWND handle; Handle=Find

3、Window(MCPFrameWndClass,NULL); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - If(!SetForegroundWindow(handle)printf(rn SetForeground fails); 5.0 版本和高于此版本的WinCC :#pragma code(user32.dll) Bool SetForegroundWindow(HWND); #pragma code() HWND h

4、andle; Handle=FindWindow(WinCCExplorerFrameWndClass,NULL); If(!SetForegroundWindow(handle) printf(rn SetForeground fails); 如何在WinCC 中读取计算机系统时间?可以编写如下的C-action :#pragma code(kernel32.dll); Void GetLocalTimes(SYSTEMTIME* lpst); #pragma code(); SYSTEMTIME time; GetLocalTime(&time); SetTagWord(Varname,t

5、ime.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 ); 如何经由Windows对话框设置日期和时间?可以将修改日期、时间的Window

6、s 对话框调出来,调用程序如下:#include apdefap.h 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - void onClick(char*lpszPictureName,char*lpszObjectName,char* lpszPropertyName) ProgramExecute(C:WIN95control.exe timedate.cpl); 注意:您在使用此程序时,需根据您的Control Panel

7、安装的具体路径来填写。如何在WinCC 里用 C 语言调用SQL 语言?1、创建一个SQL 文件。此文件在ISQL 中创建,文件内容是所希望执行的SQL 语句。2、在 WinCC 的 C Script 中编写程序调用此SQL 文件,如以下程序所示:#include apdefap.h void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y) char*a=C:SIEMENSCommonSQLANYISQL-q-b-c UID

8、=DBA;PWD=SQL;DBF=E:testsqltestsqlRT.DB; DBN=CC_testsql_99-12-03_12:48:26R;READ E:testsqltest.sql; printf(%srn,a); ProgramExecute(a); 下面是一个简单的SQL 文件内容:select * from pde#hd#t#test; output to E:test2.txt FORMAT ascii 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共

9、9 页 - - - - - - - - - 注意 :文件名及路径中不要带空格。如何整点启动归档?在Global Script下的 Project functions编写函数: cyclicarchive BOOL cyclicarchive() #pragma code (kernel32.dll); void GetLocalTime (SYSTEMTIME* lpst); #pragma code(); SYSTEMTIME time; Int t1; GetLocalTime(&time); t1=time.wMinute; if(t1=00) SetTagBit(startarchiv

10、e,1); return(BOOL)(GetTagBit(startarchive); 在 Tagloging中的 Properties of process tag中的 Archive Tagtab下的 Archiving type选择 Cycle-selective,在 Event 标签下的 Start Event内选择 cyclicarchive函数。如何在按键组合被禁用的情况下,从WinCC 运行环境进入WinCC Control Center?最好是做一个按钮,该按钮需要用用户权限保护,在该钮中编写如下C-action :低于 WinCC 5.0版本:#pragma code (us

11、er32.dll); BOOL SetForegroundWindow(HWND);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - #pragma code(); HWND handle; handle=FindWindow(MCPFrameWndClass,NULL);If (!SetForegroundWindow(handle) Printf (rn SetForeground fails); WinCC 5.0版本以及更

12、高的版本:#pragma code(user32.dll); BOOL SetForegroundWindow(HWND);#pragma code(); HWND handle; handle=FindWindow(WinCCExplorerFrameWndClass,NULL); If (!SetForegroundWindow(handle) Printf (rn SetForeground fails); 怎样对一个WinCC 的项目进行转换?当对一个V4.X 版本的 WinCC 项目升级到5.X 时,V4.X 下的项目必须进行版本转换。若使用交叉索引 编辑器时 ,必须保证项目已进行了

13、正确无误的转换。项目转换分下列几步依次完成: 在 WinCC 资源管理器中,选中图形编辑器,击鼠标右健。1.全局库的转换在弹出下拉菜单中选中转换全局库 条目 ,系统会自动对全局库进行转换, 转换结束后退出。2.项目库的转换在弹出下拉菜单中选中转换项目库 条目 ,确认后系统自动对库进行转换。3.图形画面转换在弹出下拉菜单中选中转换画面 条目 ,在弹出画面按 确认 后,系统自动进行所有画面的转换。注意:包含有 未定义对象 的画面 ,如在 PC 机上未装相应对象服务器的,决不要转换 , 否则画面会被损坏。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -

14、 - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 4.基本数据转换分屏向导:在WinCC 资源管理器中,打开分屏向导(在基本数据项下)的弹出式菜单,并选择打开 条目。报警记录向导:在WinCC 资源管理器中,打开报警记录向导的弹出式菜单(在基本数据项下),并选择 打开 条目。我用 WinCC Web Navigator时,为什么总是提示错误信息The maximum permissible number of user is connected to the WinCC-Server?您使用 WinCCV5/SP1和 Web

15、 NavigatorV1.0时,您看到以上错误信息,错误原因是:实际用户数目超过授权数量限制。措施:升级WebNavigator,使其能支持更多的客户端。缺少授权, WinCC 会提示您所缺少的授权。措施:添加所缺的授权。未将 WebNavigatorRT.exe加在 WinCC 启动列表中。措施:将此文件加入WinCC 的启动列表中。#pragma 预处理指令详解在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C 和 C+ 语言完全兼容的情况下,给出主机或操作系统专

16、有的特征。依据定义 ,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为 : #Pragma Para 其中 Para 为参数,下面来看一些常用的参数。(1)message 参数。Message 参数是我最喜欢的一个参数,它能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为:#Pragma message(“消息文本 ”)当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -

17、第 6 页,共 9 页 - - - - - - - - - 当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有正确的设置这些宏,此时我们可以用这条指令在编译的时候就进行检查。假设我们希望判断自己有没有在源代码的什么地方定义了_X86 这个宏可以用下面的方法#ifdef _X86 #Pragma message(“_X86 macro activated!”)#endif 当我们定义了 _X86 这个宏以后,应用程序在编译时就会在编译输出窗口里显示“_X86 macro activated!”。我们就不会因为不记得自己定义的一些特定的宏而抓耳挠腮了。(2) 另一个使用

18、得比较多的pragma 参数是 code_seg 。格式如:#pragma code_seg( section-name,section-class ) 它能够设置程序中函数代码存放的代码段,当我们开发驱动程序的时候就会使用到它。(3)#pragma once (比较常用)只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,这条指令实际上在 VC6 中就已经有了,但是考虑到兼容性并没有太多的使用它。(4)#pragma hdrstop 表示预编译头文件到此为止,后面的头文件不进行预编译。BCB可以预编译头文件以加快链接的速度,但如果所有头文件都进行预编译又可能占太多磁盘空间,所以使用这

19、个选项排除一些头文件。有时单元之间有依赖关系,比如单元A 依赖单元B,所以单元B 要先于单元A 编译。你可以用 #pragma startup 指定编译优先级, 如果使用了 #pragma package(smart_init) ,BCB 就会根据优先级的大小先后编译。(5)#pragma resource *.dfm 表示把 *.dfm 文件中的资源加入工程。*.dfm 中包括窗体外观的定义。(6)#pragma warning( disable : 4507 34; once : 4385; error : 164 ) 等价于:#pragma warning(disable:4507 34

20、) / 不显示 4507 和 34 号警告信息#pragma warning(once:4385) / 4385 号警告信息仅报告一次#pragma warning(error:164) / 把 164 号警告信息作为一个错误。同时这个 pragma warning 也支持如下格式:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - #pragma warning( push ,n ) #pragma warning( pop )

21、这里 n 代表一个警告等级(1-4) 。#pragma warning( push )保存所有警告信息的现有的警告状态。#pragma warning( push, n)保存所有警告信息的现有的警告状态,并且把全局警告等级设定为n。#pragma warning( pop )向栈中弹出最后一个警告信息,在入栈和出栈之间所作的一切改动取消。例如:#pragma warning( push ) #pragma warning( disable : 4705 ) #pragma warning( disable : 4706 ) #pragma warning( disable : 4707 ) /

22、. #pragma warning( pop ) 在这段代码的最后,重新保存所有的警告信息(包括 4705 ,4706 和 4707) 。(7)pragma comment(.) 该指令将一个注释记录放入一个对象文件或可执行文件中。常用的 lib 关键字,可以帮我们连入一个库文件。每个编译程序可以用#pragma指令激活或终止该编译程序支持的一些编译功能。例如,对循环优化功能:#pragma loop_opt(on) / 激活#pragma loop_opt(off) / 终止有时,程序中会有些函数会使编译器发出你熟知而想忽略的警告,如“Parameter xxx is never used

23、in function xxx” ,可以这样:#pragma warn 100 / Turn off the warning message for warning #100 int insert_record(REC *r) /* function body */ #pragma warn +100 / Turn the warning message for warning #100 back on 函数会产生一条有唯一特征码100 的警告信息,如此可暂时终止该警告。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 每个编译器对 #pragma的实现不同,在一个编译器中有效在别的编译器中几乎无效。可从编译器的文档中查看。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁