Titration2DropperOpen.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using SHJX.Service.Control.Extends;
  2. using SHJX.Service.Control.Common.Assets;
  3. using SHJX.Service.Control.Disposables;
  4. namespace SHJX.Service.Control.Pipeline.Nodes.LiquidNode
  5. {
  6. public class Titration2DropperOpen : INode
  7. {
  8. #region Fields
  9. private static TaskExtend _taskExtend;
  10. private static IDataManager _dataManager;
  11. #endregion
  12. public Titration2DropperOpen(TaskExtend taskExtend, IDataManager dataManager)
  13. {
  14. Name = nameof(Titration2DropperOpen);
  15. _taskExtend = taskExtend;
  16. _dataManager = dataManager;
  17. }
  18. public override INode Invoke()
  19. {
  20. bool locker;
  21. //do
  22. //{
  23. // StateMachine state = DataManagerInstance.QueryStateMachine(StateMachineName.TITRATION_LOCK);
  24. // locker = state.Status > 0;
  25. //} while (locker);
  26. do
  27. {
  28. StateMachine state = DataManagerInstance.QueryStateMachine(StateMachineName.MOTOR_LOCKDROPPER);
  29. locker = state.Status > 0;
  30. } while (locker);
  31. //DataManagerInstance.IncreaseLock(StateMachineName.TITRATION_LOCK);
  32. DataManagerInstance.IncreaseLock(StateMachineName.MOTOR_LOCKDROPPER);
  33. // ExecuteCommand.ShowStatusOpenClose(CurrentTask, "移动滴定滴嘴(开启)");
  34. bool res = true;
  35. do
  36. {
  37. char[] readData = EquipmentNames.AxisD.MotorRead();
  38. if (readData is null or not { Length: 8 })
  39. {
  40. continue;
  41. }
  42. res = readData[2].Equals('0');
  43. Thread.Sleep(800);
  44. } while (!res);
  45. res = EquipmentNames.AxisD.LiquidMotorMove(Convert.ToInt32(-70 * 4000));
  46. //EquipmentNames.Titration2DropperForward.RegisterOpen();
  47. //EquipmentNames.Titration2DropperInversion.RegisterOpen();
  48. //bool res = true;
  49. //do
  50. //{
  51. // char[] readData = EquipmentNames.Titration2Dropper.MotorRead();
  52. // if (readData is null or { Length: 0 })
  53. // {
  54. // continue;
  55. // }
  56. // res = readData[5 - 1].Equals('0');
  57. // Thread.Sleep(200);
  58. //} while (!res);
  59. //EquipmentNames.Titration2DropperInversion.RegisterClose();
  60. //EquipmentNames.Titration2DropperForward.RegisterClose();
  61. return this;
  62. }
  63. }
  64. }