⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arcdlg.cpp

📁 三轴车床的控制系统
💻 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 + -