ModbusIO

这个接口定义了一个Modbus主设备,用于读取和写入不同类型的寄存器,包括读取和设置线圈状态、离散输入、保持寄存器和输入寄存器。每个操作都详细指定了地址和数量参数,并提供了组合读写操作的方法。要成功执行这些操作,需要了解设备的特定协议内容。
摘要由CSDN通过智能技术生成

using Modbus.IO;

namespace Modbus.Device
{
///
/// Modbus master device.
///
public interface IModbusMaster
{
///
/// Transport for used by this master.
///
ModbusTransport Transport { get; }

	/// <summary>
	/// Read from 1 to 2000 contiguous coils status.
	/// </summary>
	/// <param name="slaveAddress">Address of device to read values from.</param>
	/// <param name="startAddress">Address to begin reading.</param>
	/// <param name="numberOfPoints">Number of coils to read.</param>
	/// <returns>Coils status</returns>
	bool[] ReadCoils(byte slaveAddress, ushort startAddress, ushort numberOfPoints);

	/// <summary>
	/// Read from 1 to 2000 contiguous discrete input status.
	/// </summary>
	/// <param name="slaveAddress">Address of device to read values from.</param>
	/// <param name="startAddress">Address to begin reading.</param>
	/// <param name="numberOfPoints">Number of discrete inputs to read.</param>
	/// <returns>Discrete inputs status</returns>
	bool[] ReadInputs(byte slaveAddress, ushort startAddress, ushort numberOfPoints);

	/// <summary>
	/// Read contiguous block of holding registers.
	/// </summary>
	/// <param name="slaveAddress">Address of device to read values from.</param>
	/// <param name="startAddress">Address to begin reading.</param>
	/// <param name="numberOfPoints">Number of holding registers to read.</param>
	/// <returns>Holding registers status</returns>
	ushort[] ReadHoldingRegisters(byte slaveAddress, ushort startAddress, ushort numberOfPoints);

	/// <summary>
	/// Read contiguous block of input registers.
	/// </summary>
	/// <param name="slaveAddress">Address of device to read values from.</param>
	/// <param name="startAddress">Address to begin reading.</param>
	/// <param name="numberOfPoints">Number of holding registers to read.</param>
	/// <returns>Input registers status</returns>
	ushort[] ReadInputRegisters(byte slaveAddress, ushort startAddress, ushort numberOfPoints);

	/// <summary>
	/// Write a single coil value.
	/// </summary>
	/// <param name="slaveAddress">Address of the device to write to.</param>
	/// <param name="coilAddress">Address to write value to.</param>
	/// <param name="value">Value to write.</param>
	void WriteSingleCoil(byte slaveAddress, ushort coilAddress, bool value);

	/// <summary>
	/// Write a single holding register.
	/// </summary>
	/// <param name="slaveAddress">Address of the device to write to.</param>
	/// <param name="registerAddress">Value to write.</param>
	/// <param name="value">Value to write.</param>
	void WriteSingleRegister(byte slaveAddress, ushort registerAddress, ushort value);

	/// <summary>
	/// Write a block of 1 to 123 contiguous registers.
	/// </summary>
	/// <param name="slaveAddress">Address of the device to write to.</param>
	/// <param name="startAddress">Address to begin writing values.</param>
	/// <param name="data">Values to write.</param>
	void WriteMultipleRegisters(byte slaveAddress, ushort startAddress, ushort[] data);

	/// <summary>
	/// Force each coil in a sequence of coils to a provided value.
	/// </summary>
	/// <param name="slaveAddress">Address of the device to write to.</param>
	/// <param name="startAddress">Address to begin writing values.</param>
	/// <param name="data">Values to write.</param>
	void WriteMultipleCoils(byte slaveAddress, ushort startAddress, bool[] data);

	/// <summary>
	/// Performs a combination of one read operation and one write operation in a single Modbus transaction. 
	/// The write operation is performed before the read.
	/// </summary>
	/// <param name="slaveAddress">Address of device to read values from.</param>
	/// <param name="startReadAddress">Address to begin reading (Holding registers are addressed starting at 0).</param>
	/// <param name="numberOfPointsToRead">Number of registers to read.</param>
	/// <param name="startWriteAddress">Address to begin writing (Holding registers are addressed starting at 0).</param>
	/// <param name="writeData">Register values to write.</param>
	ushort[] ReadWriteMultipleRegisters(byte slaveAddress, ushort startReadAddress, ushort numberOfPointsToRead, ushort startWriteAddress, ushort[] writeData);
}

}

寄存器地址都是设备定义的

你的要一份协议内容才能读写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值