📄 arcdlg.cpp
字号:
// ArcDlg.cpp : implementation file
//
#include "stdafx.h"
#include "CSU.h"
#include "ArcDlg.h"
#include "GT400SV.h"
#include "CSUDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CArcDlg dialog
CArcDlg::CArcDlg(CWnd* pParent /*=NULL*/)
: CDialog(CArcDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CArcDlg)
m_angle = 0.0;
m_synacc = 0.0;
m_synvel = 0.0;
m_xcenter = 0.0;
m_ycenter = 0.0;
m_zscope = 0.0;
m_zspeed = 0.0;
m_n = 0;
//}}AFX_DATA_INIT
}
void CArcDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CArcDlg)
DDX_Text(pDX, IDC_EDIT_angle, m_angle);
DDX_Text(pDX, IDC_EDIT_SynAcc, m_synacc);
DDX_Text(pDX, IDC_EDIT_SynVel, m_synvel);
DDX_Text(pDX, IDC_EDIT_xcenter, m_xcenter);
DDX_Text(pDX, IDC_EDIT_ycenter, m_ycenter);
DDX_Text(pDX, IDC_EDIT_Zscope, m_zscope);
DDX_Text(pDX, IDC_EDIT_Zspeed, m_zspeed);
DDX_Text(pDX, IDC_EDIT_n, m_n);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CArcDlg, CDialog)
//{{AFX_MSG_MAP(CArcDlg)
ON_BN_CLICKED(IDC_BUTTON_Arcrun, OnBUTTONArcrun)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CArcDlg message handlers
void CArcDlg::OnBUTTONArcrun()
{
UpdateData(TRUE);
unsigned short sts;
double cnt1[5]={2000,0,0,0,0};
double cnt2[5]={0,2000,0,0,0};
GT_MapAxis(1,cnt1);
GT_MapAxis(2,cnt2);
GT_SetSynAcc(0.00000004*m_synacc);
GT_SetSynVel(0.0002*m_synvel);
GT_Axis(3);
long actl_pos;
GT_GetAtlPos(&actl_pos);
GT_ZeroPos(); //把当前位置置为零位
ZTmotion(m_zscope, m_zspeed); //Z轴先向上移动一段距离
double angle=(m_angle/(m_n-1)); //角度的增量
for(int i=0;i<m_n;i++)
{
GT_ArcXY(m_xcenter,m_ycenter,angle);
GT_GetCrdSts(&sts);
while((sts&0x01)!=0x01)
{
GT_GetCrdSts(&sts);
} //XY平面定位
GT_Axis(3);
GT_ClrSts();
ZTmotion(-m_zscope, m_zspeed); //Z轴移动到滴胶位置
GT_ExOpt(0x1); //滴胶
Sleep(20); //电机转动时间
GT_ExOpt(0x2); //电机停
Sleep(10);
ZTmotion(m_zscope, m_zspeed); //滴完胶后Z轴上移
}
ZTmotion(-m_zscope, m_zspeed);//回原位
MessageBox("运动完成","",MB_OK);
}
void CArcDlg::ZTmotion(double Pos, double speed)
{
long d1=(long)(Pos*Pmm);//位置
double d2=speed*Vmms;//速度
if(d2>=16384||d2<=0)
{
MessageBox("速度超出范围","error",MB_OK);
}
if(d1>=1073741823||d2<=-1073741824)
{
MessageBox("增量值超出范围","error",MB_OK);
}
GT_PrflT();
GT_SetAcc(0.4);
GT_SetVel(d2);
GT_SetPos(d1);
GT_Update();
unsigned short sts;
GT_GetSts(&sts);
while((sts&0x01)!=0x01)
{
GT_GetSts(&sts);
}
GT_ClrSts();
GT_ZeroPos();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -