📄 movetest.cpp
字号:
m_dbXHighSpeed=atof(m_sXHighSpeed);
m_dbXLowSpeed=atof(m_sXLowSpeed);
m_dbXStep=atof(m_sXStep);
m_dbYaccel=atof(m_sYaccel);
m_nYAxisNum=atoi(m_sYAxisNum);
m_dbYHighSpeed=atof(m_sYHighSpeed);
m_dbYLowSpeed=atof(m_sYLowSpeed);
m_dbYStep=atof(m_sYStep);
m_dbZaccel=atof(m_sZaccel);
m_nZAxisNum=atoi(m_sZAxisNum);
m_dbZHighSpeed=atof(m_sZHighSpeed);
m_dbZLowSpeed=atof(m_sZLowSpeed);
m_dbZStep=atof(m_sZStep);
//直线插补运动参数转换
m_nLAaxisNum=atoi(m_sLAaxisNum);
m_dbLaccel=atof(m_sLaccel);
m_dbLAstep=atof(m_sLAstep);
m_dbLHighSpeed=atof(m_sLHighSpeed);
m_dbLLowSpeed=atof(m_sLLowSpeed);
m_nLXaxisNum=atoi(m_sLXaxisNum);
m_dbLXstep=atof(m_sLXstep);
m_nLYaxisNum=atof(m_sLYaxisNum);
m_dbLYstep=atof(m_sLYstep);
m_nLZaxisNum=atof(m_sLZaxisNum);
m_dbLZstep=atof(m_sLZstep);
//圆弧插补运动参数转换
m_dbCircleAccel=atof(m_sCircleAccel);
m_dbCircleHighSpeed=atof(m_sCircleHighSpeed);
m_dbCircleLowSpeed=atof(m_sCircleLowSpeed);
m_dbCircleAngle=atof(m_sCircleAngle);
m_dbCircleJingDu=atof(m_sCircleJingDu);
m_dbCirclebili=atof(m_sCirclebili);
m_dbCircleXorign=atof(m_sCircleXorign);
m_dbCircleYorign=atof(m_sCircleYorign);
m_nCircleXAxis=atoi(m_sCircleXAxis);
m_nCircleYAxis=atoi(m_sCircleYAxis);
}
//////////////////////////////////////////////////////////////////////////
//函数功能:直线运动形式为点位运动
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnRadPmove()
{
// TODO: Add your control notification handler code here
m_nLineMoveStyle=0;
}
//////////////////////////////////////////////////////////////////////////
//函数功能:直线运动形式为连续运动
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnRadVmove()
{
// TODO: Add your control notification handler code here
m_nLineMoveStyle=1;
}
//////////////////////////////////////////////////////////////////////////
//函数功能:实现紧急停止功能
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnSuddenstop()
{
// TODO: Add your control notification handler code here
int i;
for(i=0;i<4;i++)
{
sudden_stop(i+1);
}
}
//////////////////////////////////////////////////////////////////////////
//函数功能:实现复位功能
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnReset()
{
// TODO: Add your control notification handler code here
int i;
for(i=0;i<4;i++)
{
reset_pos(i+1);
}
}
//////////////////////////////////////////////////////////////////////////
//函数功能:实现缓停功能只对快速运动有效
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnDecelstop()
{
// TODO: Add your control notification handler code here
int i;
for(i=0;i<4;i++)
{
decel_stop(i+1);
}
}
//////////////////////////////////////////////////////////////////////////
//函数功能:实现暂停功能
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnButtonPause()
{
// TODO: Add your control notification handler code here
move_pause(1);
move_pause(2);
move_pause(3);
move_pause(4);
}
//////////////////////////////////////////////////////////////////////////
//函数功能:实现暂停功能
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnButtonResume()
{
// TODO: Add your control notification handler code here
move_resume(1);
move_resume(2);
move_resume(3);
move_resume(4);
}
//////////////////////////////////////////////////////////////////////////
//函数功能:刷新运动界面,动态显示运动轴的参数信息
//////////////////////////////////////////////////////////////////////////
void CMoveTest::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
get_abs_pos(1,&m_dbXPos);
get_abs_pos(2,&m_dbYPos);
get_abs_pos(3,&m_dbZPos);
get_abs_pos(4,&m_dbAPos);
m_sXPos.Format("%f",m_dbXPos);
m_sYPos.Format("%f",m_dbYPos);
m_sZPos.Format("%f",m_dbZPos);
m_sAPos.Format("%f",m_dbAPos);
GetDlgItem(IDC_EDIT_XPOS)->SetWindowText(m_sXPos);
GetDlgItem(IDC_EDIT_YPOS)->SetWindowText(m_sYPos);
GetDlgItem(IDC_EDIT_ZPOS)->SetWindowText(m_sZPos);
GetDlgItem(IDC_EDIT_APOS)->SetWindowText(m_sAPos);
m_dbXSpeed=get_rate(1);
m_dbYSpeed=get_rate(2);
m_dbZSpeed=get_rate(3);
m_dbASpeed=get_rate(4);
m_sXSpeed.Format("%f",m_dbXSpeed);
m_sYSpeed.Format("%f",m_dbYSpeed);
m_sZSpeed.Format("%f",m_dbZSpeed);
m_sASpeed.Format("%f",m_dbASpeed);
GetDlgItem(IDC_EDIT_XSPEED)->SetWindowText(m_sXSpeed);
GetDlgItem(IDC_EDIT_YSPEED)->SetWindowText(m_sYSpeed);
GetDlgItem(IDC_EDIT_ZSPEED)->SetWindowText(m_sZSpeed);
GetDlgItem(IDC_EDIT_ASPEED)->SetWindowText(m_sASpeed);
get_encoder(1,&m_lXBack);
get_encoder(2,&m_lYBack);
get_encoder(3,&m_lZBack);
get_encoder(4,&m_lABack);
m_sXBack.Format("%d",m_lXBack);
m_sYBack.Format("%d",m_lYBack);
m_sZBack.Format("%d",m_lZBack);
m_sABack.Format("%d",m_lABack);
GetDlgItem(IDC_EDIT_XBACK)->SetWindowText(m_sXBack);
GetDlgItem(IDC_EDIT_YBACK)->SetWindowText(m_sYBack);
GetDlgItem(IDC_EDIT_ZBACK)->SetWindowText(m_sZBack);
GetDlgItem(IDC_EDIT_ABACK)->SetWindowText(m_sABack);
CFormView::OnTimer(nIDEvent);
}
void CMoveTest::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
//CMPC2810DemoDoc *pDoc=GetDocument();
//初始化运动参数
InitParam();
CreateTab();
SetTabContentStatus(0);
//////////////////////////////////////////////////////////////////////////
//启动定时器
SetTimer(2,50,NULL);
m_pParentWnd = (CMainFrame*)AfxGetMainWnd();
m_pDoc = (CMPC2810DemoDoc *)(m_pParentWnd->GetActiveDocument());
m_nXAxisNum = m_pDoc->m_nXAxisNum;
m_dbXLowSpeed = m_pDoc->m_dbXLowSpeed;
m_dbXStep = m_pDoc->m_dbXStep;
m_dbXHighSpeed = m_pDoc->m_dbXHighSpeed;
m_dbXaccel = m_pDoc->m_dbXaccel;
m_nYAxisNum = m_pDoc->m_nYAxisNum;
m_dbYLowSpeed = m_pDoc->m_dbYLowSpeed;
m_dbYStep = m_pDoc->m_dbYStep;
m_dbYHighSpeed = m_pDoc->m_dbYHighSpeed;
m_dbYaccel = m_pDoc->m_dbYaccel;
m_nZAxisNum = m_pDoc->m_nZAxisNum;
m_dbZLowSpeed = m_pDoc->m_dbZLowSpeed;
m_dbZStep = m_pDoc->m_dbZStep;
m_dbZHighSpeed = m_pDoc->m_dbZHighSpeed;
m_dbZaccel = m_pDoc->m_dbZaccel;
m_nAAxisNum = m_pDoc->m_nAAxisNum;
m_dbALowSpeed = m_pDoc->m_dbALowSpeed;
m_dbAStep = m_pDoc->m_dbAStep;
m_dbAHighSpeed = m_pDoc->m_dbAHighSpeed;
m_dbAaccel = m_pDoc->m_dbAaccel;
m_nLXaxisNum = m_pDoc->m_nLXaxisNum;
m_dbLXstep = m_pDoc->m_dbLXstep;
m_nLYaxisNum = m_pDoc->m_nLYaxisNum;
m_dbLYstep = m_pDoc->m_dbLYstep;
m_nLZaxisNum = m_pDoc->m_nLZaxisNum;
m_dbLZstep = m_pDoc->m_dbLZstep;
m_nLAaxisNum = m_pDoc->m_nLAaxisNum;
m_dbLAstep = m_pDoc->m_dbLAstep;
m_dbLLowSpeed = m_pDoc->m_dbLLowSpeed;
m_dbLHighSpeed = m_pDoc->m_dbLHighSpeed;
m_dbLaccel = m_pDoc->m_dbLaccel;
m_dbCircleAngle = m_pDoc->m_dbCircleAngle;
m_dbCircleJingDu = m_pDoc->m_dbCircleJingDu;
m_dbCirclebili = m_pDoc->m_dbCirclebili;
m_dbCircleXorign = m_pDoc->m_dbCircleXorign;
m_dbCircleYorign = m_pDoc->m_dbCircleYorign;
m_nCircleXAxis = m_pDoc->m_nCircleXAxis;
m_nCircleYAxis = m_pDoc->m_nCircleYAxis;
m_dbCircleLowSpeed = m_pDoc->m_dbCircleLowSpeed;
m_dbCircleHighSpeed = m_pDoc->m_dbCircleHighSpeed;
m_dbCircleAccel = m_pDoc->m_dbCircleAccel;
((CButton*)GetDlgItem(IDC_RAD_CONSPEED))->SetCheck(1);
((CButton*)GetDlgItem(IDC_RAD_PMOVE))->SetCheck(1);
((CButton*)GetDlgItem(IDC_RAD_ONEAXIS))->SetCheck(1);
((CButton*)GetDlgItem(IDC_RAD_LCONSPEED))->SetCheck(1);
((CButton*)GetDlgItem(IDC_RAD_LTWONUM))->SetCheck(1);
((CButton*)GetDlgItem(IDC_RAD_CLCONSPEED))->SetCheck(1);
m_sXAxisNum.Format("%d",m_nXAxisNum);
m_sXLowSpeed.Format("%0.1lf", m_dbXLowSpeed);
m_sXStep.Format("%0.1f",m_dbXStep);
m_sXHighSpeed.Format("%0.1f",m_dbXHighSpeed);
m_sXaccel.Format("%0.1f",m_dbXaccel);
m_sYAxisNum.Format("%d",m_nYAxisNum);
m_sYLowSpeed.Format("%0.1lf", m_dbYLowSpeed);
m_sYStep.Format("%0.1f",m_dbYStep);
m_sYHighSpeed.Format("%0.1f",m_dbYHighSpeed);
m_sYaccel.Format("%0.1f",m_dbYaccel);
m_sZAxisNum.Format("%d",m_nZAxisNum);
m_sZLowSpeed.Format("%0.1lf", m_dbZLowSpeed);
m_sZStep.Format("%0.1f",m_dbZStep);
m_sZHighSpeed.Format("%0.1f",m_dbZHighSpeed);
m_sZaccel.Format("%0.1f",m_dbZaccel);
m_sAAxisNum.Format("%d",m_nAAxisNum);
m_sALowSpeed.Format("%0.1lf", m_dbXLowSpeed);
m_sAStep.Format("%0.1f",m_dbXStep);
m_sAHighSpeed.Format("%0.1f",m_dbXHighSpeed);
m_sAAccel.Format("%0.1f",m_dbAaccel);
m_sLLowSpeed.Format("%0.1f",m_dbLLowSpeed);
m_sLHighSpeed.Format("%0.1f",m_dbLHighSpeed);
m_sLaccel.Format("%0.1f",m_dbLaccel);
m_sLXaxisNum.Format("%d",m_nLXaxisNum);
m_sLXstep.Format("%0.1f",m_dbLXstep);
m_sLYaxisNum.Format("%d",m_nLYaxisNum);
m_sLYstep.Format("%0.1f",m_dbLYstep);
m_sLZaxisNum.Format("%d",m_nLZaxisNum);
m_sLZstep.Format("%0.1f",m_dbLZstep);
m_sLAaxisNum.Format("%d",m_nLAaxisNum);
m_sLAstep.Format("%0.1f",m_dbLAstep);
m_sCircleLowSpeed.Format("%0.1f",m_dbCircleLowSpeed);
m_sCircleHighSpeed.Format("%0.1f",m_dbCircleHighSpeed);
m_sCircleAccel.Format("%0.1f",m_dbCircleAccel);
m_sCircleAngle.Format("%0.1f",m_dbCircleAngle);
m_sCircleJingDu.Format("%0.1f",m_dbCircleJingDu);
m_sCirclebili.Format("%0.1f",m_dbCirclebili);
m_sCircleXorign.Format("%0.1f",m_dbCircleXorign);
m_sCircleYorign.Format("%0.1f",m_dbCircleYorign);
m_sCircleXAxis.Format("%d",m_nCircleXAxis);
m_sCircleYAxis.Format("%d",m_nCircleYAxis);
GetDlgItem(IDC_EDIT_XAXIS)->SetWindowText(m_sXAxisNum);
GetDlgItem(IDC_EDIT_XLOWSPD)->SetWindowText(m_sXLowSpeed);
GetDlgItem(IDC_EDIT_XHIGHSPD)->SetWindowText(m_sXHighSpeed);
GetDlgItem(IDC_EDIT_XSTEP)->SetWindowText(m_sXStep);
GetDlgItem(IDC_EDIT_XACCEL)->SetWindowText(m_sXaccel);
GetDlgItem(IDC_EDIT_YAXIS)->SetWindowText(m_sYAxisNum);
GetDlgItem(IDC_EDIT_YLOWSPD)->SetWindowText(m_sYLowSpeed);
GetDlgItem(IDC_EDIT_YHIGHSPD)->SetWindowText(m_sYHighSpeed);
GetDlgItem(IDC_EDIT_YSTEP)->SetWindowText(m_sYStep);
GetDlgItem(IDC_EDIT_YACCEL)->SetWindowText(m_sYaccel);
GetDlgItem(IDC_EDIT_ZAXIS)->SetWindowText(m_sZAxisNum);
GetDlgItem(IDC_EDIT_ZLOWSPD)->SetWindowText(m_sZLowSpeed);
GetDlgItem(IDC_EDIT_ZHIGHSPD)->SetWindowText(m_sZHighSpeed);
GetDlgItem(IDC_EDIT_ZSTEP)->SetWindowText(m_sZStep);
GetDlgItem(IDC_EDIT_ZACCEL)->SetWindowText(m_sZaccel);
GetDlgItem(IDC_EDIT_AAXIS)->SetWindowText(m_sAAxisNum);
GetDlgItem(IDC_EDIT_ALOWSPD)->SetWindowText(m_sALowSpeed);
GetDlgItem(IDC_EDIT_AHIGHSPD)->SetWindowText(m_sAHighSpeed);
GetDlgItem(IDC_EDIT_ASTEP)->SetWindowText(m_sAStep);
GetDlgItem(IDC_EDIT_AACCEL)->SetWindowText(m_sAAccel);
GetDlgItem(IDC_EDIT_LLOWSPD)->SetWindowText(m_sLLowSpeed);
GetDlgItem(IDC_EDIT_LHIGHSPD)->SetWindowText(m_sLHighSpeed);
GetDlgItem(IDC_EDIT_LACCEL)->SetWindowText(m_sLaccel);
GetDlgItem(IDC_EDIT_LXAXIS)->SetWindowText(m_sLXaxisNum);
GetDlgItem(IDC_EDIT_LYAXIS)->SetWindowText(m_sLYaxisNum);
GetDlgItem(IDC_EDIT_LZAXIS)->SetWindowText(m_sLZaxisNum);
GetDlgItem(IDC_EDIT_LAAXIS)->SetWindowText(m_sLAaxisNum);
GetDlgItem(IDC_EDIT_LXSTEP)->SetWindowText(m_sLXstep);
GetDlgItem(IDC_EDIT_LYSTEP)->SetWindowText(m_sLYstep);
GetDlgItem(IDC_EDIT_LZSTEP)->SetWindowText(m_sLZstep);
GetDlgItem(IDC_EDIT_LASTEP)->SetWindowText(m_sLAstep);
GetDlgItem(IDC_EDIT_CLLOWSPD)->SetWindowText(m_sCircleLowSpeed);
GetDlgItem(IDC_EDIT_CLHIGHSPD)->SetWindowText(m_sCircleHighSpeed);
GetDlgItem(IDC_EDIT_CLACCEL)->SetWindowText(m_sCircleAccel);
GetDlgItem(IDC_EDIT_CXAXIS)->SetWindowText(m_sCircleXAxis);
GetDlgItem(IDC_EDIT_CYAXIS)->SetWindowText(m_sCircleYAxis);
GetDlgItem(IDC_EDIT_CLXORIGN)->SetWindowText(m_sCircleXorign);
GetDlgItem(IDC_EDIT_CLYORIGN)->SetWindowText(m_sCircleYorign);
GetDlgItem(IDC_EDIT_CLANGLE)->SetWindowText(m_sCircleAngle);
GetDlgItem(IDC_EDIT_CLRANGE)->SetWindowText(m_sCircleJingDu);
GetDlgItem(IDC_EDIT_CLSCAN)->SetWindowText(m_sCirclebili);
UpdateData(FALSE);
}
BOOL CMoveTest::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
// CString strSpeed;
UpdateData(TRUE);
// strSpeed= m_sXLowSpeed;
// m_dbXLowSpeed=atoi(m_sXLowSpeed);
ChangeData();
m_pDoc->m_nXAxisNum = m_nXAxisNum;
m_pDoc->m_dbXLowSpeed=m_dbXLowSpeed;
m_pDoc->m_dbXStep = m_dbXStep;
m_pDoc->m_dbXHighSpeed = m_dbXHighSpeed;
m_pDoc->m_dbXaccel = m_dbXaccel ;
m_pDoc->m_nYAxisNum = m_nYAxisNum;
m_pDoc->m_dbYLowSpeed = m_dbYLowSpeed;
m_pDoc->m_dbYStep=m_dbYStep;
m_pDoc->m_dbYHighSpeed = m_dbYHighSpeed;
m_pDoc->m_dbYaccel = m_dbYaccel;
m_pDoc->m_nZAxisNum = m_nZAxisNum;
m_pDoc->m_dbZLowSpeed = m_dbZLowSpeed;
m_pDoc->m_dbZStep = m_dbZStep;
m_pDoc->m_dbZHighSpeed = m_dbZHighSpeed;
m_pDoc->m_dbZaccel = m_dbZaccel;
m_pDoc->m_nAAxisNum = m_nAAxisNum;
m_pDoc->m_dbALowSpeed = m_dbALowSpeed;
m_pDoc->m_dbAStep = m_dbAStep;
m_pDoc->m_dbAHighSpeed = m_dbAHighSpeed;
m_pDoc->m_dbAaccel = m_dbAaccel;
m_pDoc->m_nLXaxisNum = m_nLXaxisNum;
m_pDoc->m_dbLXstep = m_dbLXstep;
m_pDoc->m_nLYaxisNum = m_nLYaxisNum;
m_pDoc->m_dbLYstep = m_dbLYstep;
m_pDoc->m_nLZaxisNum = m_nLZaxisNum;
m_pDoc->m_dbLZstep = m_dbLZstep;
m_pDoc->m_nLAaxisNum = m_nLAaxisNum;
m_pDoc->m_dbLAstep = m_dbLAstep;
m_pDoc->m_dbLLowSpeed = m_dbLLowSpeed;
m_pDoc->m_dbLHighSpeed = m_dbLHighSpeed;
m_pDoc->m_dbLaccel = m_dbLaccel;
m_pDoc->m_dbCircleAngle = m_dbCircleAngle;
m_pDoc->m_dbCircleJingDu = m_dbCircleJingDu;
m_pDoc->m_dbCirclebili = m_dbCirclebili;
m_pDoc->m_dbCircleXorign = m_dbCircleXorign;
m_pDoc->m_dbCircleYorign = m_dbCircleYorign;
m_pDoc->m_nCircleXAxis = m_nCircleXAxis;
m_pDoc->m_nCircleYAxis = m_nCircleYAxis;
m_pDoc->m_dbCircleLowSpeed = m_dbCircleLowSpeed;
m_pDoc->m_dbCircleHighSpeed = m_dbCircleHighSpeed;
m_pDoc->m_dbCircleAccel= m_dbCircleAccel;
// m_sXLowSpeed=strSpeed;
// UpdateData(FALSE);
return CFormView::DestroyWindow();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -