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