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

📄 dotdlg.cpp

📁 三轴车床的控制系统
💻 CPP
字号:
// DotDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CSU.h"
#include "DotDlg.h"

#include "GT400SV.h"
#include "CSUDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDotDlg dialog


CDotDlg::CDotDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDotDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDotDlg)
	m_synacc = 0.0;
	m_synvel = 0.0;
	m_xendpos = 0.0;
	m_yendpos = 0.0;
	m_zscope = 0.0;
	m_zspeed = 0.0;
	//}}AFX_DATA_INIT
}


void CDotDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDotDlg)
	DDX_Text(pDX, IDC_EDIT_SynAcc, m_synacc);
	DDX_Text(pDX, IDC_EDIT_SynVel, m_synvel);
	DDX_Text(pDX, IDC_EDIT_xendpos, m_xendpos);
	DDX_Text(pDX, IDC_EDIT_yendpos, m_yendpos);
	DDX_Text(pDX, IDC_EDIT_Zscope, m_zscope);
	DDX_Text(pDX, IDC_EDIT_Zspeed, m_zspeed);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDotDlg, CDialog)
	//{{AFX_MSG_MAP(CDotDlg)
	ON_BN_CLICKED(IDC_Dotrun_BUTTON, OnDotrunBUTTON)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDotDlg message handlers

void CDotDlg::OnDotrunBUTTON() 
{
		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轴先向上移动一段距离

		GT_LnXY(m_xendpos,m_yendpos); 
	    GT_GetCrdSts(&sts);
		while((sts&0x01)!=0x01)
		{	
	  	GT_GetCrdSts(&sts);
        }                               //XY平面定位


		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); //回原位	
}

void CDotDlg::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 + -