采集调试与故障定位
先定位发生问题的设备和变量,再检查连接、协议和数值处理。每次只改变一个条件,并记录修改前的配置,便于确认原因和恢复。
进入“开发配置 → 采集配置”,选择设备,打开顶部“协议调试”。有专属“核心状态”页签的插件将“特殊方法”放在其右侧,其他插件直接提供特殊方法和原有操作;方法与协议能力使用同一行导航。通用运行统计在“详细信息”中查看,实时变量、详细信息、通道日志和设备日志均在同一工作区切换。
协议连接和运行摘要使用工作区顶部的“刷新”更新。刷新保留当前协议页签、输入草稿和最近操作结果。
发现结果、订阅关系、通知和其他动态诊断列表支持分页,可切换页码与每页数量。状态自动刷新时保留当前页;记录减少导致当前页超出范围时,自动回到最后有效页。对象浏览等逐页查询的列表只读取所选页。列表分页仅控制查看范围,协议的分批数量、分块大小和报文字节限制仍由设备配置决定。
定位故障层级
先读懂变量状态
| 信息 | 用途 |
|---|---|
| 当前值 | 经过读取表达式、小数位等处理后提供给业务的值。 |
| 原始值 | 协议读取和类型解释后的源值,用于区分通信错误和表达式错误。 |
| 采集时间 | 最近采样时间。固定源值也应结合该时间及源端请求判断任务是否持续执行。 |
| 变化时间 | 数值实际变化的时间。长期不变不一定表示采集停止。 |
| 在线质量 | 当前采集质量,应与时间和最近错误一起查看。 |
| 源错误、业务错误 | 分别帮助定位通信与解析、表达式或业务处理问题。 |
列设置可按需要显示地址、数据类型、权限、表达式、质量和错误。当前页面筛选和分页决定可见范围,空结果不等于工程内没有该变量。
按层次排查
| 检查层次 | 操作方法 |
|---|---|
| 配置许可 | 核对通道、设备、变量均已启用,设备插件及关联通道正确。 |
| 网络与串口 | 查看连接方向、地址、端口、串口占用、防火墙及 TLS 握手。 |
| 协议会话 | 核对站号、协议类型、S7 机架槽号、OPC UA 身份等专有参数。 |
| 寄存器与类型 | 使用一个已知可读地址做单点读取,对比功能区、偏移、类型、长度和字节序。 |
| 数值与业务 | 原始值正确而当前值异常时,检查读表达式、参数、单位和小数位。 |
| 转发与存储 | 采集正常但接收端无数据时,转到数据转发,检查组范围、触发和目标日志。 |
三类常见故障的区别
远程地址错误
设备无法连接时,通道日志通常先出现连接失败,设备日志随后出现读取失败。确认源端仍在正常监听,恢复原远程地址后,观察同一变量的新采样和质量恢复。
地址正确,但源端停止
先前的正确地址不会保证对端持续运行。检查源端服务、设备供电及独立客户端连通性;源端恢复后,用原配置观察自动重连和新的协议请求。
连接存在,但变量越界
TCP 连接在线、同设备另一个点正常,而某个地址失败时,优先检查地址区间与协议异常码。恢复该变量的有效地址后,验证其重新在线,并确认未修改其他点位。
例如源端严格提供 16 个保持寄存器,其偏移范围是 0~15:按常见一基地址写法,40001 可读,40033 对应偏移 32,会超出范围。此时用独立客户端读取 40001,可以同时确认源端仍工作,避免把地址拒绝归为断网。实际是否严格拒绝还取决于源端的范围设置。
检查通道日志中的 Connected、Closed 或 dispose 时,应同时查看设备失败与变量源错误;正常关闭记录也可能只是配置保存后的生命周期。多个设备共用通道且同时异常时,先检查共同连接,再分别验证点位。
使用调试工具
使用协议调试
- 在“详细信息”核对设备名称、插件、关联通道和运行状态。
- 打开“协议调试”。提供专属状态的插件将“核心状态”放在首位,“特殊方法”紧随其后;随后选择操作、读写或模型浏览页签,使用同一个测试点执行只读检查。尚无运行实例时仍可编辑方法参数,通讯命令在实例可用后执行。
- 对比返回值、实际类型和源端显示;失败时查看具体协议消息。
- 在“消息”或收发记录中按本次时间窗口核对请求和响应。
调试读取成功证明该次请求成功。正常采集还应检查变量配置、执行周期和持续新采样,不能用一次调试值代替长期运行验证。专用模块见 Modbus、S7、OPC UA 和自定义完整报文。
读懂运行状态
先核对名称、插件、对象身份、设备状态、所属通道或转发组、冗余角色,再比较同一实例的连续快照。没有冗余配置时角色为空属于正常情况。
| 运行信息 | 判断方法 |
|---|---|
| 实例类型、启动与初始化 | 说明驱动是否装载并开始运行,不能代替点位读取质量。 |
| 累计成功、累计失败 | 观察同一实例的计数是否推进。重建实例可能重置计数,应同时记录身份和时间。 |
| 每秒最大计数 | 是当前统计口径的峰值,不代表所有变量都按该速度更新。 |
| 最后活动、最近成功、最近失败时间 | 分别反映活动、成功和失败,可为空或不同;不能用浏览器刷新时间代替。 |
| 累计发送、接收字节 | 包含协议头等传输开销,不能直接除以变量数推算业务吞吐。 |
| 最近耗时 | 单位毫秒,是最近一次操作耗时,不是平均延迟。未提供统计时不要将空值解释成零。 |
单点、数组和批量
单点模式填写起始地址、类型和读取数量。数量 1 表示一个元素,数量 3 表示从同一起点读取三个连续元素;它与采集变量数组长度 0 表示标量的填写方式不同。
批量模式每行一个地址,会去空白及重复项,一次最多 100 个不同地址;类型和读取数量应用于每项。这是调试请求的上限,与持续采集的打包长度不同。批量写入使用地址到值的 JSON 对象,例如:
{"40011":80,"40012":5}
先检查确认框的对象与数量;取消不发送写入。提交后逐行查看成功、值和错误,一行成功不能代替整批成功。清空操作历史只清除当前显示,不恢复已写入的现场值。
类型、占用与精度
| 类型 | 调试时核对 |
|---|---|
| Boolean、Byte | 位地址与字节地址分别处理。Modbus 一个寄存器有两个字节,Byte 读取不能仅凭后缀推断高低字节。 |
| Int16、UInt16 | 占 2 字节,同一组字节按有符号或无符号解释会得到不同值。 |
| Int32、UInt32、Float | 占 4 字节;浮点编码不是把整数简单乘除比例。 |
| Int64、UInt64、Double | 占 8 字节。大整数还需核对原始接口及消费端精度,科学计数或近似值不能作为精确累计量。 |
| Decimal | 占 16 字节,源布局须与转换器一致,不是所有 PLC 的通用十进制格式。 |
| String | 在地址中明确字节长度与编码,避免截断多字节字符;字符串长度与数组元素数分别填写。 |
对比类型时保持同一份源字节,每次只改变一种解释;结束后恢复原地址、类型和读取数量。
验证写入结果
在确认可写的测试点上操作:
- 检查变量读写权限、RPC 写入开关和协议允许写入的地址。
- 记录原值,提交与变量类型匹配的新值。
- 查看写入返回状态及 RPC 日志。
- 等待下一次读取,并使用源端或独立协议客户端核对真实值。
- 恢复原测试值,确认业务状态正常。
写入返回成功、页面当前值改变和现场设备已经执行是不同检查点。读取表达式与写入表达式也应配对核对,避免将工程值直接当成原始寄存器值。
日志与恢复确认
排障时可临时提高到 Debug 或 Trace,只查看当前设备和本次操作后的时间窗口。正常链路在较高日志阈值下没有记录,不代表没有通信。
设备的记录级别决定哪些内容被保存,日志页的查询级别只过滤已有记录。按关键字、时间范围和排序定位一次 Send/Receive,再打开详情核对完整正文。分页、导出范围和日志自动刷新只控制查询,不改变 PLC 的采样周期。
“消息”中的临时捕获需显式开始,清空只清除当前列表,捕获期间仍可继续收到新消息;停止或离开工作区会释放观察会话,不停止设备采集,也不删除持久日志。排障结束后停止捕获并恢复原日志级别。
直接调用设备或转发目标的特殊方法
无需先建立变量。先编辑被调用设备或目标,在基本配置中开启“允许方法调用”并保存;默认关闭时,调试和规则特殊方法也不能执行。操作合同和其他入口见插件方法调用。测试转发目标时:
- 进入“开发配置 → 数据转发”,选择目标并打开其调试工作区,先核对目标名称、插件、所属组和运行实例。
- 在调试面板中打开“特殊方法”,刷新目录并选择实际列出的动作。有专属“核心状态”页签时,方法入口位于其右侧。刷新只读取方法清单,不会执行动作。
- 阅读方法签名,再用外层 JSON 数组填写参数。例如上传方法的主题是字符串,字节载荷可填写 Base64 字符串或内层字节数字数组,不能把普通正文字符串直接当成字节载荷。
- 执行后同时检查接口与方法的业务结果,再在独立接收端核对精确主题和新正文。返回内容为空可以是正常成功结果;仅外层请求成功仍不足以确认方法成功。
采集设备在自己的调试工作区使用相同“特殊方法”模块。执行期间方法选择、参数编辑和目录刷新均禁用,等待原调用完成后再操作;修改参数会清除旧结果。成功附带诊断时会同时显示成功状态和诊断,不应仅因缺少内容就重复下发。
无效 JSON 不应产生一次真实调用。清空调试显示不会撤销已经发出的消息,也不会修改正常转发的组周期和变量路由。
恢复后确认原对象、地址、周期和权限均符合预期;至少观察一段连续的新采样,并恢复测试前的日志级别、源端服务和测试值。完整参数见采集配置,通道超时见通道传输。
排查时如调整过源端容量、监听地址或服务状态,也应恢复原值。保留同一通道、设备和变量,分别核对配置读回与两个连续采样窗口;删除故障对象再创建新点会丢失原有归属,不适合代替原配置恢复检查。

