intouch for 语句用法
- 格式:docx
- 大小:15.63 KB
- 文档页数:2
InTouch组态软件培训教程(多场合应用)InTouch组态软件培训教程一、引言InTouch组态软件是一款广泛应用于工业自动化领域的监控与数据采集软件,由美国Wonderware公司开发。
它具有强大的数据处理、报警管理、趋势分析等功能,能够满足各种复杂工业场景的需求。
本教程旨在帮助用户快速掌握InTouch组态软件的基本操作和高级应用,提高工业自动化系统的监控和管理水平。
二、InTouch组态软件安装与配置1.系统要求(1)操作系统:WindowsXP、Windows7、Windows10等。
(2)处理器:至少1GHz的CPU。
(3)内存:至少1GB的RAM。
(4)硬盘:至少2GB的可用空间。
2.安装步骤(1)将InTouch组态软件安装光盘放入光驱,运行安装程序。
(2)按照安装向导的提示,完成软件的安装。
(3)安装过程中,请确保所有选项均为默认设置,以便顺利完成安装。
3.配置InTouch组态软件(1)启动InTouch组态软件,进入“配置”菜单。
(2)设置通信参数,包括串口、以太网等通信方式。
(3)添加设备驱动程序,以便与现场设备进行通信。
(4)创建项目,设置项目属性,如工程名称、通信地质等。
三、InTouch组态软件基本操作1.创建画面(1)启动InTouch组态软件,进入“设计”菜单。
(2)选择“新建画面”,设置画面大小和背景颜色。
(3)从工具箱中拖拽图形、文本、按钮等控件到画面中。
(4)调整控件的大小和位置,设置控件的属性,如颜色、字体等。
2.数据绑定(1)在画面中添加数据源,如标签、数据库等。
(2)将数据源与控件进行绑定,实现数据的实时显示。
(3)设置数据刷新频率,确保数据的实时性。
3.动画效果(1)为控件添加动画效果,如闪烁、移动等。
(2)设置动画的触发条件,如按钮、数据变化等。
(3)调整动画的参数,如速度、次数等。
四、InTouch组态软件高级应用1.报警管理(1)创建报警事件,设置报警条件。
Intouch函数及语句介绍R1: RecipeDelete() 从指定配方模板文件中删除配方名。
句法RecipeDelete(“Filename”,“RecipeName”);参数描述FileName 被函数所作用的配方模板文件。
实际字符串或消息标记名。
RecipeName 在将被函数删除的指定配方模板文件中的特定配方。
RecipeLoad()、RecipeSave() 和RecipeDelete() 函数需用户提供RecipeName 参数。
RecipeSelectRecipe() 函数返回此参数的值。
实际字符串或消息标记名。
实例下面的语句将配方“Recipel”从recfile.csv 文件中删除:RecipeDelete("c:\recipe\recfile.csv", "Recipe1");2: RecipeGetMessage()写给模拟标记名某一错误代码同时写给消息标记名相应的错误代码消息。
句法 RecipeGetMessage(Analog_T ag,Message_T ag,Number);参数描述Analog_T ag不带引号或常数的实际整型或实型标记名。
Message_T ag不带引号或常数的实际整型或实型标记名。
Number该参数设置返回给Message_Tag 的最大字符串长度。
InTouch,消息标记名有131 字符的最大长度。
除非你减小在InTouch 标记名称典中的Message_Tag 的最大字符串长度,该参数值为131。
该参数可以是常数或包含一个数值的整型标记名。
实例在“InTouch 数据更改脚本”中使用RecipeGetMessage() 函数,相应的错误代码可以被写到一个模拟标记名,并且关联的错误代码消息可以被写到一个消息标记名中。
Data Change Script Tagname[.field]:ErrorCodeScript body:RecipeGetMessage(ErrorCode, ErrorMessage,131);当模拟标记名ErrorCode 的值发生变化时,将自动执行此脚本。
Intouch函数及语句介绍R1: RecipeDelete() 从指定配方模板文件中删除配方名。
句法RecipeDelete(“Filename”,“RecipeName”);参数描述FileName 被函数所作用的配方模板文件。
实际字符串或消息标记名。
RecipeName 在将被函数删除的指定配方模板文件中的特定配方。
RecipeLoad()、RecipeSave() 和RecipeDelete() 函数需用户提供RecipeName 参数。
RecipeSelectRecipe() 函数返回此参数的值。
实际字符串或消息标记名。
实例下面的语句将配方“Recipel”从recfile.csv 文件中删除:RecipeDelete("c:\recipe\recfile.csv", "Recipe1");2: RecipeGetMessage()写给模拟标记名某一错误代码同时写给消息标记名相应的错误代码消息。
句法 RecipeGetMessage(Analog_Tag,Message_Tag,Number);参数描述Analog_Tag不带引号或常数的实际整型或实型标记名。
Message_Tag不带引号或常数的实际整型或实型标记名。
Number该参数设置返回给Message_Tag 的最大字符串长度。
InTouch,消息标记名有131 字符的最大长度。
除非你减小在InTouch 标记名称典中的Message_Tag 的最大字符串长度,该参数值为131。
该参数可以是常数或包含一个数值的整型标记名。
实例在“InTouch 数据更改脚本”中使用RecipeGetMessage() 函数,相应的错误代码可以被写到一个模拟标记名,并且关联的错误代码消息可以被写到一个消息标记名中。
Data Change Script Tagname[.field]:ErrorCodeScript body:RecipeGetMessage(ErrorCode, ErrorMessage,131);当模拟标记名ErrorCode 的值发生变化时,将自动执行此脚本。
Intouch连接SQLServer数据库-OLEDBIntouch 连接SQL Server数据库1.建立连接字符串ConnectString = "driver={SQL server};User ID=用户名;Password=密码;Initial Catalog=数据库名;Server=服务器名";2.连接数据库自定义函数 fSQLConnect( )ResultCode=SQLConnect(ConnectionID,ConnectString);ErrorMsg=SQLErrorMsg(ResultCode);IF ResultCode==0 THENdSQLConnectState=1; {数据库连接成功}ELSEdSQLConnectState=0;{连接失败, ErrorMsg 中包含出错信息}ENDIF;3.查询数据库3.1.使用SQLSelect建议自定义函数(QuickFunction)[ResultCode=]SQLSelect(ConnectionID,TableName,BindList,WhereExpr,OrderByExpression);注意:在SQLSelect后使用SQLEnd()DIM brandCount AS INTEGER;DIM i AS INTEGER;ErrorMsg="";ResultCode=SQLSelect(ConnectionID,"SemifinishedCode","Semifinishe dCode","","ID ASC");IF ResultCode==0 THENdBrandOK=1;ELSEdBrandOK=0;ENDIF;ErrorMsg=SQLErrorMsg(ResultCode);brandCount=SQLNumRows(ConnectionID);IF brandCount>0 THENSQLFirst(ConnectionID);iBrandCount= 0;FOR i=1 TO brandCountiBrandCount= iBrandCount + 1;/doc/f417493988.html,= "mBrand" + StringFromIntg( iID, 10 ); idBrand=mBrandName;/doc/f417493988.html,= "mSemiCode" + StringFromIntg( iID, 10 );idSemiCode=mSemifinishedCode;IF i< brandCount THENSQLNext(ConnectionID);ENDIF;NEXT;ENDIF;ResultCode =SQLEnd(ConnectionID);3.2.使用自定义语句(字符串比较短)SQLCommand=" UPDATE DischargePitHead SET SemifinishedCode='" + mGSemiCode + "',AccomplishNum=0 WHERE ID= " + StringFromIntg( guankou, 10 );ResultCode=SQLSetStatement( ConnectionID, SQLCommand);ResultCode=SQLExecute(ConnectionID,"",0);ErrorMsg=SQLErrorMsg(ResultCode);3.3.使用自定义语句(字符串比较长)SQLCommand=" UPDATE CheInfo SET SemifinishedCode = '" + semiCode + "', GravityValue=" + bz + " ,QualityState = " + StringFromIntg(iQualityState, 10 ) ;ResultCode=SQLSetStatement( ConnectionID, SQLCommand);ResultCode=SQLAppendStatement(ConnectionID,",memo = '" + mem + "' WHERE CheNum=" + che+ " and Isreturn<>1");ResultCode=SQLExecute(ConnectionID,"",0);4.断开数据库连接ResultCode=SQLDisconnect(ConnectionID);ErrorMsg=SQLErrorMsg(ResultCode);。
非谓语动词中的动词不定式非谓语动词中的动词不定式非谓语动词也是动词的一种,他们有着动词的特点,还可以充当主语、宾语、状语等。
以下是我细心整理的非谓语动词中的动词不定式,欢送大家共享。
动词不定式的形式为(to)+do/be done,其中to有时要省略。
通常所说的“动词原形”其实质就是不带to的不定式形式。
不定式具知名词、形容词和副词的性质。
它的否认形式为not+(to)do/be done。
一、不定式的时态性不定式从时态角度讲,具体形式分为一般式、进展式和完成式,是以不定式动作与谓语动词发生的时间的比较确定的。
具体状况如下:1、一般式不定式的一般式所表示的不定式动词与谓语动词同时发生或发生在谓语动词动作之后。
【例句】Tom plans to take part in the postgraduate entrance exams.汤姆打算要考研。
2、进展式不定式的进展式表示与谓语动词动作同时发生。
【例句】Tom pretended to be fully sleeping.汤姆装作睡得很沉。
3、完成式不定式的完成式表示发生于谓语动词动作之前。
【例句】Tom is pleased to have met his friend who has not kept intouch for many years.汤姆很兴奋能遇上他多年未联系的伴侣。
二、不定式的句子成分属性不定式如其他非谓语动词一样可以充当多种句子成分,包括主语、表语、宾语、宾语补足语、定语以及状语。
1、作主语【例句】To accomplish the budget in a month is impossible.在一个月内完成预算是不行能的。
2、作表语【例句】My wife’s task is to take charge of loveliness.我老婆的'任务是负责”得意”。
3、作宾语1〕假设谓语动词为find,want,hope,wish,offer,fail,plan,learn,pretend,refuse,manage,help,agr ee,promise,prefer时,不定式〔宾语〕后面存在宾语补足语成分,要用it作形式宾语,真正的宾语〔不定式〕后置于句尾,放在宾语补足语后面。
INTOUCH使用记录笔记一、定义1、标记名:如果设定的是需要用户输入的,并且需要显示在另一个字符串上时,可以用相同的标记名,只是其中用于用户输入的选择“用户输入”里的,而另一个用于显示的则选择“值显示”里的。
2、项目名:项目名设置的与给定的名字相同,而标记名则可以自己定义。
3、访问名:I/O 数据源通常是在远程计算机上运行的程序,并且使用DDE 或SuiteLink 协议与InTouch 系统中的其它计算机进行通讯。
如果设定的标记名不需要从别的地方获得数据,是自己输入至数据库的话,就不需要有访问名,即数据类型选择的是内存整型就好。
4、绑定列表:注意下图中的列名,存在大小写问题,是错误的:下面这个图是正确的,要注意列名的大小写,是区分的:5、登陆窗口的的各项设置:(1)用户名、密码、权限都在“菜单---特别---安全性---配置用户”中设置(2)在相应的按钮属性定义中设置一个“失效”,利用设定其权限级别来控制开关是否作用二、程序1、数据改变:数据发生改变即动作(“参数设置”中需要写的程序可以写在此处)。
2、应用程序(启动时):原型:SQLConnect(connectid01,"provider=sqloledb;DataSource=192.168.5.100;Initial Catalog=abc;User Id=sa;Password=a" );解释:SQLConnect(connectid01,"provider=sqloledb;Data Source=远程连接的IP地址;Initial Catalog=数据库名;User Id=账号;Password=密码" );3、条件脚本(符合条件即执行):例:条件:$Second==15(每分钟的第15秒执行,即一分钟执行一次) 原型:SQLUpdate(connectid01,"yuepu", "zzz1","TagName='abc1'");解释:SQLUpdate(connectid01(同应用程序连接数据库的一样),"yuepu"(表名), "zzz1"(绑定的列表名),"TagName='abc1'(数据库里表里的那一行的名字)");原型:SQLUpdate(connectid01,"yuepu", "zzz2","TagName='abc2'");原型:SQLUpdate(connectid01,"yuepu", "zzz3","TagName='abc3'");4.然后我们需要编写如下SQL语句的调用语句。
Intouch脚本函数之For循环语句使用说明
For循环可以反复执行一段代码。
InTouch HMI 仅支持 FOR 循环。
FOR 循环按所监视的每次循环迭代产生的递增或递减的数值循环变量值来进行。
循环一直执行到循环变量值达到设定值。
For 语法如下:
FOR LoopTag = StartExpression TO EndExpression [STEP ChangeExpression]
... 语句或另一个 FOR 循环 ...
NEXT;
• StartExpression, EndExpression 与ChangeExpression 共同定义迭代次数。
• StartExpression 设置循环范围的开始值。
EndExpression 设置循环范围的结束值。
• STEP ChangeExpression 可选择设置每次循环迭代过程中循环标记所递增或递减的值;如果不指定此值,则使用缺省值 1,即每次循环对LoopTag加1。
例子e.g:
FOR i=1 TO 100 STEP 2
...........语句
NEXT;
//表示每次循环i加2,总计循环50次
执行 FOR 循环时, InTouch HMI:
1 将 LoopTag 设置为 StartExpression 的值。
2 测试 LoopTag 是否大于 EndExpression。
如果是,InTouch HMI 退出循环。
(如果ChangeExpression 为负数,则 InTouch HMI 测试LoopTag 是否小于EndExpression)。
3 执行循环内的语句。
4 按 ChangeExpression 的值(除非另外指定,否则设为 1)递增 LoopTag。
5 重复步骤 2 到 4直到LoopTag达到 EndExpression的值。
使用 FOR 循环时请记住以下规则:
• FOR 循环可以嵌套。
最大嵌套级数取决于可用的内存与系统资源。
• 对于每个 FOR 语句,必有一个 NEXT 结束语句。
与If...else语句相同,在同一嵌套级别中, NEXT 语句总是应用于前面最接近的FOR 语句。
• LoopTag 必须是数值标记(或局部变量),比如整形标记。
• StartExpression、EndExpression 以及ChangeExpression 必须是赋值为数值结果的有效表达式,比如整形标记。
• 如果 ChangeExpression 为正, EndExpression 必须大于 StartExpression ;反之如果 ChangeExpression 为负,StartExpression 必须大于EndExpression。
否则循环不会开始。
强制结束循环
您可以通过调用语句 EXIT FOR; 在任何时间退出循环。
此语句使脚本继续执行紧接着循环 NEXT 语句后的其他语句。
示例
下面的代码段使用循环将大量的虚拟记录插入数据库表。
如果插入记录时发生错误,则放弃循环以防止产生更多错误。
FOR Counter = 1 TO 1000
ResultCode = SQLInsert(ConnectionID, "BatchDetails","BindList1");
IF ResultCode <> 0 THEN
LogMessage("Error creating records!Aborting...");
EXIT FOR;
ENDIF;
NEXT;
循环对其它运行时进程的影响
执行 FOR 循环时, WindowViewer 中的所有其它运行时进程都暂停。
包括以下进程:
• 屏幕更新(动画链接、值显示、趋势等)。
到循环完成之前不会发生任何移动,因此不能给动画对象使用 FOR循环。
• I/O 通讯。
例如,如果修改 FOR 循环中 I/O 标记的值,则只有最终的迭代后面的值才会写入 I/O 设备。
• 其它脚本,包括异步 QuickFunction。
您可以通过将 FOR 循环放入异步 QuickFunction 来避免暂停其它运行时进程。
循环执行的时间限制
为避免无限循环,程序设置了一个时间限制, FOR 循环必须在这个时间限制内完成执行否则WindowViewer 会自动终止循环它,并将一条关于终止的消息写入 Log Viewer中。
默认缺省的循环时间限制为 5 秒。
可以通过向应用程序目录中的 intouch.ini文件添加下面这行以对它进行自定义循环时间:LoopTimeout=x
将 x 替换成以秒为单位的时间限制。
备注:时间限制仅在循环的 NEXT 结束循环语句中检查。
因此,循环的第一次总是会执行,即便它花费的时间比时间限制更长。
For循环的示例
以下脚本通过一个简单的循环与一个间接标记,使用 0 值来初始化 100 个标记(Tag001 到 Tag100):
DIM Counter AS INTEGER;
FOR Counter = 1 TO 100
= "Tag" + Text(Counter, "000");
IndirectInteger.Value = 0;
NEXT;
以下脚本通过两个嵌套的循环与一个间接标记,使用 0 来初始化 1000 个标记(Line01_Tag001 到 Line10_Tag100):
DIM LineCounter AS INTEGER;
DIM TagCounter AS INTEGER;
FOR LineCounter = 1 TO 10
FOR TagCounter = 1 TO 100
= "Line" +Text(LineCounter, "00") + "_Tag" +Text(TagCounter, "000");
IndirectInteger.Value = 0;
NEXT;
NEXT;
Intouch FOR循环语句介绍结束。