# 脚本的文本模式

## 关于文本模式

使用文本模式，可以设置与块模式脚本相同的脚本。文本模式脚本同样支持块模式脚本中屏幕编辑软件支持的任何操作，诸如数学操作 (正弦、余弦等)、逻辑操作 (&&、|| 等) 和比较操作 (==、!= 等)。不支持 [工具箱] 中未列出的脚本。

### 脚本编辑器

在文本模式下，脚本编辑器将脚本分为若干部分，每个脚本部分有一个触发条件和一个或多个操作。

触发条件，诸如触摸、定期/时间表和条件性的，采取函数的形式。如果一个触发条件需要参数，请将它们作为函数参数传递。

操作采用语句的形式，用分号 (;) 来结束语句。

文本模式的格式如以下示例所示。

- 'onClick’ 为点击触发的触发处理程序。
- 第一个参数 '$GraphicObject’ 是触发的源。
- 第二个参数 '$Math.max(EXPRESSION1, EXPRESSION2);’ 是触发所执行的操作集。这些操作由箭头 '=>’ 标识。

#### 对象和变量

添加一个关键字来识别被引用的对象或变量。用 '$’ 符号作为关键字的前缀。(请参阅下表。)

模块标识符

关键字 | 描述 | 示例
$Alarm | 访问报警属性。 | $Alarm.AlarmGroup1.Var1_HiHi.Message
$AlarmGroup | 访问报警组属性。 | $AlarmGroup.AlarmGroup1.CurrentActiveCount
$AllAlarm | 访问全部报警属性。 | $AllAlarm.MaxRecord
$SystemErrorGroup | 确定系统错误组。 |
$OperationLog | 访问操作日志属性。 | $OperationLog.ExportData.FolderName
$RecipeControl | 访问配方控制属性。 | $RecipeControl.RecipeControl1.RecipeID
$Ingredient | 访问成分属性。 | $Ingredient.RecipeFamily1.RecipeGroup1.Ingredient1.Value
$Local | 访问本地变量属性。 | $Local.Var1.Value
$GraphicObject | 访问图形对象属性。 | $GraphicObject.NumericDisplay1.CurrentValue
$Screen | 访问画面属性，或访问特定画面上某一项目的属性。使用这个标识符可以避免任何潜在的画面/内容和对象的命名冲突。 | $Screen.Screen1
$Device | 访问驱动程序或设备属性。 | $Device.Driver1.Equipment1.OnScanMode
$Target | 访问目标属性。 | $Target.Preferences.ColorSetID
$Math | 访问数学运算。 | $Math.abs(-100)
$Enums | 访问可用脚本指定的操作和值，如文件操作和数据格式。 | $Enums.FileOperation.CopyPaste $Enums.DataFormat.Float

通过引用脚本中的对象和变量，您可以使用对象或变量属性。例如，'Var1.Quality', '$GraphicObject.Ellipse1.Thickness'。

当在脚本中输入图形对象、变量、报警组、用户组、日志组或配方的名称时，该名称会被高亮显示。

#### 改变脚本模式

在脚本编辑器中，您可以使用 [块] 模式或 [文本] 模式。您不能同时在两种模式下编辑脚本。

默认为 [块] 模式。

要改变脚本模式，请转到 [工程] ➞ [设置]， 然后在 [属性] 窗口 ➞ [基本] ➞ [脚本] ➞ [脚本模式] 中选择 [块] 或 [文本]。

注： 如果有任何无效脚本，您就不能改变脚本模式。但是，即使有数据错误，您也可以改变脚本模式。

## 在文本模式下使用脚本

### 添加功能

在文本模式下处理脚本时，工具箱会列出触发条件、操作、逻辑和表达式。双击一个触发条件，将在脚本编辑器中创建一个新的脚本部分，其中包含所选触发条件的默认代码。

您也可以使用以下方法添加函数。
您可以从工具栏上添加一个触发条件。

- 要在文本模式下编辑一个全新的空白脚本，可从工具栏中添加 [空白] 或使用键盘快捷键 Ctrl+Shift+N。

- 要创建一个由画面上对象触发的脚本，打开画面，选择对象，[事件] 窗口会列出该对象的可用触发条件。点击 [+]，在新的脚本部分添加相关的触发条件。

### 添加源和目标

- 在文本模式下，脚本编辑器配备了智能提示功能。当在脚本编辑器中输入时，可用的匹配选项就会弹出，无论是脚本关键字、对象名称，还是函数名称。选择所需的项目来插入关键字、对象名称或函数。
  在输入对象名称和句号 (.) 后，会弹出可用的对象属性。选择所需的属性插入脚本中。

- 在文本模式下，您也可以即时创建局部和全局变量。在脚本中不能创建其他对象。

1. 当脚本中使用了一个未定义的变量时，将鼠标指针悬停在该变量上。

   注： 当创建一个本地变量时，为变量名称添加前缀 "$Local"。

2. 点击 图标，从弹出的菜单中选择 [创建变量] 或 [创建本地变量]。

3. 从子菜单中选择变量数据类型来创建指定的变量。

### 工具箱

- 在工具箱中，点击 </> 可以看到相关脚本的语法。

### 注释

在文本模式下，您可以使用双斜杠 "//" 给脚本添加注释，您也可以在 "/*" 和 "*/" 之间添加多行注释。您可以在语句的末尾或单独的行中添加注释。

注：

- 当将 [脚本模式] 从 [块] 改为 [文本] 模式时，注释块被转换为 "//" 注释。

- 当将 [脚本模式] 从 [文本] 改为 [块] 模式时:

- 触发条件级别的 "//" 和 "/*" "*/" 注释被转换为注释块。

- 其他 "//" 语句或位于触发条件级别之外的 "/*" "*/" 将不被转换，因为块模式只支持触发条件中的 [注释] 块。

### 查找和替换

- 查找: 使用键盘快捷键 Ctrl+F 在文本模式脚本编辑器的右上方显示查找控件。在该字段中，输入要搜索的文本。点击 向下或 向上箭头，找到下一个或上一个匹配。选择 或 图标来查找大小写匹配或全字匹配。

- 替换: 使用键盘快捷键 Ctrl+H 在文本模式脚本编辑器的右上方显示查找和替换控件。在字段中，输入要搜索的文本和替换文本。点击 向下或 向上箭头，找到下一个或上一个匹配。选择 或 图标来查找大小写匹配或全字匹配。点击 替换图标，替换当前的匹配。点击 全部替换图标，替换所有匹配的文本实例。

下表列出了查找和替换操作的快捷键。

快捷方式图标 | 快捷键 | 描述
– | Ctrl+F | 查找
– | Ctrl+H | 查找和替换
| F3 | 查找下一个
| Shift+F3 | 查找前一个
| Alt+R | 替换
| Alt+A | 替换所有
| Alt+C | 大小写匹配
| Alt+W | 全字匹配

通过输入快捷键或点击 [查找] 字段左侧的 上或 下图标，您可以在查找和替换之间进行切换。

## 限制

#### 脚本模式

- 如果有任何无效脚本，您就不能改变脚本模式 (块模式到文本模式，或文本模式到块模式)。但是，数据错误不会妨碍您改变脚本模式。

- 块模式脚本只支持在触发条件块的注释块中进行注释。因此，在文本模式下，当将 [脚本模式] 改为 [块] 模式时，添加到触发条件以外任何脚本区域的注释都不会被保存。

#### 名称

- 如果一个对象在工程中被删除或重命名，脚本中对该对象的引用会出现未定义错误。