'ModbusSerialMaster'由于其保护级别而无法访问

时间:2018-07-07 10:20:05

标签: c# .net

我正在使用NModbus创建RTU。

在软件包管理器控制台中使用以下命令安装了NModbus软件包

Install-Package NModbus

现在我通过以下行创建RTU。

IModbusSerialMaster master = ModbusSerialMaster.CreateRtu(Port);

但是我遇到了错误

  

'ModbusSerialMaster'由于其保护级别而无法访问

原因是什么,如何创建Modbus RTU来读取和写入多个寄存器。

谢谢。

1 个答案:

答案 0 :(得分:2)

是的,因为ModbusSerialMaster是一个内部类,正如您在source中看到的那样。

浏览代码,我怀疑您想要这样的东西:

IModbusFactory factory = new ModbusFactory();
IModbusSerialMaster = factory.CreateMaster(transport);

...其中transport是实现IModbusSerialTransport的东西。

或者,如果您不需要IModbusSerialMaster,但需要IModbusRtuTransport,则可以致电CreateRtuTransport

IModbusFactory factory = new ModbusFactory();
IModbusRtuTransport = factory.CreateRtuTransport(resource);

...其中resource是实现IStreamResource的东西。

对于进一步的事情,我可能只是克隆源代码并浏览它以找出您可以做什么和需要什么。