返回主站|会员中心|保存桌面

磨莎交换机专营    

摩莎交换机、AI防火墙、工业网管型以太网交换机,5口交换机, 8口交换

联系方式
  • 联系人:吴经理
  • 电话:18576370666
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 实用的耐特PLC MODBUS主站从站完整指令库!
新闻中心
实用的耐特PLC MODBUS主站从站完整指令库!
发布时间:2025-10-01        浏览次数:22        返回列表

耐特 PLC 的 Modbus 通信通常支持 Modbus RTU(通过串口)和 Modbus TCP(通过以太网)两种方式。以下是针对耐特 PLC 作为 Modbus 主站和从站的完整指令库说明及示例,适用于多数耐特 PLC 型号(如 Nait 系列)。

一、Modbus RTU 主站指令库(串口通信)

耐特 PLC 作为主站时,通过串口(RS485)读写从站设备(如仪表、变频器等)的数据,常用指令如下:

指令名称功能描述关键参数
MB_MASTERModbus 主站通信指令(核心指令)从站地址、功能码、起始地址、数据长度、数据区
MB_INIT初始化 Modbus 主站参数波特率、校验位、数据位、停止位、端口号
MB_RESET重置 Modbus 通信状态无(用于故障恢复)

示例:读取从站数据(功能码 03)

梯形图

// 初始化主站:波特率9600,无奇偶校验,8数据位,1停止位,COM1端口
MB_INIT(
    baud := 9600,
    parity := 0,  // 0=无校验,1=奇校验,2=偶校验
    data_bits := 8,
    stop_bits := 1,
    port := 1,    // 串口1
    done => init_done,  // 初始化完成标志
    error => init_err   // 错误代码
);

// 读取从站1的保持寄存器(地址40001开始,读取2个寄存器)
MB_MASTER(
    slave := 1,          // 从站地址
    func := 3,           // 功能码03(读保持寄存器)
    addr := 0,           // 起始地址(40001对应地址0)
    count := 2,          // 读取数量
    data_ptr := &DB1.DBW0,  // 数据存储区(DB1的字0开始)
    done => read_done,   // 读取完成标志
    error => read_err,   // 错误代码
    busy => read_busy    // 忙标志
);

二、Modbus RTU 从站指令库(串口通信)

耐特 PLC 作为从站时,响应主站的读写请求,常用指令如下:

指令名称功能描述关键参数
MB_SLAVEModbus 从站通信指令(核心指令)从站地址、数据映射区(输入 / 输出 / 寄存器)
MB_SLAVE_INIT初始化 Modbus 从站参数从站地址、波特率、校验位等(同主站)

示例:配置从站并映射数据区

梯形图

// 初始化从站:地址2,波特率9600,无校验,COM1端口
MB_SLAVE_INIT(
    slave_addr := 2,
    baud := 9600,
    parity := 0,
    data_bits := 8,
    stop_bits := 1,
    port := 1,
    done => slave_init_done,
    error => slave_init_err
);

// 从站数据映射:输入寄存器、线圈、保持寄存器对应PLC内部地址
MB_SLAVE(
    input_regs := &IB0,    // 输入寄存器映射到输入字节IB0
    coils := &Q0.0,        // 线圈映射到输出点Q0.0
    holding_regs := &DB1.DBW0,  // 保持寄存器映射到DB1.DBW0
    discrete_inputs := &I0.0,   // 离散输入映射到I0.0
    done => slave_done,
    error => slave_err
);

三、Modbus TCP 主站指令库(以太网通信)

通过以太网进行 Modbus TCP 通信时,主站指令如下:

指令名称功能描述关键参数
MODBUS_TCP_MASTERModbus TCP 主站指令从站 IP 地址、端口(默认 502)、功能码、地址
TCP_CONNECT建立 TCP 连接(部分型号需要)从站 IP、端口、连接 ID

示例:Modbus TCP 主站读取从站数据

梯形图

// 连接到Modbus TCP从站(IP:192.168.0.100,端口502)
TCP_ConNECT(
    ip_addr := '192.168.0.100',
    port := 502,
    conn_id := 1,       // 连接ID
    connected => tcp_connected,  // 连接成功标志
    error => tcp_err
);

// 读取保持寄存器(功能码03,地址0,长度2)
MODBUS_TCP_MASTER(
    conn_id := 1,
    func := 3,
    addr := 0,
    count := 2,
    data_ptr := &DB2.DBW0,  // 存储读取数据
    done => tcp_read_done,
    error => tcp_read_err
);

四、常见错误代码及解决方法

错误代码可能原因解决方法
16#01从站无响应检查从站地址、接线或电源;确认从站正常运行
16#02数据地址超出范围核对从站支持的寄存器地址范围
16#03校验错误重新配置波特率、校验位等串口参数
16#06TCP 连接失败检查 IP 地址、端口;确认从站 Modbus TCP 服务启用

五、使用注意事项

  1. 硬件接线:Modbus RTU 需使用 RS485 总线,两端加终端电阻(120Ω),避免信号反射。

  2. 数据格式:注意寄存器数据类型(16 位整数、32 位浮点数等),读取后需按从站要求解析。

  3. 通信周期:主站指令调用间隔需大于从站响应时间(建议≥100ms),避免总线拥堵。

  4. 防火墙:Modbus TCP 通信需确保 PLC 和电脑防火墙开放 502 端口。

如需具体型号的指令手册或编程示例,可参考耐特官方文档或联系技术支持获取完整资料。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服