WinCC上可以很方便的编写VB脚本和C脚本

上传人:豆*** 文档编号:202091247 上传时间:2023-04-21 格式:DOCX 页数:10 大小:892.26KB
返回 下载 相关 举报
WinCC上可以很方便的编写VB脚本和C脚本_第1页
第1页 / 共10页
WinCC上可以很方便的编写VB脚本和C脚本_第2页
第2页 / 共10页
WinCC上可以很方便的编写VB脚本和C脚本_第3页
第3页 / 共10页
点击查看更多>>
资源描述
WiC上可以很以便的编写脚本和脚本,但是调试起来还是比较费力的。下面简介一下个人的应用体会。1,B,最佳安装VB6,先在B6里面编写程序,然后再放到WinCC的脚本中,事半功倍,毕竟VB的调试非常以便。,插入引用注意选择LE Atomaon 和WinC *;b,可以直接在VB里面调用WnC的所有变量,内部,外部全可以:如下:,在V里面监视inC的变量:d,调试完毕,程序拷贝到inC 的脚本中。2,C语言系统提供了一种应用程序窗口,如下,只要把她拖到画面窗口即可:2,使用rnf函数,把需要调试的内容打印出来;,效果如下:但愿对人们有点用处。下面内容来自网络,感谢原文作者。Vbs操作n画面脚本总结一: 不使用变量单纯的操作界面.操作某个画面中控件的属性如 Hme1.Pdl(总窗体)下的 画面窗口2(画面窗口)Su OnClick(ya It)Dim bjCirclDisrnaeDm pwnameSet birc= ScreItes(圆 )objCircle.Rais =60etscreeame=Runtime.Scrs(Home1) /获取要操作的窗体Se pascreename.Screntems(画面窗口2) /获取要操作的控件,这里填入你要操作的控件名MsgBox(ojCircle.Raus)/输出圆的半径MBx (pwnme.Picturename) /输出目前画面窗口2的名字En ub注意 当调用某窗体下的某控件的某个属性时,需要声明两个对象,一种接纳这个控件,一种接纳值 例如Dm objectDivalueSt objectHMIRuntmSreens(Home1).SrenItem(画面窗口2)Setaluobjectpicturenme2.更改画面窗口的对象SubOnClick(ByvalIte)m opOject opOject=HMIRunti.Screens (Hoe).SceeIe(画面窗口)opObject.PictreNme=Pae1.Pld S3.设立文本StiteTxtHMIRnme.Screen (oe).creeItms(静态文本2)titlTxt.Text =itleTt.Tet+F /获取文本的值并追加字符4.vb字符串函数 VB的字符串截取函数有Left(字符串,n),返回字符串前N个字符;id(字符串,p,n),从第p个字符开始,向后截取N个字符;righ(字符串,),返回字符串的最后个字符。用WinCC读取VB的数据的措施一(D) VB6.0中的环节:1、新建一种“原则EE”工程2、设立窗体Form1的LikMo属性为 - Soue, 一定要设定为13、在Form上添加一种文本框控件Text1,将其Text属性设为tx14、保存工程:工程名为VBDb5、生成BDE.eeWnCC的环节:、新建一单顾客项目2、在变量管理器中添加ndos DDE驱动、在DDE下新建连接NewConntion,在其属性对话框中: mpute ame:不设立 Applcatio:VBDETopic:Form1(B中窗体名)其他不作改动4、在此连接下新建一有符号16位整型变量Tag,在其地址选择框中: 条目名称:Te 窗体控件名称数据类型(Dta Type):SWORD(要与变量类型一致)5、新建一种画面:DDE_Test.Pl、在画面中添加一种IO域:与Tag动态连接,更新周期为:根据变化,输出格式为s997、保存画面联机调试:、先运营VBDDEXE(或者在V设计器中运营工程)2、后激活in项目3、此时I域值与Text1值总是保持一致(无论你在哪一方改动)用WiC读取VB的数据的措施二 (LE)VB文本框的代码:private sub e1_chae() Di wncAs Oec 定义wic为对象 Di ars Inegr 定义winc变量 et iccCeaeObject(C-RuntimePjt) 创立wic运营对象 Cl wnc.SeVe(Var, te1ext) 将VB变量值写入WNCC变量 ,变量名称要与WNCC变量名称完全一致,要辨别大小写ends在WI中建立内部变量ar,类型要与VB一致,在画面中加入I显示即可。Win脚本应用脚本的应用给Win项目带来了极大的灵活性和开放性。通过使用脚本可以完毕某些 WiCC 基本组态无法实现的功能。从版本V6起,WnCC同步提供了C 和VB 两套脚本系统,使脚本功能更加丰富、易用。一方面C脚本功能实在是太强大了,除了系统提供的原则函数和系统函数外,还可以直接调用API函数,再加上可以直接使用ODK函数,就连VBS中的Method调用也可以通过特别的措施实现,可谓是无所不能。固然缺陷也是有的,不支持自动列出函数或者措施,编写程序多有不便。自版本V6起又增长了VB脚本,它使用起来较为简朴,并且入门不久。VS自身的功能并不强,除了某些基本的函数和WinC自身的对象(例如HMRuntie.Tgs),剩余的功能所有都得通过OM组件进行扩展,例如我们很熟悉的Excl、so、ws cript.hel等等,通过这些组件使得WinCC访问idw的接口得以增长,但是访问WiC底层东西却没有(例如顾客登陆、报表打印等) ,这是VBS美中局限性的地方,但愿下一版本可以改善,_。VBS的此外一种弱点就是无法直接调用PI函数,只能通过其她的措施解决。网上常用的措施应当是通过dyn.dll先注册再调用,例如:Dim UserWrapSet UeWrap = Catebjet(DynamicWrpper) Cl MessageBoxA(), rst rgse th AIfnconserrap.Reister S32.LL,essgeoxA, I=sSu,_fs,=l oalle fntionerWrap.MesageoxA ull, sageBo (ANSI), _Fro DyaWap Ojet, 3ynwrp的下载地址我已经找不到了,人们可以上网搜索。此外安装DriveMonitor后就会有这个文献,具体用法在DrivMonitr协助信息中也可以找到。此外我试过运用xcl代为声明,V调用Exc的宏来实现,这是一篇我写的有关VBS结合CE调用AI函数的心得总结,内容太长我就不贴了,直接见附件,附件DOC附有本文档用到的Ece文献、BS文献以及C函数。全局脚本里面对LC的值进行读取和更新,有对数据库的操作,但有的时候发现设备不动作,点击按钮进入状态界面(用于显示LC的状态),观测PC的值。此时设备就会继续动作,按钮中未写任何脚本,只是用直接连接来给一种内部变量赋值以用于切换画面?怀疑是全局脚本中对数据库的操作阻塞了脚本的运营,不懂得是不是因素啊?为什么点击按钮后又能解除呢?恳请高人帮忙啊?/que不懂得您使用的是全局脚本项目函数,还是全局动作呢?如果在画面中调用的是全局项目函数,应当属于画面的脚本线程,切换画面的时候,重新启动新的画面周期,执行该画面中的脚本,前一画面中未执行的脚本队列被释放。如果您怀疑是数据库的操作阻塞了进程,您可以在脚本中屏蔽掉操作数据库的代码,观测与否还浮现阻塞的现象;也可以在您的全局脚本中加入rnt函数,输出到GC诊断窗口中,判断与否发生阻塞。一般来说,如果您在一种项目中组态的动作(涉及全局动作或画面中周期调用的动作)不能被对的或及时地解决,例如,动作的触发周期为2秒钟,但是执行该脚本所需要的时间为5秒钟,这样大量动作累积起来,不能解决的动作被输入队列。如果在脚本队列中的任务数目达到了500,那么途径“:SeensiCDianoe”下的WinC“WinC_ysxlg”的诊断文献也许会显示错误消息“script: orehan 500 ctionsinwrk”。具体信息请参见如下链接:/support.autmaion.emn.com/CN/iew146123。此外,有关WinC对脚本的诊断措施有诸多,如下几种仅供参照,在WinC的协助文档中可以找到更多具体的内容:1.GC运营系统:提供有关所有(全局脚本)动作的动态特性信息。2.GSC诊断:按调用的顺序输出 prinf 指令,可以将变量的数值和错误信息等输出到诊断窗口。3.pDig工具:WinCC 自带的诊断工具“piag.exe”对故障和性能问题进行了具体的分析,有关如何使用诊断工具“APDiag”来调试脚本,请参见如下链接:。全局C脚本里面对PC的值进行读取和更新,有对数据库的操作,但有的时候发现设备不动作,点击按钮进入状态界面(用于显示PLC的状态),观测PLC的值。此时设备就会继续动作,按钮中未写任何脚本,只是用直接连接来给一种内部变量赋值以用于切换画面?怀疑是全局脚本中对数据库的操作阻塞了脚本的运营,不懂得是不是因素啊?为什么点击按钮后又能解除呢?恳请高人帮忙啊?请问高人一种问题:两个全局C脚本,其中一种被阻塞了,另一种会如何,是不是也会被阻塞?多种全局脚本是独立的单线程吗?qut虽然WnC的全局脚本(相应于进程 scrt.xe Global s cit Runtime)与画面中的脚本分别运营在不同的进程,但是全局脚本的各个动作同步运营在同一种线程中,其中一种动作发生阻塞,会影响此外一种动作。可以设计两个全局脚本动作,进行如下的测试:动作1:每隔2秒钟执行一次,变量1加。动作2:每隔2秒钟执行一次,变量2加1,使用Sleep函数延迟5秒钟。结论:使用输入输出域显示两个变量,两个变量都是大概每隔5秒钟加1(如果没有Sep函数,两个变量都是大概每隔2秒钟加1)。因此,全局脚本的多种动作是互相影响的。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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