当前位置:文档之家› Intouch函数及语句介绍

Intouch函数及语句介绍

Intouch函数及语句介绍
Intouch函数及语句介绍

Intouch函数及语句介绍

R

1: 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]:ErrorCode

Script body:RecipeGetMessage(ErrorCode, ErrorMessage,131);

当模拟标记名ErrorCode 的值发生变化时,将自动执行此脚本。当此脚本执行时,RecipeGetMessage()

函数将读取标记名ErrorCode 的当前数字值,并且返回与此数字值关联的消息到标记名ErrorMessage。

ErrorCode = RecipeLoad ("c:\App\recipe.csv","Unit1","cookies");

RecipeGetMessage(ErrorCode, ErrorMessage, 131);

3: RecipeLoad() 将指定的配方加载到指定的标记名单元中。

句法 RecipeLoad(“Filename”,“UnitName”,“RecipeName”);

参数描述

Filename此函数所作用的配方模板文件的名称。FileName 可以是字符串常数或含有配方模板文件的消息标记名。

UnitName此函数使用的指定配方模板文件中指定的单元。RecipeLoad()函数需用户提供UnitName。RecipeSelectUuit() 函数返回此参数的值。UnitName 可以是字符常数或含有该单元名称的消息标记名。

RecipeName此函数使用的指定配方模板文件中指定的配方。RecipeLoad()、RecipeSave() 和RecipeDelete() 函数需用户提供RecipeName。RecipeSelectRecipe() 函数返回此参数的值。RecipeName 可以是字符常数或含有该配方名称的消息标记名。

实例

下面的语句将使为配方Recipe1 (在recfile.csv 文件中)定义的值加载到由Unit 定义的一组标记名中:

RecipeLoad("c:\recipe\recfile.csv", "Unit1", "Recipe1");

4: RecipeSave()将最新创建的配方或现有配方的更改保存到指定的配方模板文件。

句法 RecipeSave(“Filename”,“UnitName”,“RecipeName”);

参数描述

FileName此函数所作用的配方模板文件的名称。FileName 可以是字符串常数或含有配方模板文件的消息标记名。

UnitName 此函数使用的指定配方模板文件中指定的单元。RecipeLoad()函数需用户提供UnitName。RecipeSelectUuit() 函数返回此参数的值。UnitName 可以是字符常数或含有该单元名称的消息标记名。

RecipeName此函数使用的指定配方模板文件中指定的配方。RecipeLoad(),RecipeSave() 和RecipeDelete() 函数需用户提供RecipeName。RecipeSelectRecipe() 函数返回此参数的值。配方名可以是字符常数或含有该配方名称的消息标记名。

实例

下列例子将保存对recfile.csv 文件中的配方“Recipe3”的改变。如果Recipe3 在recfile.csv 文件中不存在,它将会被生成。数值将用于设定定义在Unit2 中的标记名的值。

RecipeSave("c:\recipe\recfile.csv", "Unit2", "Recipe3");

5: RecipeSelectNextRecipe()选择当前定义在配方模板文件中的下一个配方。

句法 RecipeSelectNextRecipe(“Filename”,“RecipeName”,“Number”);

参数描述

FileName此函数所作用的配方模板文件的名称。实际消息标记名。

RecipeName此函数使用的指定配方模板文件中指定的配方。RecipeLoad()、RecipeSave() 和RecipeDelete() 函数需用户提供RecipeName。RecipeSelectRecipe() 函数返回此参数的值。没有引号或字符串文字的实际消息标记名。

Number如果某一函数需要字符为参数,该域设置返回该参数的最大字符串长度。在InTouch

中,字符串(消息)标记名的最大长度可达131 个字符。除非你减小了InTouch 标记名的最大字符串长度。数或整型标记名,此参数一般设为131。

实例

下面的语句使系统读出RecipeName 标记名的当前值前且返回文件中的下一个配方。若RecipeName

的值为空或不能找到,将返回文件的第一个配方。若RecipeName 包含的是文件的最后一个配方,则返此配方。(配方按创建时的顺序保存。)

RecipeSelectNextRecipe("c:\recipe\recfile.csv", RecipeName, 131);

6: RecipeSelectPreviousRecipe() 选择当前配方模板文件中定义的前一个配方。

句法 RecipeSelectPreviousRecipe(“Filename”,“RecipeName”,“Number”);

参数描述

FileName 此函数所作用的配方模板文件的名称。实际消息标记名。

RecipeName 此函数使用的指定配方模板文件中指定的配方。RecipeLoad()、RecipeSave() 和RecipeDelete() 函数需用户提供RecipeName。RecipeSelectRecipe() 函数返回此参数的值。没有引号或字符串文字的实际消息标记名。

Number 如果一个函数需要字符参数,该域设置返回到参数的最大字符串长度。在InTouch

中,字符串消息标记名的最大长度是131 个字符。除非你减小了InTouch 标记名的最大字符串长度,此参数一般设为131。数字或整型标记名。

实例

下面的语句使系统读出RecipeName 标记名的当前值且返回文件中的前一个配方。此返回的字符串将被储存在RecipeName 中并覆盖当前值。若RecipeName 的值为空白或不能找到,将返回文件的最后一个配方。若RecipeName 当前包含的是文件的第一个配方,则返回此配方。(配方按创建时的顺序保存。)

RecipeSelectPreviousRecipe("c:\recipe\recfile.csv", RecipeName,131);

7: RecipeSelectRecipe() 选择当前在配方模板文件中定义的一个配方。

句法 RecipeSelectRecipe(“Filename”,“RecipeName”,“Number”);

参数描述

FileName此函数所作用的配方模板文件的名称。实际消息标记名。

RecipeName此函数使用的指定配方模板文件中指定的配方。RecipeLoad()、RecipeSave() 和RecipeDelete() 函数需用户提供RecipeName。RecipeSelectRecipe() 函数返回此参数的值。没有引号或字符文字的实际消息标记名。

Number如果一个函数必须填充字符参数,该域设置返回到参数的最大字符串长度。在

I nTouch 中,字符串消息标记名的最大长度是131 个字符除非你减小了InTouch 标记

名的最大字符串长度,此参数一般设为131。数字或整型标记名。

实例

下面的语句打开“选择一个配方”对话框。

RecipeSelectRecipe("c:\recipe\recfile.csv", RecipeName , 131);

当在对话框中选定一个配方后,它的名称返回到RecipeName 标记名中。

8: RecipeSelectUnit()选择将被加载当前配方值的标记名单元。

句法 RecipeSelectUnit(“Filename”,“UnitName”,“Number”);

参数描述

FileName此函数所作用的配方模板文件的名称。实际消息标记名。

UnitName此函数使用的指定配方模板文件中指定的单元。RecipeLoad()函数需用户提供UnitName。RecipeSelectUuit() 函数返回此参数的值。没有引号或字符文字的实际消息标记名。

Number 如果函数的参数需用字符串来填充,此参数设置返回到参数的最大字符串长度。在InTouch 中,字符串(消息)标记名的最大长度可达131 个字符。除非你减小了InTouch 标记名的最大字符串长度,此参数一般设为131。数字或整型标记名。

实例

下面的语句打开“选择一个单元”对话框。

RecipeSelectUnit("c:\recipe\recfile.csv", UnitName, 131);

一旦选定了某个单元,单元的名称将返回给UnitName 标记名。

注意

RecipeSelectRecipe() 和RecipeSelectUnit() 函数都与RecipeLoad() 函数结合使用。

& 有关连接函数更详尽的消息,请参看配方管理器用户指南中“组合配方函数”一节。9: RestartWindowViewer;允许用户控制关闭和重启WindowViewer。

句法 RestartWindowViewer;

说明此函数将关闭然后自动重新启动WindowViewer。在未用自动更新网络应用程序开

发(NAD)功能时,可以用此函数来更新应用程序。此函数可和“$ApplicationChanged”

配合使用以判断何时发生NAD 的更新,然后提供自定义关闭。但使用NAD 选项,通知操作员,操作员可能必须延迟到较晚时间再更新,或者此函数可被放置在一个按钮动作脚本中,因此当方便的时候一个操作员可进行自动关闭和重新启动WindowViewer。10: Round()按指定精度来近似一个实数。

句法 RealResult=Round(Number,Precision);

参数描述

Number任何数字,实型或整型标记名。

Precision 设定数字将要被近似到的精度。数字,实型或整形标记名。

说明“Precision”设置了“Number”将被近似的精度。

实例

Round(4.3, 1) 将返回4

Round(4.3, .01) 将返回4.30

Round(4.5, 1) 将返回5

Round(-4.5, 1) 将返回-5

Round(106, 5) 将返回105

Round(43.7, .5) 将返回43.5

A

Abs() 返回一个指定数的绝对值(无符号等价值)。

句法 Result=Abs(Number);

参数描述

数字任何数字,实型或整型标记名。

说明“Number”的绝对值被计算并返回给“Result”。

实例

Abs(14) 将返回14

Abs(-7.5) 将返回7.5

Ack() 确认任何不确认的InTouch 报警。

句法 Ack Tagname;

参数描述

Tagname 任何InTouch 标记名,报警组,或组变量。

说明此函数可用于一标记名、报警组或组变量。(组变量为一标记名,它具有分配给它的报警组名称。)

实例

以下语句可用于一按钮,来确认任一未确认的报警:

Ack $System; (所有的报警)

Ack Tagname;

Ack GroupName;

Ack GroupVariable;

ActivateApp()

激活另一个正在运行的Windows 应用程序

句法ActivateApp TaskName;

参数描述

TaskName这个函数将激活的任务。

说明TaskName 是准确的文本字符串,包括出现在任务栏或任务管理器中的空格

(在Windows NT 中通过右单击任务栏,然后单击任务管理器或Ctrl+Alt+Delete 来访问)。

实例

以下例子检查是否命令提示符正在运行。如果正在运行,将使它出现在前景并给予聚焦。否则,启动一个命令提示符并启动命令提示符中的DOS 程序https://www.doczj.com/doc/3b5653118.html, 。

IF InfoAppActive( InfoAppTitle("cmd")) == 1 THEN

ActiveApp InfoAppTitle("cmd");

ELSE

StartApp "cmd /c edit";

ENDIF;

almAckAll() 确认所有当前查询中的报警,包括那些在当前报警显示中未显示的报警。

句法 [Result=]almAckAll(ObjectName,Comment);

参数描述

ObjectName 报警对象的名称。如,AlmObj_1。

Comment 报警确认注释。

实例

MessageTag = “Acknowledge All by” + $Operator;

AlmAckAll(揂lmObj_1? MessageTag);

almAckDisplay() 只确认当前报警显示对象中可见的报警。

句法 [Result=]almAckDisplay(ObjectName,Comment);

参数描述

ObjectName 报警对象的名称。如,AlmObj_1。

Comment 报警确认注释。

实例

almAckDisplay(“AlmObj_1”, “Display Acknowledge”);

almAckRecent() 确认最近发生的报警

句法[Result=]almAckRecent(ObjectName,Comment);

参数描述

ObjectName 报警对象的名称。如,AlmObj_1。

Comment 报警确认注释。

说明有关一个错误号列表,见附录A。

实例

almAckRecent(“AlmObj_1”, $DateString);

almAckSelect() 只确认报警显示中选定的报警。

句法 [Result=]almAckSelect(ObjectName,Comment);

参数描述

ObjectName 报警对象的名称。如,AlmObj_1。

Comment 报警确认注释。

实例

IF ($Hour > 0 and $Hour < 8) THEN

AckTag = “NightShift”;

ELSE

AckTag = “Day Shift”;

ENDIF;

AlmAckSelect (“AlmObj_1”,AckTag);

almDefQuery() 执行一个查询,用缺省属性更新报警对象。

法句[Result=]almDefQuery(ObjectName);

参数描述

ObjectName 报警对象的名称。如,AlmObj_1。

说明缺省查询属性是在开发时指定的。

实例

almDefQuery(“AlmObj_1”);

almMoveWindow() 滚动报警显示对象窗口。

句法[Result=]almMoveWindow(ObjectName,Option,Repeat);

参数描述

ObjectName 报警对象的名称。如,AlmObj_1。

Option 执行的报警确认类型:

类型描述

LineDn 下一行。

LineUp 上一行。

PageDn 下一页。

PageUp 上一页。

Top 列表顶部。

Bottom 列表底部。

PageRt 右边的一页。

PageLf 左边的一页。

Right 列表的结尾(右侧)。

Left 列表的开始(左侧)。

重复这一操作将被重复的次数。

$ 有关错误号的更多信息,参见附录A,“Windows 控制和分布式报警脚本函数错误消息”。

实例

almMoveWindow(“AlmObj_1”, ”Bottom”, 0);

almMoveWindow(“AlmObj_1”, ”LineDn”, 3);

almMoveWindow(“AlmObj_1”, ”PageUp”, 0);

almQuery() 执行一个查询来更新报警显示对象。

句法[Result=]almQuery(ObjectName,AlarmList,FromPri,

ToPri,State,Type);

参数描述

ObjectName 报警对象的名称。如,AlmObj_1。

AlarmList 设置报警组/组列表来对,如“MyGroup”或消息标记名执行查询。

FromPri 要显示的报警的启动优先权。如,100 或整型标记名。

ToPri 要显示的报警的结束优先权。如, 900 或整型标记名。

State 指定要显示的报警的类型。如,“UnAck”或消息标记名。有效的状态为“All”,“UnAck”或“Ack”。

Type 指定查询的类型,如,“Hist“(历史报警)或“Summ”(摘要报警)。

$ 有关错误号的更多信息,参见附录A,“窗口控制和分布式报警脚本函数错误消息”。

实例

此语句检索所有在“MyGroup”中指定的优先级在500 到600 之间的历史报警,这些报警将分布报警显示“Alarm1”。

AlmQuery("AlmObj_1","MyGroup",500,600,"All","Hist");

almSelectAll() 在报警显示对象中,切换所有报警的选择。

句法[Result=]almSelectAll(ObjectName);

参数描述

ObjectName 报警对象的名称。如,AlmObj_1。

实例

If $AccessLevel > 8000 THEN

almSelectAll(“AlmObj_1”);

almAckSelect(“AlmObj_1”, “Ack Selected by a Manager”);

ENDIF;

Text() 使消息类型标记名根据指定的Format_Text 格式显示一个模拟(整型或实型)标记名的值。

句法MessageResult=Text(Analog_Tag,"Format_Text");

参数描述

Analog_Tag 要转换的数字,实型或整型标记名。

Format_Text 在转换中要使用的格式。实际字符串或消息标记名。

实例

MessageTag=Text(66,"#.00");

MessageTag 是一个消息类型标记名,66 为一个整型或实型的标记名。“#0.00”代表显示格式:

If Analog_Tag=66, then MessageTag="66.00".

If Analog_Tag=22.269, then MessageTag="22.27".

If Analog_Tag=9.999, then MessageTag="10.00".

LogMessage("The current value of FreeserRoomTemp is:"+ Text (FreezerRoomTemp, "#.#")); 在下列例子中,消息标记将被设定为"One=1 Two=2".

MessageTag = "One + " + Text(1,"#") + StringChar(32) + "Two +" + Text(2,"#");

S

SelSPCConSampln1SDMsg

DDE 类型消息

访问RO

描述“连续样本在一个标准偏差内”的报警消息标记。

SendKeys

发送键给应用程序。对接收应用程序来说,这些键就好象是从键盘上键入的。此项功能可用来给应用程序输入数据或给应用程序发送命令。大部分键盘上的键可以用在SendKeys 语句中。每个键可用一个或多个字符表示,例如“A”表示字母“A”或{ENTER}表示回车键。句法SendKeys KeySequence;

参数描述

KeySequence 任何键顺序或消息类型标记名。

说明若要指定一个以上的键,则需将每个字符的代码连接起来。如,要指定一个后面跟着一个(b)的美元符号($)键,输入b。下面列出了一个唯一键盘键的有效发送键:

键代码键代码

BACKSPACE {BACKSPACE} or {BS} HOME {HOME}

BREAK {BREAK} INSERT {INSERT}

CAPSLOCK {CAPSLOCK} LEFT} LEFT}

DELETE {DELETE} or {DEL} NUMLOCK {NUMLOCK}

DOWN {DOWN} PAGE DOWN {PGDN}

END {END} PAGE UP {PGUP}

ENTER {ENTER} or ~ (tilde) PRTSC {PRTSC}

ESCAPE {ESCAPE} or {ESC} RIGHT {RIGHT}

F1 {F1}* TAB {TAB}

UP {UP}

* 所有功能键也可以以同样的方式输入。

特殊字符(SHIFT,CTRL 和ALT)有它们自己的键码:

键代码

SHIFT + (plus)

CTRL ^ (caret)

ALT % (percent)

SetPropertyD() 指定运行期间要写的属性的离散值。

句法[ErrorNumber字=]SetPropertyD("ControlName.Property", DiscreteTag);

参数描述

ControlName 窗口控制名称。如,ChkBox_1 或报警对象名。如,AlmObj_1。

.Property 窗口控制或报警对象属性。

DiscreteTag 当该函数执行时,一个保存要写入值的离散值或离散标记名。典型用法:

0 = 控制失效

1 = 控制被激活

SetPropertyI() 指定运行期间要写的属性的整型值。

句法[ErrorNumber字=]SetPropertyI("ControlName.Property", Integer);

参数描述

ControlName 窗口控制名称。如,ChkBox_1 或报警对象名。如,AlmObj_1。

.Property 窗口控制或报警对象属性。

Integer 一个数字或整型标记名。

SetPropertyM() 指定运行期间要写的属性的消息值。

句法[ErrorNumber字=]SetPropertyM("ControlName.Property", "MessageTag"); 参数描述

ControlName 窗口控制名称。如,ChkBox_1 或报警对象名。如,AlmObj_1。

.Property 窗口控制或报警对象属性。

MessageTag被写给ControlName 的属性的字符串。实际字符串或消息标记名。

Sgn() 判别一个数值的符号(正、零或负)

句法RealResult=Sgn(Number);

参数描述

Number 任何数字,实型或整型标记名。

说明若输入的数为正的,则结果为1。负数将返回-1,0 将返回0。

例子

Sgn(425) 将返回1

Sgn(0) 返回0

Sgn(-37.3) 返回–1

Show 显示指定的窗口。(窗口名称必须在引号内。)

句法Show“Window”;

参数描述

Window 被显示窗口的名称。实际字符串或消息标记名。

说明“Window”必须和现存的窗口或要创建的窗口的名称相匹配。在运行期间,若窗口不存在,

WindowViewer 将此语句忽略。若窗口的名称改变了,则它在脚本中必须改变。

实例

Show“Alarm Summary Window”;

注意

如果脚本仅仅在隐藏或显示窗口,我们建议使用“Show Window”或“Hide Window”链接被使用。若使用上述函数并且窗口名改变了,InTouch 将自动作出变化。

ShowAt() 显示窗口时,指定其水平和垂直方向的像素位置。

句法ShowAt(“Window”,Horiz,Vert);

参数描述

Window 窗口的名称。实际字符串或消息标记名。

Horiz 水平像素位置。数字或整型标记名。

Vert 垂直像素位置。数字或整型标记名。

说明当窗口打开时,它将位于水平和垂直座标的中心。若它的边界超出了屏幕,那它就不会被居中。对那条边的最佳拟合将被执行。

实例

下面的语句中,100 代表水平像素的位置,200 代表垂直像素的位置:

ShowAt("Window Name",100,200);

模拟输入对象也能被创建并与内存标记名(如TagHoriz 和TagVert)相链接,以在运行期间动态地改变窗口的位置。在此情况下,语句应输入为:

ShowAt("Boiler Room 7 Details",TagHoriz,TagV ert);

下面的语句判别对象的像素位置,内部标记名$ObjHor 和$ObjV er 可分配给用以显示当前选定对象的位置的模拟量输出链。通过使用链接到对象或按钮的脚本中的$ObjHor 和$ObjVer 标记名,可在此对象或按钮的顶端居中位置显示窗口。

ShowAt("Window Name",$ObjHor,$ObjVer);

ShowAt() 显示窗口时,指定其水平和垂直方向的像素位置。

句法ShowAt(“Window”,Horiz,Vert);

参数描述

Window 窗口的名称。实际字符串或消息标记名。

Horiz 水平像素位置。数字或整型标记名。

Vert 垂直像素位置。数字或整型标记名。

说明当窗口打开时,它将位于水平和垂直座标的中心。若它的边界超出了屏幕,那它就不会被居中。对那条边的最佳拟合将被执行。

实例

下面的语句中,100 代表水平像素的位置,200 代表垂直像素的位置:

ShowAt("Window Name",100,200);

模拟输入对象也能被创建并与内存标记名(如TagHoriz 和TagVert)相链接,以在运行

期间动态地改变窗口的位置。在此情况下,语句应输入为:

ShowAt("Boiler Room 7 Details",TagHoriz,TagV ert);

下面的语句判别对象的像素位置,内部标记名$ObjHor 和$ObjV er 可分配给用以显示当前选定对象的位置的模拟量输出链。通过使用链接到对象或按钮的脚本中的$ObjHor 和$ObjVer 标记名,可在此对象或按钮的顶端居中位置显示窗口。

ShowAt("Window Name",$ObjHor,$ObjVer);

ShowHome;

显示“起始”窗口。起始窗口为那些你所选的,WindowViewer 启动时自动打开的窗口。(起始窗口可通过“WindowViewer

属性- 起始窗口”属性页来选择。)

句法ShowHome;

Sin() 返回以度数表示的角的正弦值。

句法Result=Sin(AngleNumber);

参数描述

AngleNumber 以度为单位的角度。任何数字,实型或整型标记名。

说明“Number”的正弦值被计算并返回到“Result”。

实例

Sin(90) 将返回1

Sin(0) 返回0

wave = 100 * sin (6 * $second);

ShowTopLeftAt() 窗口显示时,指定其左上角的水平和垂直像素位置。

句法ShowTopLeftAt("Window",Horiz,Vert);

参数描述

Window 窗口的名称。实际字符串或消息标记名。

Horiz 水平像素位置。数字或整型标记名。

Vert 垂直像素位置。数字或整型标记名

说明当窗口打开时,它的左上角将位于水平和垂直座标相交处。(屏幕的最左上角的像素位置是0,0。)除了是控制要显示的窗口的左上角的位置外,此函数的工作原理与ShowAt() 函数相同。

W

wcAddItem()

将提供的字符串加入到列表框或组合框。若列表框或组合框创建时未排序,则字符串添加到列表的末尾。否则字符串被插入到列表中,并且列表被排序。

句法[ErrorNumber=]wcAddItem("ControlName","MessageTag");

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。MessageTag 将被显示的消息字符串。实际字符串或消息标记名。

应用于列表框和组合框

实例

当窗口(使用显示时窗口脚本)包含的列表框被打开时,下面的语句将消息字符串的内容添加到列表框中:

wcAddItem("ListBox_1", "Chocolate");

wcAddItem("ListBox_1", "Vanilla");

wcAddItem("ListBox_1", "Strawberry");

wcClear() 删除列表框或组合框中的所有项。

句法[ErrorNumber=]wcClear("ControlName");

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。

应用于列表框和组合框

实例

当按下按钮(动作脚本),下面的语句将删除组合框中所有的项:

wcClear("ListBox_1");

wcDeleteItem() 删除列表框或组合框中与项索引参数关联的项。

句法[ErrorNumber=]wcDeleteItem("ControlName",ItemIndex);

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。ItemIndex 与该项目的位置对应的一个数字。数字或整型标记名。

应用于列表框和组合框

实例

当按下按钮(动作脚本),下面的语句将删除一列表中的第三个项目:

wcDeleteItem("ListBox_1", 3);

wcDeleteSelection() 从列表中删除当前选定的项。

句法[ErrorNumber =]wcDeleteSelection("ControlName");

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。

应用于列表框和组合框

实例

当按下按钮(动作脚本)时,下面的语句将删除一个组合框列表中当前所选定的项:wcDeleteSelection("ListBox_1");

wcErrorMessage() 返回一个描述该错误的消息字符串。

句法ErrorMessage=wcErrorMessage(ErrorNumber);

参数描述

ErrorMessage 消息标记名。

ErrorNumber字被所有窗口控制函数返回的数字。数字或整型标记名。

应用于列表框,文本框,组合框,复选框和单选按钮。

实例

若在加载列表时发生错误,则在消息标记名ErrorDescription 中显示描述错误的文本。在此例中,一个字符串值输出动画链接被赋予标记名ErrorDescription 来显示错误消息。

显示时窗口脚本:

ErrorNumber=wcLoadList("ListBox_1","c:\InTouch\recipe.txt");

ErrorDescription=wcErrorMessage(errorNumber);

此函数也可以与各种窗口控制函数使用来显示错误消息:

ErrorNumber=wcAddItem("ListBox_1","Wang Yong");

ErrorMsg=wcErrorMessage(ErrorNumber);

wcFindItem() 决定列表框或组合框中与消息字符串匹配的第一个项所对应的索引。

句法[ErrorNumber=]wcFindItem

("ControlName","MessageTag",DiscreteTag,Tagname);

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。MessageTag 将被比较的消息字符串。实际字符串或消息标记名。

DiscreteTag 决定字符串比较的类型。可赋予下列离散值之一:

0 = 大小写不敏感

1 = 大小写敏感

Tagname 实际整型标记名名称。

应用于列表框和组合框

wcGetItem() 返回在列表框或组合框中与对应的ItemIndex 相关联的项目字符串的值的属性。

句法[ErrorNumber=]wcGetItem("ControlName",ItemIndex,Tagname);

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。。实际字符串或消息标记名。ItemIndex 与该项目的位置对应的一个数字。数字或整型标记名。

Tagname 实际实型或整型标记名名称。wcGetItem 函数将与项目相应的数值放入从该函数返回的标记名。

应用于列表框和组合框

实例

当按下按钮(动作脚本)时,下面的语句将把一个组合框中第10个项目的字符串值返回给消息标记名ListSelection:

wcGetItem("combobox_1", 10, ListSelection);

若列表中的第10项是“Vanilla”,则ListSelection 将包含字符串“V anilla”。wcGetItemData() 决定由参数ItemIndex 识别的列表项相关的整型值。

句法[ErrorNumber=]wcGetItemData("ControlName",ItemIndex,Tagname);

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。ItemIndex 与该项目的位置对应的一个数字。数字或整型标记名。

Tagname 实际实型或整型标记名名称。wcGetItemData 函数将与项目相应的数值放入从该函数返回的标记名。

应用于列表框和组合框

实例

当按下按钮(动作脚本)时,下面的语句检索与列表框中第5个项相关的数字值,并将其返回给标记名ItemValue:

wcGetItemData("ListBox_1", 5, ItemValue);

若列表中的第5个项目被赋予整型值4500,则标记名ItemValue 将包含4500。wcInsertItem()

将Message 字符串插入列表中。ItemIndex 是要插入的列表索引位置。与wcAddItem() 不同,wcInsertItem() 函数将不对列表进行排序,即使它是一个有序列表框或组合框。

句法[ErrorNumber=]wcInsertItem("ControlName",ItemIndex,"MessageTag");

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。ItemIndex 对应于被添加项位置的数字。若此参数为-1,则字符串将被添加到列表末尾。数字或整型标记名。

MessageTag 包含要在被ItemIndex 所指示位置插入的字符串。.实际字符串或消息标记名。应用于列表框和组合框

例实

当按下按钮(动作脚本)时,下面的语句将一名为“Blueberry”的新项目插入到列表框从上到下第4 个位置处。

wcInsertItem("ListBox_1", 4, "Blueberry");

wcLoadList() 用包含于FileName 的项目来替换列表框或组合框的内容。

句法[ErrorNumber=]wcLoadList("ControlName","Filename");

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。Filename 包含纯ASCII 格式的文件名称。如果没有提供完整的路径名作为消息参数,则此函数将在应用程序目录查找消息文件。实际字符串或消息标记名。

应用于列表框和组合框

实例

当包含组合框的窗口(显示时窗口脚本)被打开时,下面的语句加载一个正确格式的列表(位于C:\InTouch\recipe.txt”)

到此组合框中:

wcLoadList("Combobox_1", "c:\InTouch.32\wclist.txt");

wcLoadText() 以FileName 的内容替换文本框的内容。

句法[ErrorNumber=]wcLoadText("ControlName", "Filename");

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。Filename 包含纯ASCII 格式的文件名称。如果没有提供完整的路径名作为消息参数,则此函数将在应用程序目录查找消息文件。实际字符串或消息标记名。

说明wcLoadText() 函数只支持纯ASCII 文本格式文件,诸如那些用Microsoft 记事本程序创建的文件。窗口控制的错误号列在附录A 中。

& 有关高级文件浏览能力,参见Factory Suite 的“生产率包”的文档浏览器。

应用于文本框

实例

当包含文本框的窗口(显示时窗口脚本)打开时,下面的语句加载一个记事本文本文件(c:\InTouch\readme.txt”) 到一个文本框中:

wcLoadText("Textbox_1", "c:\InTouch\readme.txt");

wcSaveList() 以列表框或组合框对象中所列项目替换FileName 的内容。

句法[ErrorNumber=]wcSaveList("ControlName","Filename");

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。Filename 包含纯ASCII 形式的文件名称。如果文件不存在,则将被创建。使用wcLoadList() 函数,这些项目能被相继加载到列表对象中。实际字符串或消息标记名。

应用于列表框和组合框

实例

当按下按钮(动作脚本)时,下面的语句将当前列表框中的项存到一文件中(c:\InTouch\newList.txt”):

wcSaveList("ListBox_1", "c:\InTouch\newlist.txt");

注意

如果外部ASCII 文件被用来填充列表框和组合框,则它们必须遵照特定的格式并且包含特定的消息。格式如下所示:

ControlType, ListCount

ListItem, ItemData

ListItem, ItemData

ListItem, ItemData

例如:一个要被加载到一个组合框中的列表文件,它包含三个供选择的项,并且这些项没有被赋予项数据。(有关项数据的更多信息,参见wcSetItemData() 函数)。

文件的格式如下所示:

ComboBOX, 3

ComboBOX, 3

Vanilla, 0

Strawberry, 0

描述:COMBOBOX 是控制类型。Chocolate,Vanilla,和Starwberry 的ListCount 为 3 ,代表其三个项目。Chocolate 则被列为第一个列表项目或索引1。Vanilla 作为索引2,而最后Strawberry 作为3。每一个索引项目都有一个0 数据值。

wcSaveText()

将包含于文本框中的文本保存到FileName。如果此文件不存在,它将被创建;如果它存在,则其必须是可读/写的。

句法[ErrorNumber=]wcSaveText("ControlName","Filename");

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。Filename 包含纯ASCII 格式的文件的名称。如果没有提供完整的路径名,则此函数将保存在应用程序目录下。如果文件不存在,则将被创建。使用wcLoadList() 函数,这些项目能相继被加载到列表对象中。实际字符串或消息标记名。

应用于文本框

实例

当按下按钮(动作脚本)时,下面的语句将文本框的当前信息存入文件c:\InTouch\newtext.txt 中:

wcSaveText("Textbox_1", "c:\InTouch\newtext.txt");

注意

同Microsoft 记事本创建的文件一样,wcSaveText() 函数仅仅以纯ASCII 文本格式保存文件。

参见wcLoadList()

wcSetItemData()

将项目(Number)的一个整型值赋予列表中由ItemIndex 指定的项。该函数允许将一个数字赋予一个字符串。

句法[ErrorNumber=]wcSetItemData("ControlName",ItemIndex,Number);

参数描述

ControlName 窗口控制对象的名称。如,ListBox_1。实际字符串或消息标记名。

ItemIndex 指定请求项目显示顺序的整型值。数字或整型标记名。

Number 代表项目数据的一个整型值。数字或整型标记名。

说明含有这些项的完整列表能由外部创建(如记事本),并且能通过调用一个函数进行加载。该列表必须按wcSaveList() 函数所描述的那样被正确地格式化。

实例

有一含有三种成分的配方:面粉、糖和盐。面粉为4500 克,糖为1500 克,盐为325

克。通过“数据更改脚本”将这些值分配给列表框中的每一项,该“数据更改脚本”由所选定的配方(标记名,配方名)触发:

wcSetItemData("ListBox_1", 1, 4500); {设定列表中第1 项

(面粉)=4500}

wcSetItemData("ListBox_1", 2, 1500); {设定列表中第2 项

(糖)=1500}

wcSetItemData("ListBox_1", 3, 325); {设定列表中第3 项

(盐)=325}

wcGetItemData() 函数被用来返回与列表项目相关联的值(项目数据)。参数Tagname 包含被返回的数值。这个参数可以是一个直接写入真实设备的DDE 整型标记名。WWControl() 允许你从InTouch 恢复,最小化,最大化, 或关闭一个应用程序。

句法WWControl("AppTitle","ControlType");

参数描述

AppTitle 将被控制的应用程序标题名。一个特定应用程序的标题可以通过InfoAppTitle() 函数来决定。实际字符串或消息标记名。

ControlType 决定按下列何种方式控制应用程序(这些动作等价于单击此应用程序控制菜单中它们所对应选项):实际字符串或消息标记名。

类型描述

"恢复" 激活并显示应用程序的窗口。

"最小值" 激活一个窗口并且以一个图标显示它。

"最大值" 激活并显示应用程序的窗口。

"关闭" 关闭一个应用程序。

实例

WWControl("Calculator","Restore");

WWControl("Microsoft Excel","Close");

WWControl(InfoAppTitle("View"), "Close");

F

FactoryFocus

FactoryFocus 是一个仅在InTouch 运行时版本下的视图。它允许监管人员能在实时情况下查看HMI 应用程序进程。由于没有数据可以被改变,查看是其仅有的功能,因而系统安全性相应增加。要使用InTouch FactoryFocus,您不必改变您的InTouch 应用程序。

InTouch FactoryFocus 仅作为一个客户。运用DDE 或SuiteLink 既没有写入数据,也没有插入数据到类似Excel 的程序中。报警可以被查看但不能被确认。FactoryFocus 不能象I/O 服务器那样请求客户。一些象动画链接,标记名,实时和历史趋势的特性只能被查看。

FileCopy() 复制SourceFile 至DestFile,与DOS 的复制命令或Windows 文件的复制功能相似。

句法FileCopy(SourceFile,DestFile,DoneTag);

参数描述

SourceFile 源文件名(包括完整路径)。

DestFile 目标文件(包括完整的路径)或目录名(参见下面的例子)。

DoneFile FileCopy() 函数用于报告拷贝过程进展的标记名的名称。此参数必须是一个表明标记名名称的字符串(而非实际的标记名本身)。所以若你的完成标记为Monitor,

你就应提供“Monitor”或https://www.doczj.com/doc/3b5653118.html,,而不能仅仅是Monitor 。

说明当使用FileCopy()函数时,若成功地启动了此过程,它立即返回1。若另一过程在运行中(此新过程不能被启动)它将返回0,或在出错时,返回-1。使用此返回值可以监视FileCopy() 函数的启动:

Status=FileCopy("C:\*.TXT", "C:\BACKUP", "Monitor");

Status 是一个为1,-1,0 的整型标记名。FileCopy() 函数在后台执行,这样它不会干扰InTouch 的运行。DoneTag 允许应用程序或用户监视此复制操作的进展。用这种方法,用户可以被提醒在过程启动后可能发生的任何错误。这与上述返回的Status 不同,Status 表明的是复制过程是否被成功启动。

一旦复制过程已成功启动,DoneTag 就会被赋值。此过程尚在进行中时它被置为0。

当此过程成功结束后,它被置为1,或在此过程结束前发生错误,它被置为-1。

SourceFile 和DestFile 一般为文件名。不过,用FileCopy() 函数复制单一文件时,目标可以是一个目录:

FileCopy("C:\DATA.TXT", "C:\BACKUP", "Monitor");

这将把文件“DA TA.TXT”复制到“C:\”驱动器上一个叫做“BACKUP”的目录下。标记Monitor 在复制完成后被置为1。

不过,若SourceFile 包含任何通配符的话,DestFile 必须是一个目录(而非文件名),否则此函数将返回一个错误代码:

FileCopy("C:\*.TXT", "C:\BACKUP", "Monitor");

这将从C:\ 根目录拷贝所有的.TXT 文件到C:\BACKUP目录下。标记Monitor 在复制完成后被置为1。

FileDelete() 删除不需要或不想要的文件。

句法FileDelete(Filename);

参数描述

Filename 要删除的文件名。

说明若找到要删除的文件,并成功地删除,此函数将返回1,否则此函数返回0。

实例

Status=FileDelete("C:\DATA.TXT");

若在C:\root下找到“DATA.TXT”文件,则Status 等于1,未找到该文件则为0。FileMove() 与FileCopy() 函数相似,除了它将文件从一个位置转移到另一个位置,而不是复制。

句法FileMove(SourceFile,DestFile,DoneTag);

参数描述

SourceFile 源文件名(包括完整路径)。

DestFile 目标文件名(包括完整路径)。

DoneTag FileMove() 函数用来报告转移过程进展情况的标记名称。此参数必须是一个表明标记名名称的字符串(而非实际的标记名本身)。所以,若你的完成标记叫做Monitor,你就得提供“Monitor”或https://www.doczj.com/doc/3b5653118.html, 而不是Monitor 而已。

说明当使用FileMove() 函数时,若成功地启动了此过程,它立即返回1。若另一过程在运行中(此新过程不能启动),它将返回0,或者出错时返回-1,使用此返回值,可以监视FileMove() 函数的启动。

Status=FileMove("C:\DATA.TXT", "D:\DA TA.TXT", "Monitor");

Status=FileMove("C:\DATA.TXT", "D:\DA TA.TXT", "Monitor");

Status是一个为1,-1,0 的整型标记。FileMove() 函数在后台执行,这样它不会干扰InTouch

的运行。使用DoneTag 是为了允许应用程序或用户监视转移操作的进展。用这种方法,可提醒用户在转移过程启动后可能发生的任何错误。这与上述返回的Status 不同,Status指示的是转移过程是否已成功被启动。

一旦转移过程已成功启动,DoneTag 就会被赋值。此过程尚在运行中时它被置为0。当此过程成功结束后,它被置为1,或此过程结束前发生错误,它被置为-1。

若SourceFile 和DestFile 位于同一驱动器上,此函数可以简单地更改此文件的目录参考(计算机在此参考中保存磁盘上的文件名称和位置),而不用实际转移任何数据。在这种情况下,不管此文件的大小,转移操作将会很快。若SourceFile 和DestFile 位于不同的驱动器,转移操作所费的时间将随文件的大小不同而不同。这是因为数据必须由一个物理磁盘传送到另一物理磁盘上。

实例

FileMove ("C:\DATA.TXT","C:\BACKUP\DA TA.TXT","Monitor");

这将把名为“DATA.TXT”的文件从驱动盘“C”根目录中转移到名为“BACKUP”的目录下。标记Monitor 在其完成后被置为1。

注意

此函数也可用于文件更名,只要SourceFile 和DestFile 指定了相同的目录,但不同的文件名。

FileMove ("C:\DATA.TXT","C:\DATA.BAK","Monitor");

这将把C:\root 目录下文件“DATA.TXT”更名为“DA TA.BAK”。标记Monitor 在其完成后被置为1。

FileMove()

与FileCopy() 函数相似,除了它将文件从一个位置转移到另一个位置,而不是复制。

句法FileMove(SourceFile,DestFile,DoneTag);

参数描述

SourceFile 源文件名(包括完整路径)。

DestFile 目标文件名(包括完整路径)。

DoneTag FileMove() 函数用来报告转移过程进展情况的标记名称。此参数必须是一个表明标记名名称的字符串(而非实际的标记名本身)。所以,若你的完成标记叫做Monitor,你就得提供“Monitor”或https://www.doczj.com/doc/3b5653118.html, 而不是Monitor 而已。

说明当使用FileMove() 函数时,若成功地启动了此过程,它立即返回1。若另一过程在运行中(此新过程不能启动),它将返回0,或者出错时返回-1,使用此返回值,可以监视FileMove() 函数的启动。

Status=FileMove("C:\DATA.TXT", "D:\DA TA.TXT", "Monitor");

Status=FileMove("C:\DATA.TXT", "D:\DA TA.TXT", "Monitor");

Status是一个为1,-1,0 的整型标记。FileMove() 函数在后台执行,这样它不会干扰InTouch 的运行。使用DoneTag 是为了允许应用程序或用户监视转移操作的进展。用这种方法,可提醒用户在转移过程启动后可能发生的任何错误。这与上述返回的Status 不同,Status指示的是转移过程是否已成功被启动。

一旦转移过程已成功启动,DoneTag 就会被赋值。此过程尚在运行中时它被置为0。当此过程成功结束后,它被置为1,或此过程结束前发生错误,它被置为-1。

若SourceFile 和DestFile 位于同一驱动器上,此函数可以简单地更改此文件的目录参考(计算机在此参考中保存磁盘上的文件名称和位置),而不用实际转移任何数据。在这种情况下,不管此文件的大小,转移操作将会很快。若SourceFile 和DestFile 位于不同的驱动器,转移操作所费的时间将随文件的大小不同而不同。这是因为数据必须由一个物理磁盘传

送到另一物理磁盘上。

实例

FileMove ("C:\DATA.TXT","C:\BACKUP\DA TA.TXT","Monitor");

这将把名为“DATA.TXT”的文件从驱动盘“C”根目录中转移到名为“BACKUP”的目录下。标记Monitor 在其完成后被置为1。

注意

此函数也可用于文件更名,只要SourceFile 和DestFile 指定了相同的目录,但不同的文件名。

FileMove ("C:\DATA.TXT","C:\DATA.BAK","Monitor");

这将把C:\root 目录下文件“DATA.TXT”更名为“DA TA.BAK”。标记Monitor 在其完成后被置为1。

FileReadFields() 从一个指定文件中读出CSV(逗点分离变量)记录。

句法FileReadFields(Filename,FileOffset,StartTag,NumberOfFields);

参数描述

Filename 指定要读取的文件。

FileOffset 指定文件中开始读取的位置。

StartTag 指定一个第一个数据项目将被写入的InTouch 标记名的名称。此标记名必须以一个数字结尾(如MyTag1

)。此参数必须是一个指示标记名的字符串(而非实际的标记本身)。所以,如果你的标记名称为MyTag 1,你就得提供“MyTag1”或https://www.doczj.com/doc/3b5653118.html,,而非仅仅MyTag1 而已。NumberOfFields 指定要读的域数目(此文件的每个记录中以逗号分离的域的数目)。

说明若StartTag 为“MyTag1”而NumberOfFields 为3,则有 3 个域从文件中读出并保存在MyTag1、MyTag2 和MyTag3 中。这些具有连续名称的标记必须先在InTouch 中创建,并可以属于不同的类型(整型,消息等等)。

实例

如果C:\DATA\FILE.CSV 的第一行是:

This is text, 3.1416, 5

则下面的脚本将读出此行,并把“This is text”保存在MyTag1 中,3.1416 保存在MyTag2中,5 保存在MyTag3 中:

BytePosition=FileReadFields ("C:\DATA\FILE.CSV", 0, "MyTag1", 3);

此函数在读出之后返回新的字节位置。你可以在下次读时使用此返回值作为FileOffset 的值。

FileReadFields ("C:\DATA\FILE.CSV",BytePosition,"MyTag1",3);

注意

InTouch 中的消息标记最大可以储存131 个字符。

FileReadMessage() 从指定文件中读出一指定数目的字节(或一整行)。

句法FileReadMessage(Filename,FileOffset,Message_Tag,CharsToRead);

参数描述

Filename 指定要读取的文件。

FileOffset 指定文件中开始读取的位置。

Message_Tag 指定存放从文件中读取的数据的位置。最多可存储131 个字符。CharsToRead 指定从文件内读多少字节。为运行文本文件,CharsToRead 可以被设为0。函数将一直读到文件中的下一个LF(换行),或一直读到131 个字符。

实例

FileWriteMessage ("C:\DATA\FILE.TXT", 0, MsgTag, 0);

文件“C:\DATA\FILE.TXT”的第一行将被读出并保存到MsgTag 中。此函数在读出之后返回新的字节位置。你可以在下次读时使用此返回值作为FileOffset 的值。

FileWriteFields() 写入逗号分离变量(CSV)记录到指定文件。

句法FileWriteFields(Filename,FileOffset,StartTag,NumberOfFields);

参数描述

Filename 指定要写入的文件。若文件不存在,它将被创建。

FileOffset 指定文件中开始写入的位置。若FileOffset 为-1,此函数将写到文件末尾。StartTag 指定一个第一个数据项目的InTouch 标记名的名称。此标记名必须以一个数字结尾(如MyTag1)。此参数必须是一个指示标记名的字符串(而非实际的标记名本身)。所以,若你的标记叫做MyTag 1,你就得提供“MyTag1”或https://www.doczj.com/doc/3b5653118.html,,而非仅仅MyTag1 而已。

NumberOfFields 指定要写的域数目(此文件的每个记录中以逗号分离的域数目)。

说明若StartTag 为“MyTag1”,而NumberOfFields 为3,则有 3 个域被写入文件中(写入的是MyTag1,MyTag2

和MyTag3)。这些具有连续名称的标记必须预先在InTouch 中创建,并可以是不同的类型(整型,消息等等)。

下列脚本将写入行“This is text,3.1416, 5”到C:\DA TA\FILE.CSV 的第一行。“This is text”是当前MyTag1 中的值,3.1416 在MyTag2 中,而5 在MyTag3 中:

FileWriteFields ("C:\DATA\FILE.CSV", 0, "MyTag1", 3);

此函数在写入之后返回新的字节位置。你可以在下次写时使用此返回值作为FileOffset 值。下面的脚本将把文本字符串MyTag1 写到C:\DA TA\FILE.CSV 的结尾:

FileWriteFields ("C:\DATA\FILE.CSV", -1, "MyTag1", 3);

FileWriteMessage() 往指定文件写入一指定数目的字节(或一整行)。

句法FileWriteMessage(Filename,FileOffset,Message_Tag, LineFeed);

参数描述

Filename 指定要写入的文件。若文件不存在,则创建它。

FileOffset 指定在文件内开始写的位置。若FileOffset 为-1,此函数将写到文件末尾。Message_Tag 指定要写到文件中的字符。

LineFeed 指定在写完操作之后是否加一行。当写一个文本文件时,设LineFeed 为1。

说明此函数在写入之后返回新的字节位置。你可以在下次写时使用此返回值作为FileOffset()。

实例

下列指令写入一个叫MsgTag 的消息标记名到C:\DATA\FILE.TXT 文件的结尾:FileWriteMessage ("C:\DATA\FILE.TXT", -1, MsgTag, 1);

.

.Ack 监视和/或控制本地报警的报警确认状态。

监视和/或控制本地报警的报警确认状态。

用法Tagname.Ack=1

参数描述

Tagname 任何离散,整型或实型标记名类型,间接模拟或组变量。

说明设置这个点域值为 1 来确认任何与指定标记名/组有关的未确认的报警。当指定标记名是“组变量”类型或是一个报警组,所有与指定组内标记关联的未确认报警被确认。当指定标记是任何除组变量以外的类型,只有与此标记关联的未确认报警被确认。设置此点域

为1 以外的值将无意义,结果没有定义。

数据类型离散(读/写)

有效值 1

实例

以下语句确认一个与名称为“Tag1”的标记名有关的报警。

Tag1.Ack=1;

下个例子被用来确认所有在名称为PumpStation 的报警组内的没被确认的报警。PumpStation.Ack=1;

一个间接报警组(用组变量)可用来确认报警。如,用如下赋值:

https://www.doczj.com/doc/3b5653118.html, = "PumpStation";

其中,StationAlarms 被定义为组变量类型标记名并与PumpStation 有关。这样下面的语句与上面的例子类似,除非它被用来确认PumpStation 报警组内的没被确认的当前与名称为StationAlarms 的组变量标记有关的报警。

StationAlarms.Ack=1;

注意

Ack 有一个相反的域叫.Unack。当一个未确认报警发生时,.Unack 将被置为1,.Unack 还可用于动画链接或“条件脚本”中为未确认报警触发电铃。

.Alarm 当指定标记名的报警条件存在时等于1。

用法Tagname.Alarm

参数描述

Tagname 任何离散,整型或实型标记名类型,间接模拟或组变量。

说明这个只读点域通常等于0。当指定标记的报警条件存在时它被系统置为1。在报警解除以前,它将一直等于1。如果指定标记是组变量类型或是报警组名称,而且该组中任何一个标记处于报警状态,则.Alarm 域被置为1。.Alarm 有一个相反的点域 .Normal。

数据类型离散(只读)

有效值0 或1(离散)

实例

下面语句检查是否“Tag1”有一个与之相关联的活性报警:

IF (Tag1.Alarm == 1) THEN

如果在名为“PumStation”的报警组中有活性报警,则这个IF-THEN 语句的主体将被执行IF (PumpStation.Alarm == 1) THEN

MyAlarmMessage="The pumping station currently has an ALARM!";

ENDIF;

该点域没有链接到.Ack 或.Unack 点域。所以,即使一个活性报警已被确认,该点域仍然等于1。

.AlarmDevDeadband 监视和/或控制副偏差报警和主偏差报警的偏差百分比死区。

用法Tagname.AlarmDevDeadband

参数描述

Tagname 任何整型,间接模拟标记类型的实数

说明在标记名目录中检查保留参数,将在WindowViewer 中自动保存通过动画或脚本对该域所做的改变。

数据类型模拟(读/写)

有效值0到100(整型)

实例

Intouch非常实用的总结

INTOUCH非常有用的使用总结 intouch授权: 授权文件wwsuite.lic放在C:\Program Files\Common Files\ArchestrA\License。 intouch时间日期设置: intouch系统变量中时间日期是模拟量,不能很好的显示时间和日期,只有两种方式显示 ⑴、单独的时+分+秒显示。 ⑵、调用向导,选择时钟中的组合控件。 DA/IO Server的区别? 两个驱动都可以。详细的以后补充。 其实是IO SERVER好用,IOSERVER的效率比DASERVER好,DASERVER只是为了方便集成到IAS平台,新作的一种IO开发方式。 以太网通讯还是用DAServer,配置很简单,比ioserver好用。 wwclint的作用? 用来测试SMC通讯配置是否正确。需要连接实际的硬件才能进行测试。 用户的配置? 特别-->安全性-->配置用户:依次输入要添加的用户名、口令、访问级别,再点击“添加”按钮就又“申请”了一个用户。 如果“配置用户”选项是灰色的不可用状态,那是因为你还没有以管理员身份登陆,登陆后就可以点击此选项了。将安全类型切换到“Intouch”。 管理员的默认用户名:Administrator 密码:wonderware 。该用户是无法删除的。 打开项目时出现:另一会话正在编辑此应用程序。无法编辑此应用程序。该怎样解决? 文件夹下,删除appedit.lok。 在安装I/O Server的时候,弹出“install of common components could not be started! Please contact wonderwave techsupport !" 想问一下是什么原因,该怎么解决才能完成安装程序? 先安装:F:\软件备份\io servers\FS2K71\IOServer\Common\Win32\setup.exe 如何使用Unity编程软件的仿真器来与Intouch通信?

Intouch非常实用的总结

INTOUCH非常有用的使用汇总报告 intouch授权: 授权文件wwsuite.lic放在C:\Program Files\Common Files\ArchestrA\License。 intouch时间日期设置: intouch系统变量中时间日期是模拟量,不能很好的显示时间和日期,只有两种方式显示 ⑴、单独的时+分+秒显示。 ⑵、调用向导,选择时钟中的组合控件。 DA/IO Server的区别? 两个驱动都可以。详细的以后补充。 其实是IO SERVER好用,IOSERVER的效率比DASERVER好,DASERVER只是为了方便集成到IAS平台,新作的一种IO开发方式。 以太网通讯还是用DAServer,配置很简单,比ioserver好用。 wwclint的作用? 用来测试SMC通讯配置是否正确。需要连接实际的硬件才能进行测试。 用户的配置? 特别-->安全性-->配置用户:依次输入要添加的用户名、口令、访问级别,再点击“添加”按钮就又“申请”了一个用户。 如果“配置用户”选项是灰色的不可用状态,那是因为你还没有以管理员身份登陆,登陆后就可以点击此选项了。将安全类型切换到“Intouch”。 管理员的默认用户名:Administrator 密码:wonderware 。该用户是无法删除的。 打开项目时出现:另一会话正在编辑此应用程序。无法编辑此应用程序。该怎样解决? 文件夹下,删除appedit.lok。 在安装I/O Server的时候,弹出“install of common components could not be started! Please contact wonderwave techsupport !" 想问一下是什么原因,该怎么解决才能完成安装程序? 先安装:F:\软件备份\io servers\FS2K71\IOServer\Common\Win32\setup.exe 如何使用Unity编程软件的仿真器来与Intouch通信? ⑴首先保证Unity编程软件在仿真状态(PLC→仿真模式。) ⑵将程序现在到仿真器,仿真器就会自动启动起来了。

Intouch报表

在InTouch中如何使用excel做报表 在InTouch中有很多做报表的方法,本文介绍在InTouch中如何使用excel 来做报表。 首先在Wonderware InTouch 中使用历史数据导出工具histdata , 将Wonderware InT ouch 生成的历史数据导出到文本文件excel中。然后您可以在excel中通过函数对这些数据进行处理生成您需要的数据,如流量、压力、液位等。再通过intouch提供的DDE协议将excel中的数据在intouch中您制作的那个表格里显示出来。 以下是用histdata将intouch历史数据导出到excel中的一些步骤: 1、在Wonderware InTouch 中配置访问名 2、使用INTOUCH向导,打开向导的“趋势”组。选择histdata向导,粘贴到窗口。

双击给其指定一个“历史趋势”型标记名。 3、使用histdata向导时,会自动创建histdata标记名。进入标记名字典可以 看到一些以HDW开头的io型标记名,如HDWDataDir。 Wonderware InTouch 自动生成需要的标记名,这些标记名说明如下:HDWDATADIR 消息型历史数据文件的目录的路径名 例如HDWDataDir = HTGetLogDirectory(); HDWDBDIR 消息型InTouch 标记名字典的目录的路径名

例如HDWDBDir = InfoInTouchAppDir(); HDWSTARTDATE 消息型与$DateString相同格式的数据采样开始日期HDWSTARTTIME 消息型使用24 小时时钟的HH:MM:SS 格式的数据采样 开始时间 HDWDURATION 消息型数据时间长度(报表时间总长度),可以用星期, 天时,分,秒,等来表示下面是有效的字符:w 星期, d 天,h 小时,m 分,s 秒。允许使用小数值例如.5s 表示500 毫秒,若只需一个样本请将DURATION 设 为0 零 HDWINTERVAL 消息型采样间隔的时间长度,可以用星期日小时分和秒来 表示例如1W 表示一星期允许使用小数值例如用.25d 来表示6小时,有效字符与HDDURATION 相同,注意 DURATION 和INTERVAL 允许的最大时间长度均为6 周,这适用于所有请求类型日、秒等,例如如果使用日 则最大值为42,7 天x 6 周= 42 HDWTAGS 消息型历史数据的标记名列表(报表中需要的标记名),以 TagA,TagB,……TagZ 格式输入,此外采样日期和或时间可 以通过使用内部系统标记名$Date 和$Time 来请求,例如 "$Date,TagA,TagB" 或"$Time,TagA,TagB" 或 "$Date,$Time,TagA,TagB" HDWTAGS1, TAGS2,.... 消息型HDWTAGS 字符串在WindowViewer

INTOUCH上位画面应用

11#高炉上位画面应用 1.如何播放声音报警? 1.打开INTOUCH-WindowMaker,选中查看菜单中的经典视图选项。 2.点击脚本中的条件栏, 3.将报警声音触发条件如图中的test33为1时,写入脚本PlaySound("c:\RedStream.wav",9); 参数9:表示循环播放声音文件。

test33=0,为消除报警声音条件,写入脚本PlaySound("c:\welcome.wav",0);,这里注意播放的声音文件必须是不存在的,就是说上面的路径是无效路径,这是目前最简单的写脚本方式。 2.如何将系统帮助即操作说明嵌入INTOUCH画面中? 1.首先要添加网页浏览器控件 a)打开INTOUCH-WindowMaker,选中查看菜单中的经典视图选项; b)双击工具中的向导/Active安装;

c)选中Active安装按钮,在可用的Active控件中选中Microsoft Web浏览器,点击安装按钮,就可用将该控件放入安装的Active控件栏中了 d)选中向导选择,双击Explorer,拖入系统帮助画面,调整合适的大小;

e)在窗口显示时脚本中,写入如下脚本,同时注意要将操作说明WORD格式转换成 网页形式。 3.如何将INTOUCH中的报警存储到SQL中? a). 首先正确安装好SQL2000个人版; b). 打开INTOUCH-WindowMaker,选中查看菜单中的经典视图选项; c) 双击工具中应用程序; d) 双击Alarm DB Logger Manager e)点击设置按钮

f) 配置服务器名,默认为(local),或者是本台电脑的计算机名,可在下拉菜单中选择, 数据库可以用默认,但是建议用自己的项目名,比如BT11,用户名sa,密码sa(在装安装SQL 时,选择混合模式安装,用户名sa,密码sa,好管理和记忆。然后点击创建,创建完后,点击测试连接按钮,显示连接成功就配置完成,点击下一步,

intouch学习总结

1.intouch和Modsim32一起仿真的设置 2. 注意:在仿真时如果有离散的又有模拟量必须用两个Modsim32来仿真,不然再切换modsim32显示界面的时候会出现通讯异常,一下就是两个仿真器 MODSIM32: connection-------->modbustcpserver启动 File--------------->new Device ID 1 (这个后面要用到) Intouch SMC: 安装DASMBTCP DAserver --------->new_tcpIP_port-----502端口-------->new modbus bridge-----modsim32所在电脑的IP----->new_modiconMicro--------->( PLC unit ID:1 DeVice Group:Topic_0 ) Modsim32在本机127.0.0.1

intouch中访问名的设置: 主题名和DEVICE grops的主题名一致 协议选用SuiteLink DA server 都是SuiteLink是用的OPC通讯DDE是IOserver与intouch的通讯协议 在ArchestraIDe中的设置如下图:

Seevernode:运行DAserver的电脑IP Server name: daserver驱动程序的名称 COmmnication protocol: suiteLink Topic:和SMC中配置的DEvice groupS中的保持一致 Attribute:变量名任取(注意要满足命名规则,方便自动链接IO)TteM reference:变量的地址

Intouch非常实用的总结

I n t o u c h非常实用的总结标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DDQTY-KII

INTOUCH非常有用的使用总结 intouch授权: 授权文件放在C:\Program Files\Common Files\ArchestrA\License。 intouch时间日期设置: intouch系统变量中时间日期是模拟量,不能很好的显示时间和日期,只有两种方式显示 ⑴、单独的时+分+秒显示。 ⑵、调用向导,选择时钟中的组合控件。 DA/IO Server的区别 两个驱动都可以。详细的以后补充。 其实是IO SERVER好用,IOSERVER的效率比DASERVER好,DASERVER只是为了方便集成到IAS平台,新作的一种IO开发方式。 以太网通讯还是用DAServer,配置很简单,比ioserver好用。 wwclint的作用 用来测试SMC通讯配置是否正确。需要连接实际的硬件才能进行测试。 用户的配置 特别-->安全性-->配置用户:依次输入要添加的用户名、口令、访问级别,再点击“添加”按钮就又“申请”了一个用户。 如果“配置用户”选项是灰色的不可用状态,那是因为你还没有以管理员身份登陆,登陆后就可以点击此选项了。将安全类型切换到“Intouch”。 管理员的默认用户名:Administrator 密码:wonderware 。该用户是无法删除的。 打开项目时出现:另一会话正在编辑此应用程序。无法编辑此应用程序。该怎样解决 文件夹下,删除。 在安装I/O Server的时候,弹出“install of common components could not be started! Please contact wonderwave techsupport !" 想问一下是什么原因,该怎么解决才能完成安装程序 先安装:F:\软件备份\io servers\FS2K71\IOServer\Common\Win32\ 如何使用Unity编程软件的仿真器来与Intouch通信

Intouch 使用介绍

下一代工业自动化软件的开发平台 Wonderware ArchestrA?

Wonderware 企业级应用和信息系统的新平台 -- ArchestrA
Wonderware 在过去的 5 年中投入了巨大的人力和资金为工业应用开发这样一个强大的平台(见图一) 。 Wonderware 很早就认识到在一个统一的平台之上创建和运行工业应用程序的重要性。这样的一个新的平 台框架使应用程序的开发者能专著于充分利用他们本行业的专业知识,而不用再底层技术细节上花费过多 的精力。 这个全新的技术叫做:ArchestrA? -- 她不是传统意义上的一个单独的产品,而是一个平台,一套底层服 务。这个新的技术给工业自动化应用的开发者:从系统集成商、OEM、增值销售商到最终用户带来巨大的 好处。
(图一) Wonderware 将工业自动化软件都需要的一些的共同的基本的功能和服务( Services )抽象出来,构成 ArchestrA? 平台。她旨在将用户从复杂的底层技术中解放出来,他们只需要“组合”的技能,而不是“编 程” 技术, 并专注于他们已经熟悉的本行业的专业知识。 这个平台构架在微软操作系统和相关软件 (例如.Net 框架)之上。 ArchestrA? 致力于提供一个可以在各种自动化行业实施的,包含通用底层结构的平台。ArchestrA? 提供如 下一些公共服务: ? 设计和开发环境 Design and development environment ? 部署机制 Deployment Services

? 脚本和计算服务 Powerful scripting and calculation services ? 报警和事件子系统 Alarm and Event subsystem, for management, delivery, printing, and historization services for alarm and events ? 强大的内置的历史纪录和数据传输服务 Powerful built in historization and guaranteed delivery services ? 规模可伸缩性 Built in distributed architecture services for scaleability ? 集成硬件驱动 Integration with and data acquisition from all types of field devices ? 对象间通讯和命名服务 Inter-object communications and name service management services ? 版本管理服务 Version management services ? 安全机制服务 Security Model services ? 集中授权和部署服务 Centralized license management and deployment services ? 集中故障诊断服务 Centralized system diagnostics and system administration services ? 对象和应用服务的国际化 Internationalization of objects and application services ? 界面编辑服务 Graphical/UI editing services, with multiple runtime rendering services ? 报表和查询服务 Reporting and Query services ? 支持 OPC 和 SQL 等工业标准 Common support for industry standards such as OPC and SQL 这个仍然可以扩展的特点列表,预示着在不久的将来工程师们开发工业自动化应用的方式将会发生巨大的 变化!工程师们将用一种全新的,以工厂为中心(Plant-centric ) ,组件化对象化的方式进行系统设计。在 微软 Windows 和 Wonderware 的 ArchestrA? 所构筑的新平台之上, 工程师可以复用在不同的工程中产生的 对象。 Wonderware 的 FactorySuite 已经有多年的历史,此套件已经经历了两代的增强集成,集管理控制、制造执 行、 批管理以及其它功能于一身, 但是 ArchestrA 将把集成度带到一个新的水平。 由 FactorySuite 向 ArchestrA 转变将分两个阶段进行: ? The FactorySuite Scalable Application ? FactorySuite Next Generation (NG) 在第一个阶段中,系统采用一种 “ 混合 ” 策略,引入的新的组件“ Application Server ”就是一个架构在 ArchestrA? 之上的后台服务器,最新的 FactorySuite 的其他组件可以和 Application Server 配合使用,现有 的 FactorySuite 用户不会被抛弃。 在第二个阶段 FactorySuite NG 中,新的 FactorySuite 应用将全部组件化,给用户提供了空前的可扩展性和 灵活性。

intouch for 语句用法

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

INTOUCH IDE 教程

Lab 2 –Backing Up and Restoring a Managed InTouch Application Introduction In this lab, you will check in your application and back up your application to a location on your hard drive. You will then restore your application. It is highly recommended that you periodically backup your InTouch application to an external location. Objectives Upon completion of this lab, you will be able to: Back up the InTouch application Restore the InTouch application

Check the InTouch Application Object into the Galaxy First you will save and check in your InTouch application. 1.Close WindowMaker. A dialog box prompts you to save the window. 2.Click Yes. WindowMaker closes. The Check In dialog box appears.

Intouch 使用总结【东标电气】

Intouch 总结 东标电气孙** 1.Intouch无法连接到SPC Pro引擎,请关闭并重新启动。 如果在上述对话框中选择“以服务器方式启动WindowViewer”,则运行时则会出现问题所描述的提示,因此,在服务器上不勾选第一项;在客户机上则需要勾选第二项。 2.Intouch中的访问名定义

从上往下看,访问名是自行定义的,没有特殊要求,节点名是指服务器的IP地址,应用程序名是指在DAServer中建的程序名,如果是默认新建的,都是DASSIDIRECT,主题名是指在DAServer中建的对应PLC 的设备名,选择SuiteLink协议。如果有备用服务器,则需要勾选“启用辅助数据源”,并设置相应的其他选项,否则不需要勾选。 3.Intouch与PLC的数据类型对应 Intouch与PLC的以太网通讯是借助DAServer软件,在DAServer中每一种PLC类型的数据都有对应的格式,在帮助主题的“Item Naming”中有详细的说明,以下是常用的几种数据类型的说明: 4.变量定义及关联

变量的定义在“标记名字典里”,这里要设置变量名,变量类型(主要是内存和I/O型),变量所属的组(自己定义,仅是为了方便管理),变量的访问名(指出数据来自哪个PLC设备),如果勾选“将标记名用作项目名”,它的意思是在标记名字典里定义的变量和DAServer里定义的变量使用同一个名字,也可以使用不同的名字,但是比较容易混乱。如果需要查看该变量的历史记录,则需要勾选“记录数据”,如果该变量具有报警,则在报警栏里进行相应的设置。

如上图所示,勾选不同的选项以实现对象的功能,用户输入表示该变量为输入变量,值显示表示该变量为输出变量,触动按钮是对按钮对象而言,当点击按钮时希望完成的动作,填充颜色表示矩形、圆形等的背景颜色,文本颜色表示文本按照变量的值改变而改变,位置表示线条、形状、文本等位置的更改,对象大小是改变对象的宽度或者高度,填充百分比是指背景颜色按照百分比变化。 5.Intouch中的报警 如图所示,点击工具栏上的向导按钮,出现以下对话框: 图中显示了几个报警常用的控件,AlarmViewCtrl 是常用的报警控件,AlmDbViewCtrl是可以连接数据库的报警控件,功能较多,历史报警用这个控件,如下图所示:

Intouch的SIDirect DAServer 与S7 PLC通信

如何配置SIDirect DAServer 通过TCP/IP实现和S7 PLC的通信 概要介绍:无需借助西门子的Simaticnet 软件,SIDirect DAS Server 可以通过标准的以太网卡访问S7 200, S7 300,S7 400 家族PLC。SIDirect DAServer可以通过DDE, FastDDE, SuiteLink, OPC协议连接Windows客户端软件,如Wonderware InTouch。 本Tech Note 一步一步详细介绍了如何配置和使用Wonderware SIDirect DA Server 连接/访问S7 PLC(这里,我们以S7-400 PLC 为例),以及如何用DDE/SuiteLink协议访问此DA Server。 在开始之前,请确保已满足以下条件: 1. 仔细阅读并按照SIDirect DAServer的Readme文件及相关文档,来得到SIDirect DAServer所需要的系统需求,正确的安装过程,操作系统等信息。 2.安装SIDirect DAServer,如果已经安装了以前版本的SIDirect DAServer,请使 用的"控制面板"中的"添加/删除程序"卸载,本T ech Note使用SIDirect DAServer 1.1版。 3.安装并配置以太网卡和TCP/IP协议。 4.确认你可以"Ping"通你要连接的 PLC。 注意:请仔细阅读SIDirect DAServer的在线文档关于所支持的硬件和软件部分,SIDirect DAServer只支持TCP/IP通信,不支持MPI,Profibus等其他非以太网方式。 本Tech Note假定用户具有并理解以太网,西门子S7 PLC 硬件/软件,Windows 操作系统,Wonderware FactorySuite组件,WWClinet, SIDirect DAServer的基本知识。 配置SIDirect DAServer 1.选择任何栏上的开始/程序以启动SIDirect DAServer。 2.找到包含“System Management Console” 程序的Wonderware文件夹,并点击启动System Management Console 程序。 3.在ArchestrA System Management Console(SMC)中找到“DAServer Manager”树下的SIDirect DAServer。在Local节点下,DAServer 名字是“ArchestrA.DASSIDirect.1”。见下图1: 图1. SMC中的DASSIDirect DAServer

InTouch软件介绍

InTouch软件介绍 InTouch HMI 为用户提供了今天的HMI 和监控应用所需的能力和通用性。Wonderware 在研究与开发中进行了大量投入,保证为用户提供新型的、强大的、创新的产品。其结果是:各种公司可以把他们的精力集中于业务的运转方面,而工程师可以利用最新的软件技术。InTouch 8.0具有三个不同的版本和多种配置模型,使各种公司能够降低他们的软件购买和维护开支,同时获得更高的投资回报。InTouch 软件为用户提供了一个通用的开发环境和一个灵活的体系结构,使用户可以为任何自动化应用场合建立灵活的应用。 InTouch 软件适合于部署在独立机械中、在分布式的服务器/ 客户机体系结构中、在利用FactorySuite 工业应用服务器的应用中,也可以作为使用终端业务的瘦客户机应用。InTouch 还是实现了微软公司的"支持WindowsXP" 认证的第一个HMI 产品,可以从工作站、个人数字助理(PDA)和浏览器观看显示内容。Wonderware? InTouch? for FactorySuite?为以工厂和操作人员为中心的制造信息系统提供了可视化工具。这些制造信息系统集成了操作人员所必需的各种信息,可以在工厂内部和各工厂之间共享。 InTouch HMI软件用于可视化和控制工业生产过程。它为工程师提供了一种易用的开发环境和广泛的功能,使工程师能够快速地建立、测试和部署强大的连接和传递实时信息的自动化应用。InTouch软件是一个开放的、可扩展的人机界面,为定制应用程序设计提供了灵活性,同时为工业中的各种自动化设备提供了连接能力。 ________________________________________ 特性和优点 访问级口令安全性 Microsoft Windows NT 权限控制 符合FDA 21 CFR FactorySuite A2 工业应用服务器的安全能力 对WINDOWS XP 的支持 功能概述 ________________________________________ 功能和通用性 InTouch HMI 为用户提供了今天的HMI 和监控应用所需的能力和通用性。Wonderware 在研究与开发中进行了大量投入,保证为用户提供新型的、强大的、创新的产品。其结果是:各种公司可以把他们的精力集中于业务的运转方面,而工程师可以利用最新的软件技术。InTouch 8.0具有三个不同的版本和多种配置模型,使各种公司能够降低他们的软件购买和维护开支,同时获得更高的投资回报。InTouch 软件为用户提供了一个通用的开发环境和一个灵活的体系结构,使用户可以为任何自动化应用场合建立灵活的应用。 InTouch 软件适合于部署在独立机械中、在分布式的服务器/ 客户机体系结构中、在利用FactorySuite 工业应用服务器的应用中,也可以作为使用终端业务的瘦客户机应用。InTouch 还是实现了微软公司的"支持WindowsXP" 认证的第一个HMI 产品,可以从工作站、个人数字助理(PDA)和浏览器观看显示内容。 ________________________________________ 保护投资的历史 Wonderware公司是一个面向客户的独立于硬件的行业领袖,您与我们合作,可以为您提供世界范围的应用支持。Wonderware 已经在世界范围内安装了200000多个InTouch HMI。Wonderware 可以把客户在早期InTouch版本上的应用自动地移植到新的InTouch 软件版本

Intouch访问Quantum的方法总结

I n t o u c h访问Q u a n t u m的方 法总结 标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

Intouch访问Quantum的方法总结 实验环境,intouch sp1 + Unity Quantum 67160 本实验涉及到的INTOUCH和MBENET,DASERVER以及OPC SERVER均安装在同一台计算机上。 方法一:MBENET 这是最有效的方法,采用INTOUCH提供的IO SERVER,MBENET,用户可以很方便的访问QUANTUM PLC,以下是具体的步骤: 1.打开MBENET,配置TOPIC NAME, IP ADDRESS等等的信息,见下图;2.打开NTOUCH,进入开发版的画面,建立ACCESS NAME,注意,应用程序 名为MBENET,TOPIC NAME 一定要与第一步的TOPIC NAME相同,ACCESS NAME推荐和TOPIC NAME相同,但是也可以不相同!见下图; 3.在intouch中建立标记名,注意,标记名的ACCESS NAME设置成第2步的ACCESS NAME,ITEM填入6位寄存器地址,注意,INTOUCH不支持QUANTUM 的平面寻址、拓扑寻址和IO DDT寻址。详细信息参见MBENET用户手册。见下图。 方法二:DASMBTCP INTOUCH访问DASERVER,利用DASERVER的DASMBTCP组件轮询PLC硬件,INTOUCH利用DDE/SUITELINK访问DASMBTCP的方法完成对QUANTUM数据的读写;以下是配置的具体步骤; 1.打开INTOUCH 的SYSTEM MANAGEMENT CONSOLE(SMC),找到 ,在CONFIGURATION下依次建立PORT0和TSX QUANTUM对象Quantum0;见下图; 2.在Quantum0中,填写IP ADDRESS,同时增加一个Device Group,起名为test1,

Intouch 使用总结【东标电气】知识分享

I n t o u c h使用总结 【东标电气】

Intouch 总结 东标电气孙** 1.Intouch无法连接到SPC Pro引擎,请关闭并重新启动。 如果在上述对话框中选择“以服务器方式启动WindowViewer”,则运行时则会出现问题所描述的提示,因此,在服务器上不勾选第一项;在客户机上则需要勾选第二项。 2.Intouch中的访问名定义

从上往下看,访问名是自行定义的,没有特殊要求,节点名是指服务器的IP地址,应用程序名是指在DAServer中建的程序名,如果是默认新建的,都是DASSIDIRECT,主题名是指在DAServer中建的对应PLC的设备名,选择SuiteLink协议。如果有备用服务器,则需要勾选“启用辅助数据源”,并设置相应的其他选项,否则不需要勾选。 3.Intouch与PLC的数据类型对应 Intouch与PLC的以太网通讯是借助DAServer软件,在DAServer中每一种PLC类型的数据都有对应的格式,在帮助主题的“Item Naming”中有详细的说明,以下是常用的几种数据类型的说明: 数据具体类 型位 数 范围PLC格式DAServer格 式 DB块BOOL 1 0或1 DB123.dbx0.0 DB123,X0.0 BYTE 8 0~255 DB123.dbb0 DB123,B0 WORD 16 0~65535 DB123.dbw0 DB123,W0

4.变量定义及关联 变量的定义在“标记名字典里”,这里要设置变量名,变量类型(主要是内存和I/O型),变量所属的组(自己定义,仅是为了方便管理),变量的访问名(指出数据来自哪个PLC设备),如果勾选“将标记名用作项目名”,它的意思是在标记名字典里定义的变量和DAServer里定义的变量使用同一个名字,也可以使用不同的名字,但是比较容易混乱。如果需要查看该变量的历史记录,则需要勾选“记录数据”,如果该变量具有报警,则在报警栏里进行相应的设置。

intouch应用与开发

浅谈Intouch 软件包的应用和开发 邱晓荣(煤科总院唐山分院 河北省 063012) 西 鹏(唐山双丰塑胶有限公司 河北省 064000) 摘要 介绍了Intouch 软件包的特点和功能,利用I nto uch 编写应用软件的步骤。关键词 Ino touch 应用软件 实时监控1 概 述 工业控制软件包I nto uch 是最近几年发展起来的一种功能强大、组态灵活、应用范围较广阔的软件。它具有强大的绘图功能,特别适用于现场参数的动态监测;它可以方便地与其他程序进行动态数据交换;它还具有较强的网络功能,可以方便地实现计算机之间的数据通讯。 2 I nto uch 的基本结构及功能特点 一个完整的I nto uch 软件包包括3个部分:软件开发环境W indow M aker,软件运行环境Win-dow V iewer ,运行记录本W onderw arelo ger 。软件开发环境Window M aker 用于制作所需要的应用软件。应用软件是一组特定的文件,运行时由一个可运行文件加以解释,产生所设计的目的。这个可运行文件就是软件运行环境W indo wV iew er 。而Wo nderw arel-oger 用于记录Intouch 应用软件一次运行过程中所发生的一切事件,例如:09∶35∶25时有一超限报警等等。 2.1 I nto uch 应用软件功能 用Int ouch 开发的实时监控应用软件可以实现下列功能: 色彩多样、形态逼真的二维动态效果的实物体和画面。Intouch 具有很强的绘图功能,利用Intouch 绘图工具箱可以方便地绘出工艺流程控制图,并用调色板对所画图进行着色,再把绘制好的图形与预先定义标记过的参数进行“连接”,就可形成色彩多样、形态逼真的动态画面。 具有数据报警功能。这种报警功能包括数据报警、偏差报警和速率报警等多种报警方式。 绘图工具提供的制作实时曲线图、历史趋势图的功能,为实时数据、历史数据的显示、存储、利用提供了在线帮助。用于生成生产报表、查询生产状况等。!多种用户数据输入方式。2.2 I nto uch 应用软件的结构 一个Intouch 应用软件主要由四部分构成: 标记名数据字典:标记(T ag )是Intouch 特有的概念。其含义类似编程语言中的变量。每一个标记具有不同 的类型,其名字和类型由应用设计者在软件设计时定义。应用软件运行时,Intouch 根据每个标记的类型,在内存中分配相应长度的单元存储标记值,标记值可在软件运行时动态更新。I nto uch 常利用标记记录生产过程和软件运行时的状态数据。例如:选煤厂中煤仓的煤位高度、水仓的液面高度都需实时监控和测试。我们可以定义一个标记H 来表示某一水仓的液面高度,在生产过程中随液面高度而实时更新H 的值。 图形界面:Intouch 应用软件运行时的各种显示界面均可在开发环境中绘出。I nt ouch 提供了丰富的绘图功能。另外根据工业控制的特殊需要,还提供了实时、历史数据趋势图,多级报警显示等图形对象。用户可以方便地在自己的显示界面中加入这些应用,而不需专门绘制。 动画连接:将绘制好的图形与预先定义过的参数进行“连接”操作,就给图形赋予了具体的意义。其实质就是通过使目标或图形符号的外形发生变化,以反映标记名数据字典的变量值的变化或使标记名和其他符号的表达式的变化。还拿水仓液位来说,我们根据现场实际情况规定某一范围为安全范围,当实际测量值低于或超过这一范围时,就可产生报警,而且可以用不同的颜色区分是低于还是超过安全范围,另外还可实现文字、声音报警。再利用“逻辑”功能就可控制其他程序的执行,完成设计要求。!逻辑:所谓“逻辑”,实际上指一组用文本编写的逻辑判断和动作执行语句,由In-to uch 在应用软件运行时加以解释,从而让用户建立各动作与“逻辑”的各定制系统函数之间的联系。“逻辑”中提供了很多函数,丰富了它的编辑功能,也为使用其他软件来弥补它自身的不足创造了条件。下面简单介绍其中三个比较重要的函数:Star tapp 、 Sendkey s 、A ct ivateapp 。Startapp 的功能是启动任意一个W indo ws 程序。Sendkey s 的功能是向另一W in-dow s 程序传送一个键击信息,使得在效果上相当于这个程序在前台运行时直接收到用户输入。A ct i-v ateapp 的功能是在同时运行的多个Window s 程序 50 第1期2000年2月 选 煤 技 术COA L P REPA R AT ION T ECHNO LO GY N o.1 Feb.2

Intouch非常实用的总结

INToUCH非常有用的使用总结intouch 授权: 授权文件WWSUite.lic 放在C:\Program Files?Common Files?ArchestrA?License 。 intouch时间日期设置: intouch系统变量中时间日期是模拟量,不能很好的显示时间和日期,只有两种方式显示 ⑴、单独的时+分+秒显示。 ⑵、调用向导,选择时钟中的组合控件。 DA/IO SerVer 的区别? 两个驱动都可以。详细的以后补充。 其实是IO SERVER子用,IOSERVER勺效率比DASERVE好,DASERVE只是为了方便集成到IAS平台, 新作的一种IO开发方式。 以太网通讯还是用DASerVer ,配置很简单,比ioserver 好用。 WWCIint 的作用? 用来测试SMC I讯配置是否正确。需要连接实际的硬件才能进行测试。 DDE, S?tLdk M?A M,A‰4U 用户的配置? 特别--> 安全性--> 配置用户:依次输入要添加的用户名、口令、访问级别,再点击“添加”按钮就又“申请” 了一个用户。 如果“配置用户”选项是灰色的不可用状态,那是因为你还没有以管理员身份登陆,登陆后就可以点击此选项了。将安全类型切换到“IntOUCh ”。 管理员的默认用户名:AdminiStratOr 密码:WOnderWare 。该用户是无法删除的。 打开项目时岀现:另一会话正在编辑此应用程序。无法编辑此应用程序。该怎样解决? 文件夹下,删除appedit.lok 。 在安装I/O SerVer 的时候,弹出“ install Of common components could not be started! PIeaSe COntaCt WOnderWaVe techsupport !" 想问一下是什么原因,该怎么解决才能完成安装程序? 先安装:软件备份\io SerVers\FS2K71\IOServer\Common\Win32\setup.exe 如何使用Unity编程软件的仿真器来与IntOUCh通信?

相关主题
相关文档 最新文档