HuiChuangPLC.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using HslCommunication.Profinet.AllenBradley;
  2. using System;
  3. namespace WCS.Service.PLCAccessors
  4. {
  5. /// <summary>
  6. /// 汇川
  7. /// TODO 具体内容需要重构,暂时使用AB基类
  8. /// </summary>
  9. public class HuiChuangPLC : AllenBradleyNet
  10. {
  11. public AllenBradleyNet plc;
  12. public HuiChuangPLC(string ipAddress)
  13. {
  14. plc = new AllenBradleyNet(ipAddress);
  15. }
  16. public byte[] ReadBytes(ushort db, ushort address, ushort length)
  17. {
  18. var addr = "DB" + db + "." + address;
  19. var res = plc.Read(addr, length);
  20. if (res.IsSuccess)
  21. return res.Content;
  22. throw new Exception("读取PLC数据失败:" + res.Message);
  23. }
  24. public void WriteBytes(ushort db, ushort address, byte[] data)
  25. {
  26. var start = db + address / 2;
  27. var res = plc.Write("D" + start, data);
  28. if (!res.IsSuccess)
  29. throw new Exception("写入PLC数据失败:" + res.Message);
  30. }
  31. }
  32. }