我目前正在使用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文档,无法找到创建正确的寄存器对象的任何方法,也没有找到如何设置正确的寄存器写入的示例。
如果有人有任何想法,我会非常感激。 :)
答案 0 :(得分:1)
我明白了。在我的例子中,设置Register []进行写入的正确方法是设置几个由UINT_16组成的SimpleRegister,然后将它们放入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位字,所以每个值有两个寄存器。