版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Advantech WebAccess 培训教程培训教程 第八章第八章 脚本脚本培训目标培训目标这一章节将向您介绍这一章节将向您介绍WebAccess 脚本功能。脚本功能。培训结束时您将掌握以下知识:培训结束时您将掌握以下知识: 了解什么是脚本,脚本的功能、性能等了解什么是脚本,脚本的功能、性能等 编写编写TCL脚本脚本 编写编写VB脚本脚本 编写编写JAVA脚本脚本 用脚本控制动画用脚本控制动画 在脚本运行时查错在脚本运行时查错什么是脚本什么是脚本脚本是一种简单的编程语言,用于快速开发简单的控制流程,脚本文脚本是一种简单的编程语言,用于快速开发简单的控制流程,脚本文件也是一种可执行文件,但是
2、与普通的件也是一种可执行文件,但是与普通的exe可执行文件不同的是,它内部不是可执行文件不同的是,它内部不是经过编译的二进制码,而是可以用记事本查看的文本,它执行时需要由脚本经过编译的二进制码,而是可以用记事本查看的文本,它执行时需要由脚本引擎边解释边执行,因此,脚本文件的执行速度比引擎边解释边执行,因此,脚本文件的执行速度比exe文件要低很多。为了简文件要低很多。为了简单,脚本不支持复杂的数据结构和运算,只能实现一些简单的逻辑和运算。单,脚本不支持复杂的数据结构和运算,只能实现一些简单的逻辑和运算。一个脚本的例子如下:一个脚本的例子如下:if a=b then c=d;这段脚本的含义就是如果
3、变量这段脚本的含义就是如果变量a等于变量等于变量b,则让变量,则让变量c等于变量等于变量d的值的值。脚本的功能和性能脚本的功能和性能脚本虽然简单,但是也可以完成大多数的工业控制所需的功能,例如脚本虽然简单,但是也可以完成大多数的工业控制所需的功能,例如条件判断,循环执行某段代码,数学运算,字符串运算,甚至可以操作数据条件判断,循环执行某段代码,数学运算,字符串运算,甚至可以操作数据库和调用其他可执行程序(库和调用其他可执行程序(*.exe)来完成更加复杂的功能。)来完成更加复杂的功能。WebAccess中的中的脚本还可以执行脚本还可以执行WebAccess特有的指令,来完成取特有的指令,来完成
4、取WebAccess点值和给点值和给WebAccess点赋值的操作。点赋值的操作。如上一节所述,因为脚本文件是由脚本引擎边解释边执行,因此运行如上一节所述,因为脚本文件是由脚本引擎边解释边执行,因此运行速度上会和速度上会和exe文件有较大差距,根据电脑硬件配置不同,脚本执行的速度在文件有较大差距,根据电脑硬件配置不同,脚本执行的速度在每秒几十行到二三百行之间。每秒几十行到二三百行之间。因此,建议写脚本时,内容最好在因此,建议写脚本时,内容最好在100行以内。行以内。如何进入脚本编辑器如何进入脚本编辑器在监控节点属性页面点击在监控节点属性页面点击“开始绘图开始绘图”链接,进入绘图页面,然后在图上
5、链接,进入绘图页面,然后在图上点鼠标右键,在弹出菜单中选择点鼠标右键,在弹出菜单中选择“原文文件原文文件”命令,就会弹出命令,就会弹出“原文设定原文设定”对话框对话框2. 在在“原文设定原文设定”对话框中,可以选择脚本类型,中间那个大对话框中,可以选择脚本类型,中间那个大的输入窗口就是编辑脚本的地方,右边列出了脚本运行关键字、可用的输入窗口就是编辑脚本的地方,右边列出了脚本运行关键字、可用函数、已建立的点的列表,运算符等,双击其中的条目就可以自动把函数、已建立的点的列表,运算符等,双击其中的条目就可以自动把所选内容插入到脚本中所选内容插入到脚本中3. 我们开始用我们开始用TCL脚本编写空调控制
6、脚本:在该脚本中我们使用几个脚本编写空调控制脚本:在该脚本中我们使用几个本地点来控制风机运转动画本地点来控制风机运转动画 和空气流动动画和空气流动动画4. 我们先熟悉以下在脚本中使用的我们先熟悉以下在脚本中使用的WebAccess的指令:的指令: a. SETVAL: 给指定点赋值给指定点赋值 语法:语法: SETVAL TagName=Value 其中:其中: TagName:点名称点名称 Value:点值:点值 注意:等号两边不能有空格,因为注意:等号两边不能有空格,因为TagName=Value是是 作为一个参作为一个参数传给数传给SETVAL指令的,若其中有空格则指令的,若其中有空格则
7、 会被当成由空格分割的多个会被当成由空格分割的多个参数,因而导致语法错误。参数,因而导致语法错误。b. GETVAL: 取指定点的当前值取指定点的当前值 语法:语法: GETVAL TagName 其中:其中: TagName:点名称点名称 注意:该指令返回的结果是字符串格式,若在注意:该指令返回的结果是字符串格式,若在VB脚本和脚本和Java脚本脚本 中使用,则必须进行合适的类型转换。中使用,则必须进行合适的类型转换。c. %LOOPPLUS:令指定点循环累加,加到最高输出值时自动返回:令指定点循环累加,加到最高输出值时自动返回 最低输出值重新累加。最低输出值重新累加。 语法:语法: SET
8、VAL TagName=%LOOPPLUS n 其中:其中: TagName:点名称:点名称 n:累加量:累加量d. %ROTATEPLUS: 令指定点循环累加,加到最高输出值时自动重新令指定点循环累加,加到最高输出值时自动重新累加,该指令与累加,该指令与LOOPPLUS的区别在于该指令更适合做旋转动画,的区别在于该指令更适合做旋转动画,因为该指令在因为该指令在TagName加到最高输出值时,不一定返回最低输出值,加到最高输出值时,不一定返回最低输出值,而是在最低输出值的基础上加上累加量未加完的部分,如:当前值而是在最低输出值的基础上加上累加量未加完的部分,如:当前值为为98,最高输出值为,最
9、高输出值为100,最低输出值为,最低输出值为0,累加量为,累加量为5,则下次累,则下次累加的结果不是加的结果不是0,而是,而是3。 语法:语法: SETVAL TagName=%ROTATEPLUS n 参数:同参数:同%LOOPPLUSe. %LOOPMINUS: 令指定点循环减小令指定点循环减小 语法:语法: SETVAL TagName=%LOOPMINUS n 参数:同参数:同%LOOPPLUSf. %ROTATEMINUS:令指定点循环减小,与:令指定点循环减小,与%LOOPMINUS的区别的区别同同%ROTATEPLUS与与%LOOPPLUS 语法:语法: SETVAL TagNa
10、me=%ROTATEMINUS n 参数:同参数:同%LOOPPLUSg. %PLUS:将指定点加上一个值,作用类似与:将指定点加上一个值,作用类似与 SETVAL TagName=GETVAL TagName + n 语法:语法: SETVAL TagName=%PLUS n 参数:同参数:同%LOOPPLUSh. %MINUS:将指定点减小一个值,作用类似与:将指定点减小一个值,作用类似与 SETVAL TagName=GETVAL TagName - n 语法:语法: SETVAL TagName=%MINUS n 参数:同参数:同%LOOPPLUS5. 现在用脚本让风机旋转起来:现在用
11、脚本让风机旋转起来: 和风机旋转动画对应的点是本地点和风机旋转动画对应的点是本地点“c”,风机旋转的角度对应,风机旋转的角度对应与与c的值,为了让风机转动起来,我们必须让的值,为了让风机转动起来,我们必须让c的值不断的累加,的值不断的累加,并到最高量程的时候自动重新开始,我们使用如下指令:并到最高量程的时候自动重新开始,我们使用如下指令:SETVAL c=%ROTATEPLUS 8其中其中8是自定的一个值,这个值越小,风机转动的越慢,反之是自定的一个值,这个值越小,风机转动的越慢,反之越快,但这个值也不能太大,否则风机会看起来在反转。越快,但这个值也不能太大,否则风机会看起来在反转。6. 现在
12、我们用移动动画模拟空气在风道中流动,我们让表示空气流现在我们用移动动画模拟空气在风道中流动,我们让表示空气流动的点动的点Air1到到Air6按照不同的速度和初始值循环累加,指令如按照不同的速度和初始值循环累加,指令如下:下:SETVAL Air1=%LOOPPLUS 0.4SETVAL Air2=%LOOPPLUS 0.4SETVAL Air3=%LOOPPLUS 0.4 SETVAL Air4=%LOOPPLUS 0.8 SETVAL Air5=%LOOPPLUS 0.8 SETVAL Air6=%LOOPPLUS 0.57. TCL脚本的内部变量:脚本的内部变量:TCL脚本中可以定义脚本变
13、量,用来暂存某个中间值,语法为:脚本中可以定义脚本变量,用来暂存某个中间值,语法为:定义变量:定义变量:var a给变量赋值给变量赋值5:set a 5使用变量:使用变量:SETVAL TagName=$a在使用变量时,要在变量前面加在使用变量时,要在变量前面加$符号,否则该变量名字将被符号,否则该变量名字将被当成字符串处理,变成了:当成字符串处理,变成了:SETVAL TagName=“a”8. TCL脚本的判断语句:脚本的判断语句:格式:格式:if then 或或if then else 或或if then elseif then else 需要注意的地方是需要注意的地方是 if 和和 之
14、间要有一个空格,之间要有一个空格,then 两边要各有两边要各有一个空格,一个空格,then 要和要和if以及后面的以及后面的 写在同一行,写在同一行,else和和elseif 两边也要各有一个空格,两边也要各有一个空格,else也要和后面的也要和后面的 在同一行在同一行,若有若有elseif,则,则 elseif也要和后面的也要和后面的then在同一行。在同一行。总之,总之,TCL脚本对空格和换行是很敏感的,若用的不对,就会脚本对空格和换行是很敏感的,若用的不对,就会导致语法错误,当您有时候怎么也找不到错误原因时,很可能导致语法错误,当您有时候怎么也找不到错误原因时,很可能就是某处少了一个空
15、格就是某处少了一个空格9. TCL脚本脚本DebugTCL脚本可以在运行期间捕捉错误,语法如下:脚本可以在运行期间捕捉错误,语法如下:catch . err把要捕捉错误的语句放在把要捕捉错误的语句放在catch的的内,若发生错误,则会跳出内,若发生错误,则会跳出catch语句,并把错误信息放到变量语句,并把错误信息放到变量err中,可以用中,可以用BWSPOOL rn$err指令把错误信息输出到指令把错误信息输出到Bwspool.exe中,其中,其中中rn表示回车换行。表示回车换行。10. TCL脚本的注释脚本的注释TCL的注释是已的注释是已#开头的字符串,可以跟在语句后面,也可以开头的字符串
16、,可以跟在语句后面,也可以单独占一行,如:单独占一行,如:SETVAL NewAirValve_Value=%MINUS 3 #风机停止时风机停止时关闭新风阀关闭新风阀#=室内湿度控制室内湿度控制=红色部分为注释红色部分为注释11. 我们暂时先讲这些常用的指令,其他指令的说明请参考用户文档。我们暂时先讲这些常用的指令,其他指令的说明请参考用户文档。12. 完成的脚本:完成的脚本:catch #BWSPOOL rn101010 rn if GETVAL GSwitch=1 then #1为启动 SETVAL c=%ROTATEPLUS 8 SETVAL Air1=%LOOPPLUS 0.4 SE
17、TVAL Air2=%LOOPPLUS 0.4 SETVAL Air3=%LOOPPLUS 0.4 SETVAL Air4=%LOOPPLUS 0.8 SETVAL Air5=%LOOPPLUS 0.8 SETVAL Air6=%LOOPPLUS 0.5 #BWSPOOL rn303030rn #=冬天室内温度控制= if GETVAL AirPump_State=1 then if GETVAL NewAirTemp_Value = GETVAL RoomTemp_Set then if GETVAL WaterValve_Value = expr 60+rand()*13-6 then S
18、ETVAL WaterValve_Value=%PLUS 3 if GETVAL NewAirValve_Value = expr 50+rand()*5-2 then SETVAL NewAirValve_Value=%PLUS 3 if GETVAL CAirValve_Value = expr 20+rand()*5-2 then SETVAL WaterValve_Value=%MINUS 3 if GETVAL NewAirValve_Value = expr 40+rand()*3-1 then SETVAL NewAirValve_Value=%MINUS 3 if GETVAL
19、 CAirValve_Value = expr 30+rand()*3-1 then SETVAL CAirValve_Value=%MINUS 3 SETVAL NewAirTemp_Value=expr GETVAL NewAirTemp_Value-1+rand()*2-0.5 SETVAL RoomTemp_Value=expr GETVAL NewAirTemp_Value+rand()*2-0.5 else SETVAL NewAirValve_Value=%MINUS 3 #风机停止时关闭新风阀 SETVAL CAirValve_Value=%MINUS 3 #风机停止时关闭回风阀 SETVAL WaterValve_Value=%MINUS 3 #风机停止时关闭水阀 SETVAL Humidifier_State=0 if GETVAL NewAirValve_Value1 then SETVAL IsOrNotRunning=0 #0为停止 #=室内湿度控制= if GETVAL Humidifier_State=1 then #启动状态 if GETVAL NewAirHum_Value10 then SETVAL NewAirHum_Value=expr GETVAL New
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏苏州常熟市昆承湖建设投资集团有限公司及下属公司招聘14人备考题库带答案详解(培优A卷)
- 2026四川巴中市“筑梦巴蜀万才兴农”岗位招聘64人(第二批)笔试题库附答案详解(B卷)
- 2026云南保山昌宁县卡斯中心卫生院招聘编外人员4人考前冲刺试卷及参考答案详解(A卷)
- 2026年广东茂名市信宜市巡察事务中心公开选聘事业编制工作人员3人考前冲刺密卷及答案详解【有一套】
- 2026北京师范大学一带一路学院教学助理招聘模拟试卷及参考答案详解(培优B卷)
- 2026年工业噪声治理设计规范
- 2025-2026学年四川省南充市蓬安县数学四年级下学期期中联考模拟试题(含答案)
- 2025-2026学年嘉荫县数学三年级第二学期期中检测模拟试题(含答案解析)
- 陆丰中考体育试卷题目和答案
- 2026中国运动防护社交媒体舆情监测与品牌危机应对预案
- 2026邮政银行面试题目及答案
- 2026年江苏高职单招(英语)考试试题(含答案)
- 光伏直流电缆敷设施工方案及技术措施
- 2026年中考开放性测试题及答案
- 2026中国剧本杀内容创作升级与线下娱乐业态创新报告
- 2026年CCAA职业健康安全管理体系基础考试真题及答案
- GB/T 24027-2026环境标志和声明产品种类规则的制定
- 心脏性猝死高危人群风险分层
- 玻璃雨棚施工组织设计
- 二手游戏账号交易合同
- 2026年高考数学终极冲刺:培优专题04 解析几何 6大重难题型(大题专练)(原卷版及全解全析)
评论
0/150
提交评论