通过串口进行通信:
1、将NMobus类库导入工程中,添加引用、命名空间。工程属性必须配置为.NET 4.0。
2、创建SerialPort类的一个实例,配置参数,打开串口,如:
组
bool[] ReadCoils(byte slaveAddress, ushort startAddress, ushort numberOfPoints); public SerialPort port = new SerialPort(“COM1”)//创建串口 port.BaudRate = 9600;//
配置 port.DataBits = 8; port.Parity = Parity.None; port.StopBits = StopBits.One;
port.Open();//打开串口IModbusSerialMaster master = ModbusSerialMaster.CreateRtu(port); //创建Rtu传输模式、通过串口port通信的
主站master //ASCII传输模式IModbusSerialMaster master = ModbusSerialMaster.CreateAscii(port); 3、调用相应方法创建Modbus主站,如: 4、配
置参数,如: master.Transport.ReadTimeout = 1000;//读取串口数据超时为1000ms
master.Transport.WriteTimeout = 1000;//写入串口数据超时 master.Transport.Retries
= 3;//重试次数 master.Transport.WaitToRetryMilliSeconds = 250;//重试间隔 try { }
master.WriteMultipleRegisters(slaveId, startAddress, registers); 5、调用相应方法
执行功能,如:有以下几种功能: //读线圈,参数:从站地址(8位)、起始地址(16位)、
数量(16位);返回布尔型数
//读输入离散量,参数:从站地址(8位)、起始地址(16位)、数量(16位);返回布尔型数组
bool[] ReadInputs(byte slaveAddress, ushort startAddress, ushort numberOfPoints);
//读保持寄存器,参数:从站地址(8位)、起始地址(16位)、数量(16位);返回16位整型
数组
ushort[] ReadHoldingRegisters(byte slaveAddress, ushort startAddress, ushort