123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- namespace IPLCConnect
- {
- public enum PLCProtocol
- {
- Modbus,
- S7,
- }
- public sealed class PLCProtocolAttribute:Attribute
- {
- public PLCProtocolAttribute(PLCProtocol protocol = PLCProtocol.S7) => Protocol = protocol;
- public PLCProtocol Protocol { get; } = PLCProtocol.S7;
- }
- public interface IPLCConnect:IDisposable
- {
- public PLCProtocol Protocol { get; }
- /// <summary>
- /// 连接状态
- /// </summary>
- public bool IsConnected { get; }
- /// <summary>
- /// IP地址
- /// </summary>
- public string IP { get; }
- /// <summary>
- /// 端口
- /// </summary>
- public int Port { get; }
- /// <summary>
- /// 初始化
- /// </summary>
- /// <param name="ip">IP地址</param>
- /// <param name="port">端口号</param>
- public void Init(string ip, int port);
- /// <summary>
- /// 读寄存器
- /// </summary>
- /// <typeparam name="T">数据类型</typeparam>
- /// <param name="addr">地址</param>
- /// <returns></returns>
- public T Read<T>(string addr) where T : unmanaged;
- /// <summary>
- /// 读取bool
- /// </summary>
- /// <param name="addr">地址</param>
- /// <param name="bitindex">bit序号</param>
- /// <returns></returns>
- public bool ReadBit(string addr, byte bitindex);
- /// <summary>
- /// 写寄存器
- /// </summary>
- /// <typeparam name="T">数据类型</typeparam>
- /// <param name="addr">地址</param>
- /// <param name="value">需要写入的值</param>
- public void Write<T>(string addr, T value) where T : unmanaged;
- /// <summary>
- /// 写bool
- /// </summary>
- /// <param name="addr">地址</param>
- /// <param name="bitindex">bit序号</param>
- /// <param name="value">值</param>
- public void Writebit(string addr, byte bitindex, bool value);
- /// <summary>
- /// 连接
- /// </summary>
- public void Connect();
- /// <summary>
- /// 断开连接
- /// </summary>
- public void DisConnect();
- /// <summary>
- /// 连接状态改变
- /// </summary>
- public event EventHandler<bool> StatusChanged;
- }
- }
|