MelsecPLC.cs 947 B

123456789101112131415161718192021222324252627282930313233
  1. using HslCommunication.Profinet.Melsec;
  2. using System;
  3. namespace WCS.Service.PLCAccessors
  4. {
  5. public class MelsecPLC : MelsecMcNet
  6. {
  7. private MelsecMcNet plc;
  8. public MelsecPLC(string ip, int port)
  9. {
  10. plc = new MelsecMcNet(ip, port);
  11. plc.ConnectTimeOut = 3000;
  12. plc.ConnectServer();
  13. }
  14. public byte[] ReadBytes(ushort db, ushort address, ushort length)
  15. {
  16. var res = plc.Read("D" + db, length);
  17. if (res.IsSuccess)
  18. return res.Content;
  19. throw new Exception("读取PLC数据失败:" + res.Message);
  20. }
  21. public void WriteBytes(ushort db, ushort address, byte[] data)
  22. {
  23. var start = db + address / 2;
  24. var res = plc.Write("D" + start, data);
  25. if (!res.IsSuccess)
  26. throw new Exception("写入PLC数据失败:" + res.Message);
  27. }
  28. }
  29. }