| | |
| | | |
| | | namespace WIDESEAWCS_Communicator |
| | | { |
| | | public abstract class BaseCommunicator: IDisposable |
| | | /// <summary> |
| | | /// 基础通讯抽象类,封装连接、断开连接、读取、写入等方法 |
| | | /// </summary> |
| | | public abstract class BaseCommunicator : IDisposable |
| | | { |
| | | /// <summary> |
| | | /// 构造函数 |
| | |
| | | /// 设备名称 |
| | | /// </summary> |
| | | public abstract string Name { get; } |
| | | |
| | | /// <summary> |
| | | /// 是否在写入数据后读取数据确认。 |
| | | /// </summary> |
| | | public abstract bool IsReadAfterWrite { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 获取当前通讯器是否已连接到PLC。 |
| | |
| | | /// <summary> |
| | | /// 从PLC读取数据。 |
| | | /// </summary> |
| | | /// <typeparam name="T">读取数据的类型泛型。</typeparam> |
| | | /// <param name="address">源地址,具体格式取决于使用的工业协议。</param> |
| | | /// <param name="length">读取的长度。</param> |
| | | /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns> |
| | | public abstract T[] Read<T>(string address, ushort length); |
| | | |
| | | /// <summary> |
| | | /// 从PLC读取数据。 |
| | | /// </summary> |
| | | /// <param name="address">源地址,具体格式取决于使用的工业协议。</param> |
| | | /// <param name="dataType">数据类型。</param> |
| | | /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns> |
| | |
| | | /// <summary> |
| | | /// 向PLC写入数据。 |
| | | /// </summary> |
| | | /// <typeparam name="T">读取数据的类型泛型。</typeparam> |
| | | /// <typeparam name="T">写入数据的类型泛型。</typeparam> |
| | | /// <param name="address">源地址,具体格式取决于使用的工业协议。</param> |
| | | /// <param name="value">要写入的数据。</param> |
| | | /// <returns>如果写入成功则返回true,否则抛出异常。</returns> |
| | | public abstract bool Write<T>(string address, T value) where T : notnull; |
| | | |
| | | /// <summary> |
| | | /// 向PLC写入数据。 |
| | | /// </summary> |
| | | /// <typeparam name="T">写入数据的类型泛型。</typeparam> |
| | | /// <param name="address">源地址,具体格式取决于使用的工业协议。</param> |
| | | /// <param name="values">要写入的数据。</param> |
| | | /// <returns>如果写入成功则返回true,否则抛出异常。</returns> |
| | | public abstract bool Write<T>(string address, T[] values); |
| | | |
| | | /// <summary> |
| | | /// 向PLC写入数据。 |
| | | /// </summary> |
| | | /// <param name="address">源地址,具体格式取决于使用的工业协议。</param> |