123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- #pragma once
- #include "dt.h"
- #include "CHardware.h"
- #include "JAxis.h"
- //#define WIN32_LEAN_AND_MEAN
- #ifdef C_AXIS_EXPORTS
- #define C_AXIS_DLL_API __declspec(dllexport)
- #else
- #define C_AXIS_DLL_API //__declspec(dllimport)
- #endif
- enum SPEED {
- FAST=10, //快速
- MEDIUM=5, //中速
- SLOW=2 //慢速
- };
- #define SYNC true //等待到位
- #define NOSYNC false //不待待到位
- #define MOVEING 1
- //#define FORCE_BUFFER_NO 6
- //
- //#define FORCE_SPRING_BUFFER_NO 10
- class C_AXIS_DLL_API CAxis
- {
- public:
- enum AXIS_TYPE { X = 0, Y, Z, R, FORCE };
- private:
- AXIS_TYPE m_eAxisType = AXIS_TYPE::X;
- string m_strAxisType;
- string m_strModuleType;
- JAxis* m_pAxis = nullptr;
- string m_strAxisName = "";
- INT m_iUse = 0;
- bool m_bIsInitSuccess = false;
- UINT m_iHomeTime = 100000; //回零等待时间(秒)
- UINT m_iFastTime = 10000; //快速等待时间(秒)
- UINT m_iMediumTime = 50000; //中速等待时间(秒)
- UINT m_iSlowTime = 100000; //慢速等待时间(秒)
- UINT m_iLastWaitTime = 100000; //上次移动的等待时间
- UINT m_iCommonWaitTime = 100000; //其他情况等待事件
- unsigned long m_lStartSysTime; //开始移动的系统时间
- bool m_bEnable = false; //运控卡禁止/启用
- public:
- CAxis();
- LONG Init(JAxis* pAxis, ns_db::AXIS_LIST_STRUCT *pAxisStruct);
- string GetAxisName() {return m_strAxisName;};
- string GetModuleType() { return m_strModuleType; };
- string GetStringAxisType() { return m_strAxisType; };
- string GetStringModuleType() { return m_strModuleType; };
- AXIS_TYPE GetAxisType() { return m_eAxisType; };
- LONG GetAxisStatus(AxisStatus& axisStatus);
- LONG GetActualPos(double &pos); //反馈位置
- LONG AxisOn();
- LONG AxisOff();
- LONG GetProfilePos(double& dProfilePos); //指令位置
- LONG Sync();
- LONG Stop(AxisStopMode eStopMode = AXIS_SMOOTH_STOP);
- LONG CheckDone();
- LONG Home(bool bSync = SYNC);
- LONG Move_PassPosReturn(double dDist, double dPassDist, SPEED speed = FAST);
- LONG MoveTo_PassPosReturn(double dPos, double dPassPos, SPEED speed = FAST);
- LONG Move(double dDist, SPEED speed = FAST, bool bSync = SYNC);
- LONG MoveTo(double dPos, SPEED speed = FAST, bool bSync = SYNC);
- LONG MoveTo(double dPos, double speed, bool bSync = SYNC);
- LONG Move(double dPos, double speed, bool bSync = SYNC);
- LONG MoveForceCurrent(int nTorqueRatio, int nReachTime = 50, int nStopTime = 10);
- LONG GetProfileCurrent(double& dProfileTorque); //获取指令电流
- LONG GetActualCurrent(double& dProfileTorque); //获取反馈电流
- LONG SetStopDec(double val, double val1);
- LONG SetBufferParamF(int nBufferNo, std::string sParamFName, double dDoubleParam);
- LONG GetBufferParamF(int nBufferNo, std::string sParamFName, double& dDoubleParam);
- LONG SetBufferParam(int nBufferNo, std::string sParamFName, int dDoubleParam);
- LONG GetBufferParam(int nBufferNo, std::string sParamFName, int& dDoubleParam);
- LONG WriteSerialValue(std::string sSerial, std::any tValue);
- LONG WirteSocketValue(std::string ascii, std::any tValue);
- //LONG RunForcerBuffer(); //运行力控buffer,不断判断弹簧压合到特定位置,到特定位置控制力控轴停下来
- //LONG RunSpringForcerBuffer(); //运行弹簧力控buffer,循环判断多段弹簧压合位置,每次到压合位置Z轴停下来
- LONG RunBuffer(int id);
- };
|