157 lines
6.1 KiB
C#
157 lines
6.1 KiB
C#
namespace JSMachine.WMS.PLC
|
|
{
|
|
/// <summary>
|
|
/// PLC Modbus 通信引擎契约,统一提供连接、线圈和寄存器读写能力。
|
|
/// </summary>
|
|
public interface IModbusEngine
|
|
{
|
|
/// <summary>
|
|
/// 初始化PLC参数
|
|
/// </summary>
|
|
/// <param name="ip"></param>
|
|
/// <param name="port"></param>
|
|
/// <returns></returns>
|
|
IModbusEngine Init(string ip, int port);
|
|
/// <summary>
|
|
/// 连接PLC
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
IModbusEngine Connet();
|
|
|
|
/// <summary>
|
|
/// 批量读取线圈值
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="numberOfPoints"></param>
|
|
/// <returns></returns>
|
|
bool[] ReadCoils(byte slaveAddress, ushort startAddress, ushort numberOfPoints);
|
|
/// <summary>
|
|
/// 批量读取线圈值(异步)
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="numberOfPoints"></param>
|
|
/// <returns></returns>
|
|
Task<bool[]> ReadCoilsAsync(byte slaveAddress, ushort startAddress, ushort numberOfPoints);
|
|
/// <summary>
|
|
/// 无符号读取
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="numberOfPoints"></param>
|
|
/// <returns></returns>
|
|
ushort[] ReadUshorts(byte slaveAddress, ushort startAddress, ushort numberOfPoints);
|
|
/// <summary>
|
|
/// 无符号读取(异步)
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="numberOfPoints"></param>
|
|
/// <returns></returns>
|
|
Task<ushort[]> ReadUshortsAsync(byte slaveAddress, ushort startAddress, ushort numberOfPoints);
|
|
/// <summary>
|
|
/// 有符号读取
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="numberOfPoints"></param>
|
|
/// <returns></returns>
|
|
short[] ReadShorts(byte slaveAddress, ushort startAddress, ushort numberOfPoints);
|
|
/// <summary>
|
|
/// 有符号读取(异步)
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="numberOfPoints"></param>
|
|
/// <returns></returns>
|
|
Task<short[]> ReadShortsAsync(byte slaveAddress, ushort startAddress, ushort numberOfPoints);
|
|
/// <summary>
|
|
/// 写单个无符号值
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
bool WriteUshortOne(byte slaveAddress, ushort startAddress, ushort data);
|
|
/// <summary>
|
|
/// 写单个无符号值(异步)
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
Task<bool> WriteUshortOneAsync(byte slaveAddress, ushort startAddress, ushort data);
|
|
/// <summary>
|
|
/// 写单个有符号值
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
bool WriteShortOne(byte slaveAddress, ushort startAddress, short data);
|
|
/// <summary>
|
|
/// 写单个有符号值
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
bool WriteCoilOne(byte slaveAddress, ushort startAddress, bool data);
|
|
/// <summary>
|
|
/// 写单个有符号值
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
Task<bool> WriteCoilOneAsync(byte slaveAddress, ushort startAddress, bool data);
|
|
/// <summary>
|
|
/// 写单个有符号值(异步)
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
Task<bool> WriteShortOneAsync(byte slaveAddress, ushort startAddress, short data);
|
|
/// <summary>
|
|
/// 写多个无符号值
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
bool WriteUshortsMany(byte slaveAddress, ushort startAddress, ushort[] data);
|
|
/// <summary>
|
|
/// 写多个无符号值(异步)
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
Task<bool> WriteUshortsManyAsync(byte slaveAddress, ushort startAddress, ushort[] data);
|
|
/// <summary>
|
|
/// 写多个有符号值
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
bool WriteShortsMany(byte slaveAddress, ushort startAddress, short[] data);
|
|
/// <summary>
|
|
/// 写多个有符号值(异步)
|
|
/// </summary>
|
|
/// <param name="slaveAddress"></param>
|
|
/// <param name="startAddress"></param>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
Task<bool> WriteShortsManyAsync(byte slaveAddress, ushort startAddress, short[] data);
|
|
/// <summary>
|
|
/// PLC是否已连接
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
bool IsConneted();
|
|
|
|
}
|
|
}
|