360 Secure SkillHub
360 安全技能中心

Modbus Tap

通过 ot-aiops MCP 服务器只读读取 Modbus-TCP PLC 的保持/输入寄存器(FC03/FC04)与线圈/离散输入(FC01/FC02),支持 uint16/int16/uint32/int32/float32 解码提示,并可依据 warn/alarm 阈值输出健康摘要。写入功能未实现,仅经模拟客户端验证,未在真实 PLC 上验证。

zw008
zw008
热度 16.02
最近更新 2026-06-28 14:48:24
分类:数据依赖:MCP 服务 / 第三方 API应用场景:数据处理 / 报告撰写

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add modbus-tap
Metadata
name
modbus-tap
description
Read Modbus-TCP PLCs — holding/input registers (FC03/FC04) and coils/discrete inputs (FC01/FC02) with decode hints (uint16/int16/uint32/int32/float32), plus a warn/alarm threshold health summary. Covers many domestic 国产 controllers (汇川/信捷/和利时/台达) and any vendor speaking Modbus-TCP. Use when the task names Modbus, a register/coil address, or unit/slave id. Routes to the ot-aiops MCP server. Read-only. For OPC-UA/S7/Mitsubishi/MTConnect/MQTT use the sibling *-tap skills; not for IT/network gear, Kubernetes, hypervisors, or backups.

modbus-tap

Read-only Modbus-TCP telemetry via the ot-aiops MCP server. Preview — validated against a mocked pymodbus client, NOT live PLCs.

When to use

  • A PLC speaking Modbus-TCP (host:502, unit_id), incl. domestic 国产 PLCs.
  • Read registers/coils; classify registers against thresholds.

When NOT to use (routing)

  • OPC-UA → opcua-tap; Siemens S7 → s7-tap; Mitsubishi → mc-tap; CNC → mtconnect-tap; MQTT/UNS → sparkplug-tap; cross-protocol triage → industrial-diagnostics.
  • IT/network devices, Kubernetes, hypervisors, backups → not this tool.

Tools

Tool Params Returns
modbus_read_holding address, endpoint?, count=1, decode="uint16" {raw_registers, decoded[...]}
modbus_read_input address, endpoint?, count=1, decode="uint16" {raw_registers, decoded[...]}
modbus_read_coils address, endpoint?, count=1 {bits[bool,...]}
modbus_read_discrete address, endpoint?, count=1 {bits[bool,...]}
modbus_health_summary endpoint?, addresses[]?, thresholds?, register_type="holding" {overall, counts, offenders[...]}

Registers are untyped 16-bit words; pick decode. Word order is big-endian.

Example

modbus_read_holding(address=0, endpoint="plc2", count=2, decode="float32") → {"address":0,"count":2,"decode":"float32","decoded":[20.0]}

Setup

ot-aiops init (add a modbus endpoint) · ot-aiops doctor · ot-aiops mcp.

Safety

Read-only (FC05/06/15/16 writes are NOT implemented). Device text sanitized; secrets never returned. 缺功能提 issue/PR 欢迎留言.