CTransporter.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #pragma once
  2. #include "CModule.h"
  3. #include "CCylinder.h"
  4. class __declspec(dllexport) CTransporter :
  5. public CModule
  6. {
  7. public:
  8. CTransporter(MODULE_LIST eModuleType);
  9. ~CTransporter();
  10. virtual LONG AllocateAxis(vector<CAxis*> vecAxis);
  11. virtual LONG AllocateIo(vector<CIO*> vecIo);
  12. virtual LONG ToHome() ;
  13. virtual LONG ToSafePosition();
  14. virtual LONG GetParam();
  15. virtual void SetDataChangFunction();
  16. virtual LONG SetParam();
  17. virtual LONG InitResource();
  18. virtual void DataChangNotice(string strDbName, string strTableName) ;
  19. virtual LONG Sync();
  20. //等待传感器信号
  21. LONG WaitSensor(CIO* sensor);
  22. //勾料
  23. LONG PullFeed();
  24. LONG FeedToWorkPos();
  25. LONG FeedToPushPos();
  26. LONG PushFeed();
  27. private:
  28. //勾料气缸
  29. CIO* m_pPullXDo = nullptr;
  30. CIO* m_pPullXNegDi = nullptr;
  31. CIO* m_pPullXPosDi = nullptr;
  32. //勾料顶升气缸
  33. CIO* m_pPullZDo = nullptr;
  34. CIO* m_pPullZNegDi = nullptr;
  35. CIO* m_pPullZPosDi = nullptr;
  36. //勾料阻挡气缸
  37. CIO* m_pPullBlockDo = nullptr;
  38. CIO* m_pPullBlockNegDi = nullptr;
  39. CIO* m_pPullBlockPosDi = nullptr;
  40. //工作位阻挡气缸
  41. CIO* m_pWorkBlockDo = nullptr;
  42. CIO* m_pWorkBlockNegDi = nullptr;
  43. CIO* m_pWorkBlockPosDi = nullptr;
  44. //推料气缸
  45. CIO* m_pPushXDo = nullptr;
  46. CIO* m_pPushXNegDi = nullptr;
  47. CIO* m_pPushXPosDi = nullptr;
  48. //推料顶升气缸
  49. CIO* m_pPushZDo = nullptr;
  50. CIO* m_pPushZNegDi = nullptr;
  51. CIO* m_pPushZPosDi = nullptr;
  52. //推料阻挡气缸
  53. CIO* m_pPushBlockDo = nullptr;
  54. CIO* m_pPushBlockNegDi = nullptr;
  55. CIO* m_pPushBlockPosDi = nullptr;
  56. //步进轴绝对运动 实际是相对运动
  57. //工位一 勾料步进电机,将料从勾料处传送到
  58. CAxis* m_pPullStepAxis = nullptr;
  59. //工位二 工位步进电机,获取料以及传送料
  60. CAxis* m_pWorkStepAxis = nullptr;
  61. //工位三 推料步进电机 将料输送到推料位
  62. CAxis* m_pPushStepAxis = nullptr;
  63. //入料检测信号
  64. CIO* m_pFeedInputExistDi = nullptr;
  65. //勾料到位信号
  66. CIO* m_pPullArriveDi = nullptr;
  67. //料到达工作位信号
  68. CIO* m_pWorkArriveDi = nullptr;
  69. //推料到位信号
  70. CIO* m_pPushArriveDi = nullptr;
  71. //出料检测信号
  72. CIO* m_pFeedOutputExistDi = nullptr;
  73. CCylinder* m_pPullXCyl = nullptr;
  74. CCylinder* m_pPullZCyl = nullptr;
  75. CCylinder* m_pPullBlockCyl = nullptr;
  76. //!!!注意顶升气缸上升才能移动推料气缸
  77. CCylinder* m_pPushXCyl = nullptr;
  78. CCylinder* m_pPushZCyl = nullptr;
  79. CCylinder* m_pPushBlockCyl = nullptr;
  80. CCylinder* m_pWorkBlockCyl = nullptr;
  81. double m_dPullDis = 0;
  82. double m_dWorkPullDis = 0;
  83. double m_dWorkStationPushDis = 0;
  84. double m_dPushDis = 0;
  85. };