Advantech WebAccess培训- 08第八章 脚本_第1页
Advantech WebAccess培训- 08第八章 脚本_第2页
Advantech WebAccess培训- 08第八章 脚本_第3页
Advantech WebAccess培训- 08第八章 脚本_第4页
Advantech WebAccess培训- 08第八章 脚本_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2007年6月 AdvantechWebAccess培训教程 第八章脚本 培训目标 这一章节将向您介绍WebAccess脚本功能 培训结束时您将掌握以下知识 了解什么是脚本 脚本的功能 性能等编写TCL脚本编写VB脚本编写JAVA脚本用脚本控制动画在脚本运行时查错 什么是脚本 脚本是一种简单的编程语言 用于快速开发简单的控制流程 脚本文件也是一种可执行文件 但是与普通的exe可执行文件不同的是 它内部不是经过编译的二进制码 而是可以用记事本查看的文本 它执行时需要由脚本引擎边解释边执行 因此 脚本文件的执行速度比exe文件要低很多 为了简单 脚本不支持复杂的数据结构和运算 只能实现一些简单的逻辑和运算 一个脚本的例子如下 if a b then c d 这段脚本的含义就是如果变量a等于变量b 则让变量c等于变量d的值 脚本的功能和性能 脚本虽然简单 但是也可以完成大多数的工业控制所需的功能 例如条件判断 循环执行某段代码 数学运算 字符串运算 甚至可以操作数据库和调用其他可执行程序 exe 来完成更加复杂的功能 WebAccess中的脚本还可以执行WebAccess特有的指令 来完成取WebAccess点值和给WebAccess点赋值的操作 如上一节所述 因为脚本文件是由脚本引擎边解释边执行 因此运行速度上会和exe文件有较大差距 根据电脑硬件配置不同 脚本执行的速度在每秒几十行到二三百行之间 因此 建议写脚本时 内容最好在100行以内 如何进入脚本编辑器 在监控节点属性页面点击 开始绘图 链接 进入绘图页面 然后在图上点鼠标右键 在弹出菜单中选择 原文文件 命令 就会弹出 原文设定 对话框 2 在 原文设定 对话框中 可以选择脚本类型 中间那个大的输入窗口就是编辑脚本的地方 右边列出了脚本运行关键字 可用函数 已建立的点的列表 运算符等 双击其中的条目就可以自动把所选内容插入到脚本中 3 我们开始用TCL脚本编写空调控制脚本 在该脚本中我们使用几个本地点来控制风机运转动画和空气流动动画4 我们先熟悉以下在脚本中使用的WebAccess的指令 a SETVAL 给指定点赋值语法 SETVALTagName Value其中 TagName 点名称Value 点值注意 等号两边不能有空格 因为TagName Value是作为一个参数传给SETVAL指令的 若其中有空格则会被当成由空格分割的多个参数 因而导致语法错误 b GETVAL 取指定点的当前值语法 GETVALTagName其中 TagName 点名称注意 该指令返回的结果是字符串格式 若在VB脚本和Java脚本中使用 则必须进行合适的类型转换 c LOOPPLUS 令指定点循环累加 加到最高输出值时自动返回最低输出值重新累加 语法 SETVAL TagName LOOPPLUSn 其中 TagName 点名称n 累加量 d ROTATEPLUS 令指定点循环累加 加到最高输出值时自动重新累加 该指令与LOOPPLUS的区别在于该指令更适合做旋转动画 因为该指令在TagName加到最高输出值时 不一定返回最低输出值 而是在最低输出值的基础上加上累加量未加完的部分 如 当前值为98 最高输出值为100 最低输出值为0 累加量为5 则下次累加的结果不是0 而是3 语法 SETVAL TagName ROTATEPLUSn 参数 同 LOOPPLUSe LOOPMINUS 令指定点循环减小语法 SETVAL TagName LOOPMINUSn 参数 同 LOOPPLUS f ROTATEMINUS 令指定点循环减小 与 LOOPMINUS的区别同 ROTATEPLUS与 LOOPPLUS语法 SETVAL TagName ROTATEMINUSn 参数 同 LOOPPLUSg PLUS 将指定点加上一个值 作用类似与SETVALTagName GETVALTagName n 语法 SETVAL TagName PLUSn 参数 同 LOOPPLUSh MINUS 将指定点减小一个值 作用类似与SETVALTagName GETVALTagName n 语法 SETVAL TagName MINUSn 参数 同 LOOPPLUS 5 现在用脚本让风机旋转起来 和风机旋转动画对应的点是本地点 c 风机旋转的角度对应与c的值 为了让风机转动起来 我们必须让c的值不断的累加 并到最高量程的时候自动重新开始 我们使用如下指令 SETVAL c ROTATEPLUS8 其中8是自定的一个值 这个值越小 风机转动的越慢 反之越快 但这个值也不能太大 否则风机会看起来在反转 6 现在我们用移动动画模拟空气在风道中流动 我们让表示空气流动的点Air1到Air6按照不同的速度和初始值循环累加 指令如下 SETVAL Air1 LOOPPLUS0 4 SETVAL Air2 LOOPPLUS0 4 SETVAL Air3 LOOPPLUS0 4 SETVAL Air4 LOOPPLUS0 8 SETVAL Air5 LOOPPLUS0 8 SETVAL Air6 LOOPPLUS0 5 7 TCL脚本的内部变量 TCL脚本中可以定义脚本变量 用来暂存某个中间值 语法为 定义变量 vara给变量赋值5 seta5使用变量 SETVALTagName a在使用变量时 要在变量前面加 符号 否则该变量名字将被当成字符串处理 变成了 SETVALTagName a 8 TCL脚本的判断语句 格式 if then 或if then else 或if then elseif then else 需要注意的地方是if和 之间要有一个空格 then两边要各有一个空格 then要和if以及后面的 写在同一行 else和elseif两边也要各有一个空格 else也要和后面的 在同一行 若有elseif 则elseif也要和后面的then在同一行 总之 TCL脚本对空格和换行是很敏感的 若用的不对 就会导致语法错误 当您有时候怎么也找不到错误原因时 很可能就是某处少了一个空格 9 TCL脚本DebugTCL脚本可以在运行期间捕捉错误 语法如下 catch err把要捕捉错误的语句放在catch的 内 若发生错误 则会跳出catch语句 并把错误信息放到变量err中 可以用BWSPOOL r n err指令把错误信息输出到Bwspool exe中 其中 r n表示回车换行 10 TCL脚本的注释TCL的注释是已 开头的字符串 可以跟在语句后面 也可以单独占一行 如 SETVAL NewAirValve Value MINUS3 风机停止时关闭新风阀 室内湿度控制 红色部分为注释11 我们暂时先讲这些常用的指令 其他指令的说明请参考用户文档 12 完成的脚本 catch BWSPOOL r n101010 r nif GETVALGSwitch 1 then 1为启动SETVAL c ROTATEPLUS8 SETVAL Air1 LOOPPLUS0 4 SETVAL Air2 LOOPPLUS0 4 SETVAL Air3 LOOPPLUS0 4 SETVAL Air4 LOOPPLUS0 8 SETVAL Air5 LOOPPLUS0 8 SETVAL Air6 LOOPPLUS0 5 BWSPOOL r n303030 r n 冬天室内温度控制 if GETVALAirPump State 1 then if GETVALNewAirTemp Value GETVALRoomTemp Set then if GETVALWaterValve Value expr60 rand 13 6 then SETVAL WaterValve Value PLUS3 if GETVALNewAirValve Value expr50 rand 5 2 then SETVAL NewAirValve Value PLUS3 if GETVALCAirValve Value expr20 rand 5 2 then SETVAL WaterValve Value MINUS3 if GETVALNewAirValve Value expr40 rand 3 1 then SETVAL NewAirValve Value MINUS3 if GETVALCAirValve Value expr30 rand 3 1 then SETVAL CAirValve Value MINUS3 SETVALNewAirTemp Value expr GETVALNewAirTemp Value 1 rand 2 0 5 SETVALRoomTemp Value expr GETVALNewAirTemp Value rand 2 0 5 else SETVAL NewAirValve Value MINUS3 风机停止时关闭新风阀SETVAL CAirValve Value MINUS3 风机停止时关闭回风阀SETVAL WaterValve Value MINUS3 风机停止时关闭水阀SETVALHumidifier State 0 if GETVALNewAirValve Value 10 then SETVALNewAirHum Value expr GETVALNewAirHum Value 1 rand 2 0 5 if GETVALRoomHum Value 20 then SETVALRoomHum Value expr GETVALRoomHum Value 1 rand 2 0 5 BWSPOOL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论