PlcHotStartParamsRequest.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using PlcSiemens.Core.Extension;
  2. using PlcSiemens.O;
  3. using PlcSiemens.Protocol.Common;
  4. namespace PlcSiemens.Protocol.Control
  5. {
  6. public class PlcHotStartParamsRequest
  7. {
  8. public byte Fun; // start 0x28
  9. public byte[] Uk7; // unknown 7
  10. public ushort Len1; // Length part 1 : 0x0002
  11. //public ushort SFun; // 'C ' 0x4320
  12. public byte Len2; // Length part 2 : 0x09
  13. public char[] Cmd; // ascii 'P_PROGRAM'
  14. public ushort PacketLength = 0x14;
  15. public void Build()
  16. {
  17. Fun = (byte)PduFuncType.PduStart;
  18. Uk7 = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD };
  19. Len1 = 0x0000;
  20. //SFun = 0x00;
  21. Len2 = 0x09;
  22. Cmd = new[] { 'P', '_', 'P', 'R', 'O', 'G', 'R', 'A', 'M' };
  23. }
  24. public void GetByteBuffer(ByteBuffer buffer)
  25. {
  26. buffer.Push(Fun);
  27. buffer.Push(Uk7);
  28. buffer.Push(Len1);
  29. //buffer.Push(SFun);
  30. buffer.Push(Len2);
  31. Cmd.ForEach(t => buffer.Push((byte)t));
  32. }
  33. }
  34. }