跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/MB_SERVER — Modbus TCP 服务器

MB_SERVER — Modbus TCP 服务器

作为 Modbus TCP 服务器,向客户端提供保持寄存器区。

通信 S7-1200/1500 TIA V19 别名:Modbus TCP 服务器 / MB_SERVER

在 TIA 里试一下

选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。

TiaLink 设置

默认 http://localhost:8080。也可以在本页地址后加 ?tialink= 临时指定。

TiaLink 启动时若设置了 --api-token,这里要填相同的值;只保存在本机浏览器 localStorage,不会上传。

一句话

MB_SERVER 作为 Modbus TCP 服务器,向客户端提供保持寄存器区。

符号与引脚

分类:通信 需要实例 模板值:无
引脚方向说明
en流输入使能输入
CONNECT输入连接参数
MB_HOLD_REG输入保持寄存器区
DISCONNECT输入断开连接
NDR输出新数据
DR输出数据已读
ERROR输出错误
STATUS输出状态码

符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。

最小示例

Enable=1 时每扫描调用;客户端可以读写 HoldReg 数组对应的保持寄存器。

MB_SERVER_Example:Network 1 — 提供保持寄存器

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。

怎么工作

  • MB_SERVER 是 FB,需要静态实例和 TCON_IP_v4 连接参数。
  • MB_HOLD_REG 是保持寄存器区(Array of Word);客户端按 Modbus 地址访问它。
  • DISCONNECT=TRUE 断开连接;正常运行时保持 FALSE。
  • NDR/DR/ERROR/STATUS 给出执行状态;NDR 表示收到新请求。
  • 这是 Modbus TCP(以太网),默认端口 502。

常用场景

1. 提供保持寄存器

同上面的最小示例。

2. 提供 16 个保持寄存器

把 HoldReg[0..15] 暴露给客户端读写。

参数 示例值
Enable TRUE
DISCONNECT FALSE
HoldReg Array[0..15] of Word
Conn 本地端口 502,伙伴按实际
MB_SERVER_ServeHolding:Network 1 — 提供 16 个保持寄存器

常见坑

  • 没配连接:CONNECT 的本地端口/接口要正确;导入只保证编译。
  • 地址映射:客户端看到的 Modbus 地址和 HoldReg 下标要按协议换算。
  • 数据竞争:客户端读写与程序写同一寄存器时要定义一致性规则。
  • 多客户端:确认服务器支持的连接数。
  • STATUS:出错先看 STATUS。

← 返回 LAD 指令手册