跳到主要内容

采集调试与故障定位

先定位发生问题的设备和变量,再检查连接、协议和数值处理。每次只改变一个条件,并记录修改前的配置,便于确认原因和恢复。

进入“开发配置 → 采集配置”,选择设备,打开顶部“协议调试”。有专属“核心状态”页签的插件将“特殊方法”放在其右侧,其他插件直接提供特殊方法和原有操作;方法与协议能力使用同一行导航。通用运行统计在“详细信息”中查看,实时变量、详细信息、通道日志和设备日志均在同一工作区切换。

协议连接和运行摘要使用工作区顶部的“刷新”更新。刷新保留当前协议页签、输入草稿和最近操作结果。

发现结果、订阅关系、通知和其他动态诊断列表支持分页,可切换页码与每页数量。状态自动刷新时保留当前页;记录减少导致当前页超出范围时,自动回到最后有效页。对象浏览等逐页查询的列表只读取所选页。列表分页仅控制查看范围,协议的分批数量、分块大小和报文字节限制仍由设备配置决定。

设备调试工作区显示当前设备身份、插件、通道和运行关系

定位故障层级​

先读懂变量状态​

信息用途
当前值经过读取表达式、小数位等处理后提供给业务的值。
原始值协议读取和类型解释后的源值,用于区分通信错误和表达式错误。
采集时间最近采样时间。固定源值也应结合该时间及源端请求判断任务是否持续执行。
变化时间数值实际变化的时间。长期不变不一定表示采集停止。
在线质量当前采集质量,应与时间和最近错误一起查看。
源错误、业务错误分别帮助定位通信与解析、表达式或业务处理问题。

列设置可按需要显示地址、数据类型、权限、表达式、质量和错误。当前页面筛选和分页决定可见范围,空结果不等于工程内没有该变量。

按层次排查​

检查层次操作方法
配置许可核对通道、设备、变量均已启用,设备插件及关联通道正确。
网络与串口查看连接方向、地址、端口、串口占用、防火墙及 TLS 握手。
协议会话核对站号、协议类型、S7 机架槽号、OPC UA 身份等专有参数。
寄存器与类型使用一个已知可读地址做单点读取,对比功能区、偏移、类型、长度和字节序。
数值与业务原始值正确而当前值异常时,检查读表达式、参数、单位和小数位。
转发与存储采集正常但接收端无数据时,转到数据转发,检查组范围、触发和目标日志。

三类常见故障的区别​

远程地址错误​

设备无法连接时,通道日志通常先出现连接失败,设备日志随后出现读取失败。确认源端仍在正常监听,恢复原远程地址后,观察同一变量的新采样和质量恢复。

地址正确,但源端停止​

先前的正确地址不会保证对端持续运行。检查源端服务、设备供电及独立客户端连通性;源端恢复后,用原配置观察自动重连和新的协议请求。

连接存在,但变量越界​

TCP 连接在线、同设备另一个点正常,而某个地址失败时,优先检查地址区间与协议异常码。恢复该变量的有效地址后,验证其重新在线,并确认未修改其他点位。

例如源端严格提供 16 个保持寄存器,其偏移范围是 0~15:按常见一基地址写法,40001 可读,40033 对应偏移 32,会超出范围。此时用独立客户端读取 40001,可以同时确认源端仍工作,避免把地址拒绝归为断网。实际是否严格拒绝还取决于源端的范围设置。

检查通道日志中的 Connected、Closed 或 dispose 时,应同时查看设备失败与变量源错误;正常关闭记录也可能只是配置保存后的生命周期。多个设备共用通道且同时异常时,先检查共同连接,再分别验证点位。

设备日志中同时显示读取失败与任务、连接生命周期记录

使用调试工具​

使用协议调试​

  1. 在“详细信息”核对设备名称、插件、关联通道和运行状态。
  2. 打开“协议调试”。提供专属状态的插件将“核心状态”放在首位,“特殊方法”紧随其后;随后选择操作、读写或模型浏览页签,使用同一个测试点执行只读检查。尚无运行实例时仍可编辑方法参数,通讯命令在实例可用后执行。
  3. 对比返回值、实际类型和源端显示;失败时查看具体协议消息。
  4. 在“消息”或收发记录中按本次时间窗口核对请求和响应。

调试读取成功证明该次请求成功。正常采集还应检查变量配置、执行周期和持续新采样,不能用一次调试值代替长期运行验证。专用模块见 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在地址中明确字节长度与编码,避免截断多字节字符;字符串长度与数组元素数分别填写。

对比类型时保持同一份源字节,每次只改变一种解释;结束后恢复原地址、类型和读取数量。

验证写入结果​

在确认可写的测试点上操作:

  1. 检查变量读写权限、RPC 写入开关和协议允许写入的地址。
  2. 记录原值,提交与变量类型匹配的新值。
  3. 查看写入返回状态及 RPC 日志。
  4. 等待下一次读取,并使用源端或独立协议客户端核对真实值。
  5. 恢复原测试值,确认业务状态正常。

写入返回成功、页面当前值改变和现场设备已经执行是不同检查点。读取表达式与写入表达式也应配对核对,避免将工程值直接当成原始寄存器值。

日志与恢复确认​

排障时可临时提高到 Debug 或 Trace,只查看当前设备和本次操作后的时间窗口。正常链路在较高日志阈值下没有记录,不代表没有通信。

设备的记录级别决定哪些内容被保存,日志页的查询级别只过滤已有记录。按关键字、时间范围和排序定位一次 Send/Receive,再打开详情核对完整正文。分页、导出范围和日志自动刷新只控制查询,不改变 PLC 的采样周期。

“消息”中的临时捕获需显式开始,清空只清除当前列表,捕获期间仍可继续收到新消息;停止或离开工作区会释放观察会话,不停止设备采集,也不删除持久日志。排障结束后停止捕获并恢复原日志级别。

直接调用设备或转发目标的特殊方法​

无需先建立变量。先编辑被调用设备或目标,在基本配置中开启“允许方法调用”并保存;默认关闭时,调试和规则特殊方法也不能执行。操作合同和其他入口见插件方法调用。测试转发目标时:

  1. 进入“开发配置 → 数据转发”,选择目标并打开其调试工作区,先核对目标名称、插件、所属组和运行实例。
  2. 在调试面板中打开“特殊方法”,刷新目录并选择实际列出的动作。有专属“核心状态”页签时,方法入口位于其右侧。刷新只读取方法清单,不会执行动作。
  3. 阅读方法签名,再用外层 JSON 数组填写参数。例如上传方法的主题是字符串,字节载荷可填写 Base64 字符串或内层字节数字数组,不能把普通正文字符串直接当成字节载荷。
  4. 执行后同时检查接口与方法的业务结果,再在独立接收端核对精确主题和新正文。返回内容为空可以是正常成功结果;仅外层请求成功仍不足以确认方法成功。

采集设备在自己的调试工作区使用相同“特殊方法”模块。执行期间方法选择、参数编辑和目录刷新均禁用,等待原调用完成后再操作;修改参数会清除旧结果。成功附带诊断时会同时显示成功状态和诊断,不应仅因缺少内容就重复下发。

无效 JSON 不应产生一次真实调用。清空调试显示不会撤销已经发出的消息,也不会修改正常转发的组周期和变量路由。

恢复后确认原对象、地址、周期和权限均符合预期;至少观察一段连续的新采样,并恢复测试前的日志级别、源端服务和测试值。完整参数见采集配置,通道超时见通道传输。

排查时如调整过源端容量、监听地址或服务状态,也应恢复原值。保留同一通道、设备和变量,分别核对配置读回与两个连续采样窗口;删除故障对象再创建新点会丢失原有归属,不适合代替原配置恢复检查。