# 脚本中的变量

### 在脚本使用变量

您可以使用变量执行所需操作。

注：

- OR/AND/XOR/NOT总是返回 32 位无符整型值。
- 当输入值为负时，位移位表达式返回 32 位整型值。
- 当输入值为正数时，位移位表达式返回 32 位无符整型值。

### 在脚本中使用外部变量

在脚本中使用外部变量时，分配给外接设备的设备地址值可能在脚本处理期间发生变化。

在分配操作中使用设备地址可能会导致写入延迟，因为人机界面必须从所连设备中读取地址数据。

注： 在脚本中使用单个触发器多次更改外部变量值时，外部变量值不会立即更新。

要在触发的脚本中使用更新后的外部变量值，请将该值存储到内部变量并在脚本中使用它。或者在使用外部变量值之前用不同的触发器更新外部变量的值。

(示例)

添加以下变量。

[名称] | [数据类型] | [源] | [寄存器地址] | [字节数/字数]
Var1 | [INT] | Schneider Modbus 系列设备 | 400020 | -
Var2 | [INT] | 400021 | -
Var3 | [INT] | 400022 | -

在画面上绘制以下对象。

#### 开关对象 (名称: Switch1)

无特殊配置。

#### 脚本

图例 | 块
1 | [触发条件] ➞ [触摸] ➞ [触摸]
2 | [操作] ➞ [值更改] ➞ [值更改]
3 | [值] ➞ [画面对象]
4 | [逻辑] ➞ [数学]
5 | [值] ➞ [变量]
6 | [值] ➞ [常量]

当按下 Switch1 时，Var1+1 的值被分配给 Var2。但是，由于与设备的通信耗时，Var2 的值没有分配给 Var3。

此时，如下面示例所示，可以对脚本进行编程，使 Var1 的结果先存储到内部变量 Var4，然后再执行它。

添加以下变量。

[名称] | [数据类型] | [源] | [寄存器地址] | [字节数/字数]
Var1 | [INT] | Schneider Modbus 系列设备 | 400020 | -
Var2 | [INT] | 400021 | -
Var3 | [INT] | 400022 | -
Var4 | [INT] | [Internal] | - | -

#### 脚本