外部变量
在 SIOT 工业数据交互体系中,外部变量是打通 “上位系统(CMS)-PLC - 现场设备” 数据链路的关键枢纽,也是实现智能化监控与控制的基础单元。通过以下内容快速理解并应用外部变量。
一、认识外部变量
什么是外部变量
外部变量是CMS 与 PLC 之间双向、动态数据交换的专属桥梁,具备 “读现场数据” 和 “写控制指令” 两大核心能力:
- 「读」:从 PLC 存储器中实时抓取现场设备数据(如电机电流、传感器温度、传送带速度),同步至 CMS 界面展示;
- 「写」:将 CMS 端配置的控制参数(如温度阈值、生产节拍、阀门开度)写入 PLC 存储器,直接调控现场设备运行状态。
关键概念对比
通过以下对比快速区分核心差异:
| 对比维度 | 外部变量 | 内部变量 | 通信连接 |
|---|---|---|---|
| 数据来源 | 与 PLC 直接交互,数据来自现场设备 | 仅 CMS 内部生成,无现场设备依赖 | 连接 CMS 与 PLC 的 “数据传输通道” |
| 数据特性 | 双向实时同步(读 / 写),随现场动态变化 | 单向内部流转(仅 CMS 可用),可联动外部变量 | 通道级稳定传输,支撑外部变量数据交互 |
| 应用场景 | 设备监控、参数下发、报警联动等 | 内部逻辑运算、界面辅助显示(如统计值) | 为单个 PLC 提供 1 条专属数据链路 |
| 授权限制 | 计入 “变量数” 授权,数量有限制 | 无数量限制,可无限创建 | 计入 “连接数” 授权,1 个 PLC 需 1 个连接 |
| 配置依赖 | 需在PLC通道下创建,配置访问名称或地址 | 仅需在 CMS 内定义变量类型 / 初始值 | 需配置 PLC 型号、IP 地址、通信协议 |
二、应用场景
以下是一些外部变量的常见应用场景:
- 传感器数据采集:外部变量用于接收传感器(如温度传感器、压力传感器、流量传感器等)采集到的实时数据。这些数据可以用于监控工业过程中的环境变量和设备状态。
- 执行器控制:外部变量用于发送控制信号给执行器(如电动阀门、电动马达等),以控制工业过程中的各种操作,如打开/关闭阀门、启动/停止电动设备等。
- 报警和故障监测:通过与传感器和设备连接,外部变量可以实时监测设备的状态和运行情况。一旦检测到异常或故障,系统可以通过外部变量触发报警和故障通知。
- 生产计数和数据记录:外部变量用于记录生产过程中的计数信息,如产品数量、产量等。这些数据可以用于生产效率分析和报告。
- 安全控制:外部变量可用于监测安全设备,如安全传感器、紧急停止按钮等。当安全事件发生时,外部变量可以触发紧急停止或其他安全控制措施。
- 逻辑控制:外部变量与逻辑控制器(如PLC)结合使用,实现自动化控制和逻辑判断。根据外部变量的状态,控制器可以执行特定的逻辑操作。
- 设备状态监测与维护:外部变量用于监测设备的状态,例如设备的工作时间、运行状态等。这些数据可用于设备维护和预防性维修。
三、配置步骤
第一步:创建外部通道
目的:建立 SIOT 与 PLC 的通信链路,是变量配置的前提
操作步骤:
-
进入【外部通道】页签,在变量通道功能区点击「添加设备」;
-
选择「外部设备」→ 选中「Modbus_TCP」协议;
-
输入「通道名称」(如 “车间 A - 包装机 - PLC”,便于识别);
-
配置通信参数(重点填必填项,与 PLC 保持一致),点击「确认」,通道创建完成。


| 配置类型 | 配置项 | 填写要求 / 说明 | 必填 / 选填 |
|---|---|---|---|
| 基础配置 | 设备 IP | 输入 PLC 实际 IP(如 192.168.1.100),需与 SIOT 在同一网段 | 必填 |
| 设备 ID | 与 PLC 配置一致(默认 1,可修改) | 必填 | |
| 端口号 | 默认 502,与 PLC 端口保持一致 | 必填 | |
| 首地址 | 默认 1,支持下拉选 0(按 PLC 地址规则选择) | 选填 | |
| 超时时间 | 默认 3 秒,网络不稳定可设 5-10 秒 | 选填 | |
| 高级配置 | 字节顺序(各类型) | 默认 2143,无需修改;特殊场景按 PLC 数据存储格式调整(下拉选择即可) | 选填 |
| 独立链路 | 默认禁用;多设备并发通信时可启用 | 选填 | |
| PDU 长度 / 诊断 / 立即提交 | 默认 220 / 启用 / 禁用,无需修改;追求响应速度可启用 “PDU 立即提交”(轻微损耗性能) | 选填 | |
| 静态仿真 | 默认禁用(需真实通信必关);测试配置时可启用(无需连接设备) | 选填 |
第二步:创建变量组
目的:按功能分类变量(如 “温度类”“压力类”),方便后期维护
操作步骤:
- 选中第一步创建的通道(如 “车间 A - 包装机 - PLC”);
- 点击通道节点的「添加变量组」按钮;
- 输入变量组名称(如 “运行参数组”),点击「确认」即可。

第三步:创建外部变量
支持两种创建方式,按需选择:
方式 1:手动创建(通用方式,所有场景适用)
-
选中目标变量组(或直接在通道下),点击「新增变量」;
-
变量列表新增一条记录,按以下要求配置属性(重点填必填项):

| 属性项 | 填写要求 / 说明 | 必填 / 选填 |
|---|---|---|
| 变量名 | 中文 / 字母 / 数字 / 下划线 / 点,以字母 / 下划线开头(全局唯一,区分大小写) | 必填 |
| 变量描述 | 简要说明变量含义(如 “包装机封口压力”) | 选填 |
| 变量组 | 下拉调整所属分组(默认当前组,可跨组移动) | 选填 |
| 数据类型 | 下拉选择(参考下表,需与 PLC 数据类型一致) | 必填 |
| 变量地址 | 按寄存器类型填写(参考下表,支持地址配置弹窗辅助填写) | 必填 |
| 读写访问 | 默认 “读写”,下拉选 “只读”(如传感器数据)或 “只写”(如控制指令) | 必填 |
| 采集间隔 | 默认 100ms,下拉选择(高频监控选 100ms-1s,低频选 5-30s) | 必填 |
| 采集模式 | 服务运行(持续采集)/ 页面使用(仅页面引用时采集,省资源) | 必填 |
| 字符长度 | 仅 “字符串” 类型必填,输入字符最大长度(如 20) | 选填 |
| 缩放比 | 显示值 = 实际值 × 缩放比(如实际值 10 ,缩放比 10→显示 100) | 选填 |
| 小数位数 | 设定数值精度(如 2 位小数),不填则保留原始精度 | 选填 |
关键补充:数据类型与变量地址对应表
| 数据类型(Modbus_TCP) | 支持的寄存器类型 | 地址示例 |
|---|---|---|
| 二进制变量 | 线圈状态(读写)/ 离散输入(只读) | 线圈:000001;离散输入:100001 |
| 8/16/32/64 位整型(有 / 无符号) | 输入寄存器(只读)/ 保持寄存器(读写) | 保持寄存器:400001;输入寄存器:300001 |
| F32/F64 位浮点数 | 输入寄存器 / 保持寄存器 | 400003(32 位占 2 个寄存器) |
| 字符串 | 保持寄存器 | 400005(按字符长度分配寄存器) |
方式 2:加载标签(部分协议支持,快速导入)
- 点击「加载标签」按钮(仅支持 OPCUA、S7Comm_Plus 等协议);
- 访问 PLC 服务器变量列表,直接勾选需要的变量,点击「添加」即可(无需手动填地址和数据类型)。

第四步:配置检查
目的:校验地址重叠、PDU 长度超限等问题,确保通信正常
操作步骤:
- 变量配置完成后,点 击「保存并优化」;
- 系统自动校验两种常见问题:
- 地址重叠:不同变量地址冲突(如 A 变量占 400001-400002,B 变量也填 400001);
- PDU 长度超限:变量所需寄存器长度超过通道配置的 PDU 长度;
- 查看界面提示:
- 红色提示:必须修改(否则通信失败);
- 黄色提示:可选忽略(不影响基础通信);
- 修改完成或忽略后,点击「清除优化提示」即可。



第五步:调试验证
目的:测试变量读写是否正常,排查问题
操作步骤:
-
点击「启动调试」;
-
查看调试面板关键信息(实时更新):
调试项 说明与操作 当前值 实时显示设备数据;写变量可直接输入目标值,点击「下发」测试控制效果 质量戳 0 = 成功,3 = 设备断开,2 = 数据类型不匹配(按提示排查,如质量戳 3→检查 PLC 连接) 最新变化时间 变量值更新的时间(确认数据是否实时同步) 采集状态 true = 正在采集,false = 停止采集(需启用采集模式为 “服务运行”) -
调试通过:变量正常读写,可退出调试;
-
调试失败:按质量戳提示排查(如设备断开→检查 IP 和端口,数据类型不匹配→修正变量数据类型)。