ICylinder.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef ICYLINDER_H
  2. #define ICYLINDER_H
  3. #include "IIO.h"
  4. /************************************************************************/
  5. //气缸
  6. //后续方法还需要定义
  7. class ICylinder
  8. {
  9. public:
  10. ICylinder(){};
  11. virtual ~ICylinder(){};
  12. virtual void Init(CDigitInput *pDI1, CDigitOutput *pDO1, CDigitInput *pDI2 = nullptr, CDigitOutput *pDO2 = nullptr) = 0;
  13. // {
  14. // m_cylinderOutput = pDO;
  15. // m_cylinderInput = pDI;
  16. // EnableArrivalCheck(false);
  17. // SetCheckTime(0.0);
  18. // }
  19. /**
  20. * @brief CylinderMove气缸运动
  21. * @param bDirection运动方向:true为正,false为负; bArrivalCheck为到位检查判断
  22. * @return 运动是否成功,0为成功,其余返回值为错误码;超时也会返回一个错误码
  23. */
  24. virtual int CylinderMove(bool bDirection, int nCheckTime = 0) = 0;
  25. virtual bool IsArrive(bool bDirection) = 0;
  26. // /**
  27. // * @brief EnableArrivalCheck运动到位检查
  28. // * @param bEnable使能判断到位,true则在每次气缸运动后在给定时间内阻塞判断是否到位;false则不阻塞判断
  29. // * @return
  30. // */
  31. // virtual void EnableArrivalCheck(bool bEnable = false)
  32. // {
  33. // m_bArrivalCheck = bEnable;
  34. // }
  35. // /**
  36. // * @brief SetCheckTime
  37. // * @param time 设置的到位判断时间
  38. // * @return
  39. // */
  40. // virtual void SetCheckTime(double time)
  41. // {
  42. // m_fCheckTime = time;
  43. // }
  44. protected:
  45. //1DO 2DI
  46. //DO输出
  47. CDigitOutput *m_cylinderOutput;
  48. //2个DI输入,判断输入位置
  49. CDigitInput *m_cylinderInput;
  50. // DIOData m_cylinderNegLimit;
  51. // //判断到位检查
  52. // bool m_bArrivalCheck;
  53. // //设置到位检查时间
  54. // double m_fCheckTime;
  55. };
  56. #endif // ICYLINDER_H