---
id: 104
title: 变量
---


import useBaseUrl from "@docusaurus/useBaseUrl";
import Tag from "@site/src/components/Tag.js";
import Highlight from '@site/src/components/Highlight.js';

:::tip `配置须知`

 更改设备/变量/插件等，需要重启后台(右上角重启后台按钮)

:::

## 一、说明

**ThingsGateway** 网关变量对应每个寄存器点位

## 二、添加变量/修改变量

### 变量基础属性配置项

<img src={require("@site/static/img/docs/添加变量.png").default} />

|属性名称| 属性描述| 备注|
|-----------|--------------|-----------------|
|名称| 当前变量名称，全局唯一(变量)| |
|描述| 当前变量描述 ||
|单位| 变量值单位 ||
|读写权限| 读写/只写/只读 ||
|使能| 启用/停用变量 ||
|远程写入| 对于变量的写入使能配置 ||
|设备| 当前采集设备选择的设备，通过级联选择器选择对应设备名称设置 ||
|变量地址| PLC寄存器/OPC ITEMID等 |对于不同插件的设备,变量地址配置不相同,查看对应的插件说明|
|执行间隔| 读取时间间隔/执行特殊方法读取的间隔 ||
|特殊方法| 某些插件特有的方法 |对于不同的插件,特殊方法配置不相同,查看对应的插件说明|
|数据类型| 对应的数据类型 |注意除了特殊驱动，一般不应该选择object|
|读取表达式| 动态解析的表达式 ,原始值的代码为raw|示例：``raw.ToInt()*10+3`` 结果：原始值raw为8,输出实时值83 。|
|写入表达式| 动态解析的表达式，在写入值时转化,原始值的代码为raw|示例：``raw.ToInt()/10`` 结果：写入值为230时，会下发23到PLC 。|
|备用字段| 存储自定义信息 |



:::tip `变量地址通用说明`

通用格式，不区分大小写

4字节转换格式

DATA=ABCD;

举例：

DATA=ABCD; ，代表大端格式，其中

ABCD=>Big-Endian;

BADC=>Big-Endian Byte Swap;

CDAB=>Little-Endian Byte Swap;

DCBA=>Little-Endian

字符串长度：

LEN=1;

BCD格式：

BCD=C8421;，其中有C8421;C5421;C2421;C3;Gray

字符格式：

encoding=UTF8;，其中有UTF8;ASCII;Default;Unicode

数组长度：

arraylen=2;

:::


### 报警属性配置项

<img src={require("@site/static/img/docs/添加变量1.png").default} />

:::tip `说明`

报警属性中定义变量产生报警的规则所需的配置

:::

|属性名称| 属性描述| 备注|
|-----------|--------------|-----------------|
|报警使能| 启用对应报警功能| |
|报警限值| 超限时产生报警，布尔量为固定 ||
|报警文本| 对应显示的报警文本 ||
|报警约束| 动态解析的表达式 ,原始值的代码为raw，计算值为true时才能产生报警 ||

:::tip `例子`

数值高高报警

变量值大于报警限值，并且报警约束为true或者报警约束不存在时，产生报警

比如设置高高限值为1，其他默认，当变量值大于1时，产生报警

:::


### 业务属性配置项
<img src={require("@site/static/img/docs/添加变量2.png").default} />

:::tip `说明`

上传属性中定义变量关联的上传设备所需的配置

对于不同的插件，插件属性项也不相同，查看对应插件章节中的详细说明。

:::


