wincc的n个经典问题解答之三.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
wincc的n个经典问题解答之三.doc

wincc的n个经典问题解答之三 作者: 激情如火 ,2005-12-27 17:23:00 发表于:《Siemens自动化软件论坛》 共有15人回复,2201次点击  加为好友   发送留言 ?? 部分非本人原创,整理在一起旨在给大家提供方便! 41:用C编程解决授权点数不够用的问题(acsun提供) ??????当需要的工艺参数超过WinCC版本限制的Tag数目,可以用C语言编程实现多个工艺参数打包成一个Tag传送.例如某个配料称重系统有146个参数超过了WinCC的128个Tag的限制就可以用C语言编程决这一问题而不需要购买更高的授权. 基本思想就是把多个参数在下位机内存中连续排列然后在WinCC中定义一个Tag它的长度是多个参数之和取得这个Tag后编程将其分成多个参数 例如下位机有两个参数LTN44001和LTN44023都是16位整数分别存放在DD99.DW146和DD99.DW148 在WinCC中定义一个外部Tag命名为PackageTag类型为32位整数并联地址为DD99.DBD146再定义两个内部tag名为LTN44001和LTN44023在?Global?Script全局脚本中C语言编程如下 Union { Long?Dword Int?Word[2] }union Union.Dword=GetTagDword(PackageTag) SetTagWord(LTN44001,Union.Word[0]) SetTagWord(LTN44023,Union.Word[0]) 这样两个参数LTN44001和LTN44023就通过一个Tag传送上来了理论上只要下位机内存足够可以传送任意数量的参数而不受WinCC版本外部Tag数目的限制. 42:如何在WinCC里用C语言调用SQL语言??? ????1、创建一个SQL文件。 此文件在ISQL中创建,文件内容是所希望执行的SQL语句。? ????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-c UID=DBA;PWD=SQL;DBF=E:\\testsql\\testsqlRT.DB; DBN=CC_testsql_99-12-03_12:48:26R; READ E:\\testsql\\test.sql; printf(%s\r\n,a); ProgramExecute(a); } 下面是一个简单的SQL文件内容: select?*?from?pde#hd#t#test; output?to?E:\\test2.txt?FORMAT?ascii 注意:文件名及路径中不要带空格。 43:如何整点启动归档?? 在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(startarchive,1); return(BOOL)(GetTagBit(startarchive)); } }? 在Tagloging中的Properties?of?process?tag中的Archive?Tagtab下的Archiving?type选择Cycle-selective,在Event标签下的Start?Event内选择cyclicarchive函数。? 44:如何在按键组合被禁用的情况下,从WinCC运行环境进入WinCC?Control?Center?? 最好是做一个按钮,该按钮需要用用户权限保护,在该钮中编写如下C-action:? 低于WinCC?5.0版本: #pragma?code?(user32.dll); BOOL?SetForegroundWindow(HWND); #pragma?code(); HWND?handle; handle=FindW

文档评论(0)

juhui05 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档