IPLCConnect.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. namespace IPLCConnect
  2. {
  3. public sealed class PLCProtocolAttribute:Attribute
  4. {
  5. public PLCProtocolAttribute(PLCProtocol protocol = PLCProtocol.S7) => Protocol = protocol;
  6. public PLCProtocol Protocol { get; } = PLCProtocol.S7;
  7. }
  8. public interface IPLCConnect:IDisposable
  9. {
  10. public PLCProtocol Protocol { get; }
  11. /// <summary>
  12. /// 连接状态
  13. /// </summary>
  14. public bool IsConnected { get; }
  15. /// <summary>
  16. /// IP地址
  17. /// </summary>
  18. public string IP { get; }
  19. /// <summary>
  20. /// 端口
  21. /// </summary>
  22. public int Port { get; }
  23. /// <summary>
  24. /// 初始化
  25. /// </summary>
  26. /// <param name="ip">IP地址</param>
  27. /// <param name="port">端口号</param>
  28. public void Init(string ip, int port);
  29. /// <summary>
  30. /// 读寄存器
  31. /// </summary>
  32. /// <typeparam name="T">数据类型</typeparam>
  33. /// <param name="addr">地址</param>
  34. /// <returns></returns>
  35. public T Read<T>(string addr) where T : unmanaged;
  36. /// <summary>
  37. /// 读取bool
  38. /// </summary>
  39. /// <param name="addr">地址</param>
  40. /// <returns></returns>
  41. public bool ReadBit(string addr);
  42. /// <summary>
  43. /// 写寄存器
  44. /// </summary>
  45. /// <typeparam name="T">数据类型</typeparam>
  46. /// <param name="addr">地址</param>
  47. /// <param name="value">需要写入的值</param>
  48. public void Write<T>(string addr, T value) where T : unmanaged;
  49. /// <summary>
  50. /// 写bool
  51. /// </summary>
  52. /// <param name="addr">地址</param>
  53. /// <param name="value">值</param>
  54. public void Writebit(string addr, bool value);
  55. /// <summary>
  56. /// 连接
  57. /// </summary>
  58. public void Connect();
  59. /// <summary>
  60. /// 断开连接
  61. /// </summary>
  62. public void DisConnect();
  63. /// <summary>
  64. /// 连接状态改变
  65. /// </summary>
  66. public event EventHandler<bool> StatusChanged;
  67. }
  68. }