# 块类型

块被分类为：触发条件块、运算块、值块、逻辑块和表达式。您可以从库中拖放这些块以创建脚本。

块用于脚本/全局脚本。

类别 | 脚本 | 全局脚本
触发条件 |  |
操作 |  |
值 |  |
逻辑 |  |
表达式 |  |

#### 限制

- 每个画面、内容和全局脚本最多可有 1000 个动作。

- 每个动作或脚本部分最多可有 1000 个操作。

## 触发条件块

触发条件是一个执行操作的事件。还可以为一个触发条件设置要执行的多个操作。

有关详细信息，请参见触发条件列表。

注：每个脚本只能使用一个触发条件。

块 | 描述
| [When] - 设置触发条件。 [Do] - 添加要运行的操作块。 注： 每个触发条件的块是不同的。 根据触发条件块的不同，按照条件设置值块的内容。

（例1）

每 5 秒运行一次操作。

（例2）

对 Var1 值的更改运行该操作。

## 操作块

操作块用于执行定义的函数。

有关详细信息，请参见操作列表。

块 | 描述
| 将操作设置为运行。 注： 每个操作的块是不同的。 根据操作块的不同，可以组合和运行值块和逻辑块。

（例1）

操作运行时，蜂鸣器发出蜂鸣音。

（例2）

运行操作时，1 被分配给 Var1。

注：

- 在一个操作块中，如果您使用了包含劣质变量的值块或逻辑块，操作的效果如下:

- 如果该变量被用作写入操作的目标，该操作被执行，操作结果为真。

- 如果变量值被用于读取操作，操作将被跳过，操作结果为假。

- 脚本操作依次执行，一次一个。但是，由于以下操作可能需要一些时间才能完成，因此它们可能会被另一个触发操作中断，因此操作会同时运行。

- [导出报警数据]

- [导出日志数据]

- [导出操作日志]

- [数据记录] - [清除记录]

- [配方]

- [安全] - [Export]

- [安全] - [Import]

- [数组]*

- [Azbil]

- [文件管理]

- [远程文件管理]

- [延迟]

- [块趋势] - [Clear And Draw]*

- [块趋势] - [Draw]*

- [设备]

*当只使用本地变量时，操作完成过程中不会被另一个触发操作中断。

- 一般来说，以下操作不能被中断。但是，当这些操作之一与间接指定的数组元素一起使用时，该操作可能会被另一个触发操作中断，因此操作会同时运行。

- [值更改]

- [字符串值更改]

- [将数值型转换为字符串型]

- [将浮点型转换为字符串型]

- [将字符串型转换为数值型/浮点型]

- [获取字符串长度]

- [向左/向右提取字符串]

- [提取中间字符串]

- [搜索字符串]

- [画面更改]

- [内容更改]

- [记录自定义消息]

- [语言更改]

- [文件管理]

- [调试显示]

当有多个触发条件运行相同的操作时，一个操作被另一个触发操作中断可能会改变操作顺序，导致不同的输出。

例如，在下图中，触发条件 2 的操作 2 在触发条件 1 的操作 2 之前运行。触发条件 1 中的操作 2 只有在导出日志完成后才会运行。

## 值块

值块是指指定变量或属性的值。可以读取或覆盖使用值块存储的值。

有关更多详细信息，请参阅值。

注：要在值块中指定属性，请使用句点（.）。例如，要在 NumericDisplay1 中指定文本颜色，请设置"NumericDisplay1.TextColor"。

## 逻辑块

If / If Else 块根据指定的条件执行操作。

下面的逻辑块运行定义的计算或逻辑比较，并输出结果。

- Math
- 比较条件
- 逻辑条件
- Not

有关更多详细信息，请参阅逻辑。

## 表达式

表达式块返回表达式的结果。有关表达式块的更多详细信息，请参阅表达式。

有关表达式转换器的更多详细信息，请参阅表达式。