如何使用 jamod 库实例化 Java 中的 Register 对象?

How do I instantiate a Register object in Java using the jamod library?

我目前正在使用 jamod 来设置一个小型的工作控制系统。我们正在使用多个 PLC,我需要使用 MODBUS 协议进行通信。我已经能够读取控制器测量的值,但是我无法成功写入控制器(调整电流)。

我的问题是,如何使用 jamod 实例化 Register 对象?

Register[] reg_1 = new Register[5];
        reg_1[0].setValue(16000);

这行不通。本质上我想将位置 0 的寄存器值设置为整数 16000。我也尝试过使用

reg_1[0].setValue(Integer.parseInt("16000"));

我一直在查看 jamod 文档,但找不到任何创建正确寄存器对象的方法,也找不到任何有关如何设置正确寄存器进行写入的示例。

如果有人有任何想法,我将不胜感激。 :)

我明白了。设置用于写入的 Register[] 的正确方法,在我的例子中,是设置几个由 UINT_16s 组成的 SimpleRegisters,然后像这样将它们放入 Register[] 数组中:

        Register reg1 = new SimpleRegister(48911);
        Register reg2 = new SimpleRegister(23593);
        Register reg3 = new SimpleRegister(48911);
        Register reg4 = new SimpleRegister(23593);

        WriteMultipleRegistersRequest req = new WriteMultipleRegistersRequest(41200,new Register[]{reg1,reg2,reg3,reg4});
        WriteMultipleRegistersResponse res = new WriteMultipleRegistersResponse();

其中 41200 是寄存器写入开始的参考点。您可以使用多个金额(甚至 1 或 100)来执行此操作,并相应地调整您的注册金额。在我的例子中,我从 modbus 发送和接收两个 8 位字,所以每个值有两个寄存器。