IoReset.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System.Xml;
  2. using Aitex.Core.RT.IOCore;
  3. using Aitex.Core.Util;
  4. namespace Aitex.Core.RT.Device.Unit
  5. {
  6. public class IoReset : BaseDevice, IDevice
  7. {
  8. private DOAccessor _doReset = null;
  9. private DIAccessor _diSignal = null;
  10. private DeviceTimer _timer = new DeviceTimer();
  11. public IoReset(string module, XmlElement node)
  12. {
  13. base.Module = module;
  14. base.Name = node.GetAttribute("id");
  15. base.Display = node.GetAttribute("display");
  16. base.DeviceID = node.GetAttribute("schematicId");
  17. _doReset = ParseDoNode("doReset", node);
  18. _diSignal = ParseDiNode("diSignal", node);
  19. }
  20. public bool Initialize()
  21. {
  22. return true;
  23. }
  24. public void Terminate()
  25. {
  26. }
  27. public void Monitor()
  28. {
  29. if (_diSignal != null)
  30. {
  31. _doReset.Value = _diSignal.Value;
  32. }
  33. if (_timer.IsTimeout())
  34. {
  35. _doReset.Value = false;
  36. }
  37. }
  38. public void Reset()
  39. {
  40. _timer.Start(5000);
  41. _doReset.Value = true;
  42. }
  43. }
  44. }