AllenBradleyPLC.cs 948 B

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