123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- #pragma once
- #include <mutex>
- #include "JAxis.h"
- #include <vector>
- struct CoordPara
- {
- int m_nCoordNo;
- std::string m_sCoordName;
- int m_nCardType;
- int m_nCardIndex;
- std::string stAxisName[4]={};
- double dMaxCoordVel;
- double dMaxCoordAcc;
- bool bAxisLimitMode = true;
- double dJerkCoef = 0;
- double dJerkTime = 5;
- double dRadiusRatio = 50;
- double dLookAheadTime = 0.01;
- };
- enum enum_Coord_Axis
- {
- enum_CoordX = 0,
- enum_CoordY,
- enum_CoordZ,
- enum_CoordR
- };
- class ICoord
- {
- public:
-
- ICoord() {};
- virtual bool InitCoord(HANDLE hCtrlComm) = 0;
- virtual void SetCrdPrm(CoordPara& stCoordPara)
- {
- m_stCrdPara = stCoordPara;
- }
- virtual CoordPara GetCrdPara()
- {
- return m_stCrdPara;
- }
- virtual int GetAxisNum()
- {
- return m_nAxisNum;
- }
-
-
- virtual ~ICoord() {};
-
- virtual int SetToCrdMode() = 0;
-
- virtual int SetToPTPMode() = 0;
-
- virtual int StopAll() = 0;
-
- virtual int CrdStart() = 0;
- virtual int CrdClear() = 0;
- virtual int SetCrdJerk(double dJerk) = 0;
-
-
- virtual int LnXY(double dX, double dY, double dSynVel, double dSynAcc,
- double dSynJerk, double dEndVel = 0) = 0;
- virtual int LnXYG0(double dX, double y, double dSynVel, double dSynAcc,
- double dSynJerk) = 0;
- virtual int LnXYZ(double dX, double dY, double dZ, double dSynVel, double dSynAcc,
- double dSynJerk, double dEndVel = 0) = 0;
- virtual int LnXYZG0(double dX, double dY, double dZ, double dSynVel, double dSynAcc,double dSynJerk) = 0;
- virtual int LnXYZR(double dX, double dY, double dZ, double dR,double dSynVel,
- double dSynAcc,double dSynJerk,double dEndVel = 0) = 0;
- virtual int LnXYZRG0(double dX, double dY, double dZ, double dR,double dSynVel,
- double dSynAcc,double dSynJerk) = 0;
-
- virtual int LnXY(double dX, double dY, double dVelRatio = 1.0) = 0;
- virtual int LnXYG0(double dX, double dY, double dVelRatio = 1.0) = 0;
- virtual int LnXYZ(double dX, double dY, double dZ, double dVelRatio = 1.0) = 0;
- virtual int LnXYZG0(double dX, double dY, double dZ, double dVelRatio = 1.0) = 0;
- virtual int LnXYZR(double dX, double dY, double dZ, double dR, double dVelRatio = 1.0) = 0;
- virtual int LnXYZRG0(double dX, double dY, double dZ, double dR, double dVelRatio = 1.0) = 0;
-
-
- virtual int ArcXYC(double dXCenter, double dYCenter, double dXEnd, double dYEnd,
- double dSynVel, double dSynAcc, double dSynJerk, double dEndVel = 0) = 0;
- virtual int ArcXYCGO(double dXCenter, double dYCenter, double dXEnd, double dYEnd,
- double dsynVel, double dSynAcc, double dSynJerk) = 0;
- virtual int ArcXY(double dXStart, double dYStart, double dXEnd, double dYEnd,
- double dSynVel, double dSynAcc, double dSynJerk, double dEndVel = 0) = 0;
- virtual int ArcXYG0(double dXStart, double dYStart, double dXEnd, double dYEnd,
- double dSynVel, double dSynAcc, double dSynJerk) = 0;
-
- virtual int ArcXYC(double dXCenter, double dYCenter, double dXEnd, double dYEnd,
- double dVelRatio = 1.0) = 0;
- virtual int ArcXYCGO(double dXCenter, double dYCenter, double dXEnd, double dYEnd,
- double dVelRatio = 1.0) = 0;
- virtual int ArcXY(double dXStart, double dYStart, double dXEnd, double dYEnd,
- double dVelRatio = 1.0) = 0;
- virtual int ArcXYG0(double dXStart, double dYStart, double dXEnd, double dYEnd,
- double dVelRatio = 1.0) = 0;
-
-
- virtual int ArcXYZC(double dXCenter, double dYCenter, double dZCenter, double dXEnd,
- double dYEnd, double dZEnd, double dSynVel, double dSynAcc, double dSynJerk, double dEndVel = 0) = 0;
- virtual int ArcXYZCGO(double dXCenter, double dYCenter, double dZCenter, double dXEnd,
- double dYEnd, double dZEnd, double dSynVel, double dSynAcc, double dSynJerk) = 0;
- virtual int ArcXYZ(double dXStart, double dYStart, double dZStart, double dXEnd,
- double dYEnd, double dZEnd, double dSynVel, double dSynAcc, double dSynJerk, double dEndVel = 0) = 0;
- virtual int ArcXYZG0(double dXStart, double dYStart, double dZStart, double dXEnd,
- double dYEnd, double dZEnd, double dSynVel, double dSynAcc, double dSynJerk) = 0;
-
- virtual int ArcXYZC(double dXCenter, double dYCenter, double dZCenter, double dXEnd,
- double dYEnd, double dZEnd, double dVelRatio = 1.0) = 0;
- virtual int ArcXYZCGO(double dXCenter, double dYCenter, double dZCenter, double dXEnd,
- double dYEnd, double dZEnd, double dVelRatio = 1.0) = 0;
- virtual int ArcXYZ(double dXStart, double dYStart, double dZStart, double dXEnd,
- double dYEnd, double dZEnd, double dVelRatio = 1.0) = 0;
- virtual int ArcXYZG0(double dXStart, double dYStart, double dZStart, double dXEnd,
- double dYEnd, double dZEnd, double dVelRatio = 1.0) = 0;
-
- virtual int BufDelay(int nTimeMs) = 0;
-
- virtual int BufMove(int nAxis, double dPos, double dVel, double dAcc, double dJerk, bool bWaitMove) = 0;
-
- virtual int BufGear(int nAxis, double dStartPos, double dMoveDist) = 0;
-
- virtual int BufDO(unsigned short doMask, unsigned short doValue) = 0;
-
- virtual int BufDA(short channel,short daValue) = 0;
-
- virtual std::string ErrCodeTransfer(int nRtn){return "";};
-
- virtual bool IsCrdMoving() = 0;
- virtual bool InICoordMode()
- {
- return m_bIsCrdMode;
- };
- public:
- JAxis* m_jAxis[4] = {nullptr};
- protected:
-
- virtual int CheckRange(std::vector<double> vAxisPos) = 0;
- protected:
- bool m_bIsCrdMode = 0;
- int m_nSegNum = 0;
- CoordPara m_stCrdPara;
- int m_nAxisNum = 0;
- std::mutex m_mutex;
- };
|