using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Aborlen.Opc.PlcBase
|
|
{
|
|
public interface IDevice : IDisposable
|
|
{
|
|
|
|
/// <summary>
|
|
/// 设备连接Id 用于服务端存储实例
|
|
/// </summary>
|
|
string DeviceConnectionId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 设备IP地址
|
|
/// </summary>
|
|
string DeviceIpAddress { get; set; }
|
|
|
|
/// <summary>
|
|
/// 设备端口号
|
|
/// </summary>
|
|
int DevicePort { get; set; }
|
|
|
|
/// <summary>
|
|
/// plc型号
|
|
/// </summary>
|
|
string PlcSerialType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 获取或设置接收服务器反馈的时间,如果为负数,则不接收反馈,单位是毫秒
|
|
/// </summary>
|
|
int Receive_TimeOut { get; set; }
|
|
|
|
/// <summary>
|
|
/// 获取或设置连接的超时时间,单位是毫秒
|
|
/// </summary>
|
|
int Connect_TimeOut { get; set; }
|
|
|
|
/// <summary>
|
|
/// 建立与PLC通讯的长连接
|
|
/// </summary>
|
|
bool ConnectServer();
|
|
|
|
/// <summary>
|
|
/// 断开与服务端的长连接
|
|
/// </summary>
|
|
void ClosePlcServer();
|
|
|
|
|
|
bool PlcOnlineStatus();
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 读取指定地址数据
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="length">数据长度</param>
|
|
/// <returns>数据结果</returns>
|
|
PlcDataParam<T> ReadData<T>(string address, ushort length );
|
|
|
|
|
|
/// <summary>
|
|
/// 读取PLC 指定地址BOOL类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <returns>数据结果</returns>
|
|
PlcDataParam<bool> DeviceReadBool(string address);
|
|
|
|
|
|
/// <summary>
|
|
/// 读取PLC byte类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <returns>数据结果</returns>
|
|
PlcDataParam<byte> DeviceReadByte(string address);
|
|
|
|
|
|
/// <summary>
|
|
/// 读取PLC 日期类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <returns>数据结果</returns>
|
|
PlcDataParam<DateTime> DeviceReadDateTime(string address);
|
|
|
|
|
|
/// <summary>
|
|
/// 读取PLC Double类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <returns>数据结果</returns>
|
|
PlcDataParam<Double> DeviceReadDouble(string address);
|
|
|
|
|
|
/// <summary>
|
|
/// 读取PLC Float类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <returns>数据结果</returns>
|
|
PlcDataParam<float> DeviceReadFloat(string address);
|
|
|
|
|
|
/// <summary>
|
|
/// 读取PLC Short类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <returns>数据结果</returns>
|
|
PlcDataParam<short> DeviceReadShort(string address);
|
|
|
|
|
|
/// <summary>
|
|
/// 读取PLC Int类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <returns>数据结果</returns>
|
|
PlcDataParam<int> DeviceReadInt(string address);
|
|
|
|
|
|
/// <summary>
|
|
/// 读取PLC Long类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <returns>数据结果</returns>
|
|
PlcDataParam<long> DeviceReadLong(string address);
|
|
|
|
|
|
/// <summary>
|
|
/// 读取PLC String类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="length">字符串长度</param>
|
|
/// <returns>数据结果</returns>
|
|
PlcDataParam<string> DeviceReadString(string address, object length);
|
|
|
|
|
|
/// <summary>
|
|
/// 读取PLC Byte[]类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="length">字符串长度</param>
|
|
/// <returns>数据结果</returns>
|
|
PlcDataParam<byte[]> DeviceReadBytes(string address, object length);
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 向PLC写入指定类型数据
|
|
/// </summary>
|
|
/// <typeparam name="S"></typeparam>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="value">写入值</param>
|
|
/// <returns>写入后的结果</returns>
|
|
PlcDataParam<S> WriteData<S>(string address, S value, ushort length = 0);
|
|
|
|
|
|
/// <summary>
|
|
/// 向PLC写入BOOL类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="value">写入值</param>
|
|
/// <returns>写入后的结果</returns>
|
|
PlcDataParam<bool> DeviceWriteBool(string address, object value);
|
|
|
|
|
|
/// <summary>
|
|
/// 向PLC写入Byte类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="value">写入值</param>
|
|
/// <returns>写入后的结果</returns>
|
|
PlcDataParam<byte> DeviceWriteByte(string address, object value);
|
|
|
|
/// <summary>
|
|
/// 向PLC写入DateTime类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="value">写入值</param>
|
|
/// <returns>写入后的结果</returns>
|
|
PlcDataParam<DateTime> DeviceWriteDateTime(string address, DateTime value);
|
|
|
|
/// <summary>
|
|
/// 向PLC写入Double类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="value">写入值</param>
|
|
/// <returns>写入后的结果</returns>
|
|
PlcDataParam<double> DeviceWriteDouble(string address, object value);
|
|
|
|
|
|
/// <summary>
|
|
/// 向PLC写入Float类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="value">写入值</param>
|
|
/// <returns>写入后的结果</returns>
|
|
PlcDataParam<float> DeviceWriteFloat(string address, object value);
|
|
|
|
|
|
/// <summary>
|
|
/// 向PLC写入Short类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="value">写入值</param>
|
|
/// <returns>写入后的结果</returns>
|
|
PlcDataParam<short> DeviceWriteShort(string address, object value);
|
|
|
|
|
|
/// <summary>
|
|
/// 向PLC写入Int类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="value">写入值</param>
|
|
/// <returns>写入后的结果</returns>
|
|
PlcDataParam<int> DeviceWriteInt(string address, object value);
|
|
|
|
|
|
/// <summary>
|
|
/// 向PLC写入Long类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="value">写入值</param>
|
|
/// <returns>写入后的结果</returns>
|
|
PlcDataParam<long> DeviceWriteLong(string address, object value);
|
|
|
|
|
|
/// <summary>
|
|
/// 向PLC写入String类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="value">写入值</param>
|
|
/// <returns>写入后的结果</returns>
|
|
PlcDataParam<string> DeviceWriteString(string address, object value, ushort length);
|
|
|
|
|
|
/// <summary>
|
|
/// 向PLC写入Byte[]类型数据
|
|
/// </summary>
|
|
/// <param name="address">数据地址</param>
|
|
/// <param name="value">写入值</param>
|
|
/// <returns>写入后的结果</returns>
|
|
PlcDataParam<byte[]> DeviceWriteBytes(string address, object value);
|
|
|
|
|
|
|
|
}
|
|
}
|