引用j2mod编写Modbus TCP从站Slave例子

Maven引入j2mod包,我使用3.1.1版本

<dependency>
    <groupId>com.ghgande</groupId>
    <artifactId>j2mod</artifactId>
    <version>3.1.1</version>
</dependency>

直接上例子代码:

package com.fuyan.test.modbus.slave;

import com.ghgande.j2mod.modbus.ModbusException;
import com.ghgande.j2mod.modbus.procimg.*;
import com.ghgande.j2mod.modbus.slave.ModbusSlave;
import com.ghgande.j2mod.modbus.slave.ModbusSlaveFactory;

/**
 * @Description: Modbus TCP 从站(服务端)
 * @Author fuyan.wang
 * @Date 2024/5/10
 */
public class ModbusTCPSlave {

    public static void main(String[] args) {
        // 简单添加几个测试数据
        
        SimpleProcessImage spi = new SimpleProcessImage();
        // 线圈状态
        spi.addDigitalOut(new SimpleDigitalOut(true));
        spi.addDigitalOut(new SimpleDigitalOut(false));
        // 输入状态
        spi.addDigitalIn(new SimpleDigitalIn(true));
        spi.addDigitalIn(new SimpleDigitalIn(true));
        spi.addDigitalIn(new SimpleDigitalIn(false));
        spi.addDigitalIn(new SimpleDigitalIn(true));
        // 保持寄存器
        spi.addRegister(new SimpleRegister(200));
        spi.addRegister(new SimpleRegister(99));
        // 输入寄存器
        spi.addInputRegister(new SimpleInputRegister(44));
        spi.addInputRegister(new SimpleInputRegister(55));

        // 端口
        int port = 502;
        // 连接池大小(简单理解就是允许多少个主站同时连接)
        int poolSize = 2;
        // 从站Id
        int unitId = 1;

        try {
            ModbusSlave slave = ModbusSlaveFactory.createTCPSlave(port,poolSize);
            slave.addProcessImage(unitId,spi);
            // 多个从站就多个addProcessImage就可以了
            // 启动从站服务
            slave.open();

            // 关闭(自定处理)
            //ModbusSlaveFactory.close();
        } catch (ModbusException e) {
            // 处理异常...
            //...
            throw new RuntimeException(e);
        }

    }
}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值