增加触发脉冲测试功能。

This commit is contained in:
TAO Cheng
2014-05-20 22:24:31 +08:00
parent a5a196de5b
commit 53b685cd6d
9 changed files with 276 additions and 62 deletions
@@ -4566,3 +4566,7 @@ Usb Port Initialized.
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Init:Open device succeed .
@@ -38,11 +38,11 @@ BEGIN
CONTROL "输出口 (J3)",IDC_RADIO_READ_OUTPUT_PORT2,"Button",BS_AUTORADIOBUTTON,315,169,55,10
EDITTEXT IDC_EDIT_STATUS,247,270,199,117,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
GROUPBOX "CMD",IDC_STATIC,102,12,193,116
CONTROL "Rel",IDC_RADIO_RELATIVE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,139,144,27,8
CONTROL "Abs",IDC_RADIO_ABSOLUTE,"Button",BS_AUTORADIOBUTTON,140,158,28,8
EDITTEXT IDC_EDIT_POSITION,167,149,36,14,ES_AUTOHSCROLL
PUSHBUTTON "Go",IDC_BUTTON_GO,209,149,34,15
PUSHBUTTON "Home",IDC_BUTTON_HOME,261,149,34,15
CONTROL "等间距",IDC_RADIO_SO7_TRIGPULSE_EQDIS,"Button",BS_AUTORADIOBUTTON | WS_GROUP,140,142,41,8
CONTROL "指定位移",IDC_RADIO_SO7_TRIGPULSE_SPECLOCATION,"Button",BS_AUTORADIOBUTTON,140,158,42,8
EDITTEXT IDC_EDIT_SO7_TRIGPULSE_DIS,184,138,36,14,ES_AUTOHSCROLL
PUSHBUTTON "Start",IDC_BUTTON_SO7_TRIGPULSE_START,259,138,34,15
PUSHBUTTON "Stop",IDC_BUTTON_SO7_TRIGPULSE_STOP,259,156,34,15
CONTROL "连续读取",IDC_CHECK_CONTINUOUS_READ_IO_STATUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,380,144,47,10
PUSHBUTTON "读取IO状态",IDC_BUTTON_SO7_READ_IN_PORT_STATUS,378,156,61,14
COMBOBOX IDC_COMBO_OUTPORT_NUMBER,314,189,29,34,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
@@ -161,7 +161,7 @@ BEGIN
PUSHBUTTON "◢",IDC_BUTTON_SO7_MOVE_XR_YB,122,233,25,12
PUSHBUTTON "◤",IDC_BUTTON_SO7_MOVE_XL_YF,71,207,25,12
PUSHBUTTON "◣",IDC_BUTTON_SO7_MOVE_XL_YB,71,233,25,12
GROUPBOX "Rotary",IDC_STATIC,135,129,163,44
GROUPBOX "外触发",IDC_STATIC,135,129,163,44
CONTROL "ON",IDC_CHECK_SO7_TOP_LIGHT_ON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,366,28,26,10
CONTROL "ON",IDC_CHECK_SO7_BOTTOM_LIGHT_ON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,366,42,26,10
CONTROL "ON",IDC_CHECK_SO7_RING_LIGHT_ON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,366,56,26,10
@@ -175,6 +175,9 @@ BEGIN
LTEXT "SEQ NO.",IDC_STATIC,232,69,29,8
PUSHBUTTON "Set SEQ NO.",IDC_BUTTON_SO7_SET_SEQ_NUMBER,230,108,60,15,BS_MULTILINE
PUSHBUTTON "Set Ver NO.",IDC_BUTTON_SO7_SET_VER_NUMBER,230,45,60,15,BS_MULTILINE
PUSHBUTTON "Write",IDC_BUTTON_SO7_TRIGPULSE_WRITE_PARA,224,138,34,15
PUSHBUTTON "Read",IDC_BUTTON_SO7_TRIGPULSE_READ_PARA,224,156,34,15
EDITTEXT IDC_EDIT_SO7_TRIGPULSE_DIS2,184,155,36,14,ES_AUTOHSCROLL
END
IDD_SO7_UTIL_SEND_PARAMETER DIALOGEX 0, 0, 750, 480
@@ -66,7 +66,7 @@ void CSO7_UtilDlg::DoDataExchange(CDataExchange* pDX)
DDX_Text(pDX, IDC_EDIT_X_SCALE_COEFFICIENT, m_cs_XScaleCoeff);
DDX_Text(pDX, IDC_EDIT_Y_SCALE_COEFFICIENT, m_cs_YScaleCoeff);
DDX_Text(pDX, IDC_EDIT_Z_SCALE_COEFFICIENT, m_cs_ZScaleCoeff);
DDX_Text(pDX, IDC_EDIT_POSITION, m_Rotary_Edit_Position);
DDX_Text(pDX, IDC_EDIT_SO7_TRIGPULSE_DIS, m_Rotary_Edit_Position);
DDX_Control(pDX, IDC_BUTTON_SO7_MOVE_X_LEFT, m_Button_MoveX_Left);
DDX_Control(pDX, IDC_BUTTON_SO7_MOVE_X_RIGHT, m_Button_MoveX_Right);
@@ -126,8 +126,8 @@ BEGIN_MESSAGE_MAP(CSO7_UtilDlg, CDialog)
ON_BN_CLICKED(IDC_RADIO_READ_INPUT_PORT, &CSO7_UtilDlg::OnBnClickedRadioReadInputPort)
ON_BN_CLICKED(IDC_RADIO_READ_OUTPUT_PORT, &CSO7_UtilDlg::OnBnClickedRadioReadOutputPort)
ON_BN_CLICKED(IDC_BUTTON_MOTION_PARAMETER, &CSO7_UtilDlg::OnBnClickedButtonMotionParameter)
ON_BN_CLICKED(IDC_BUTTON_HOME, &CSO7_UtilDlg::OnBnClickedButtonHome)
ON_BN_CLICKED(IDC_BUTTON_GO, &CSO7_UtilDlg::OnBnClickedButtonGo)
ON_BN_CLICKED(IDC_BUTTON_SO7_TRIGPULSE_STOP, &CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseStop)
ON_BN_CLICKED(IDC_BUTTON_SO7_TRIGPULSE_START, &CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseStart)
ON_BN_CLICKED(IDC_CHECK_SO7_TOP_LIGHT_ON, &CSO7_UtilDlg::OnBnClickedCheckSo7TopLightOn)
ON_BN_CLICKED(IDC_CHECK_SO7_BOTTOM_LIGHT_ON, &CSO7_UtilDlg::OnBnClickedCheckSo7BottomLightOn)
ON_BN_CLICKED(IDC_CHECK_SO7_RING_LIGHT_ON, &CSO7_UtilDlg::OnBnClickedCheckSo7RingLightOn)
@@ -140,6 +140,8 @@ BEGIN_MESSAGE_MAP(CSO7_UtilDlg, CDialog)
ON_BN_CLICKED(IDC_BUTTON_SO7_SET_SEQ_NUMBER, &CSO7_UtilDlg::OnBnClickedButtonSo7SetSeqNumber)
ON_BN_CLICKED(IDC_BUTTON_SO7_SET_VER_NUMBER, &CSO7_UtilDlg::OnBnClickedButtonSo7SetVerNumber)
ON_BN_CLICKED(IDC_RADIO_READ_LIMIT_SWITCH, &CSO7_UtilDlg::OnBnClickedRadioReadLimitSwitch)
ON_BN_CLICKED(IDC_BUTTON_SO7_TRIGPULSE_WRITE_PARA, &CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseWritePara)
ON_BN_CLICKED(IDC_BUTTON_SO7_TRIGPULSE_READ_PARA, &CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseReadPara)
END_MESSAGE_MAP()
@@ -188,8 +190,8 @@ BOOL CSO7_UtilDlg::OnInitDialog()
m_ReadIOStatusAddr=ESO7_CONTROLLER_LIMIT_SWITCH_ADDR;
UpdateIOAddrCaption();
((CButton *)GetDlgItem(IDC_RADIO_RELATIVE))->SetCheck(true);
((CButton *)GetDlgItem(IDC_RADIO_ABSOLUTE))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_SO7_TRIGPULSE_EQDIS))->SetCheck(true);
((CButton *)GetDlgItem(IDC_RADIO_SO7_TRIGPULSE_SPECLOCATION))->SetCheck(false);
CString csTmp=_T("");
((CComboBox *)GetDlgItem(IDC_COMBO_OUTPORT_NUMBER))->ResetContent();
@@ -348,8 +350,8 @@ void CSO7_UtilDlg::UpdateCtrlsStatus(bool _bEnable)
GetDlgItem(IDC_CHECK_SO7_COAXIAL_LIGHT_ON)->EnableWindow(_bEnable);
GetDlgItem(IDC_CHECK_SO7_SPARE_LIGHT_ON)->EnableWindow(_bEnable);
GetDlgItem(IDC_BUTTON_HOME)->EnableWindow(_bEnable);
GetDlgItem(IDC_BUTTON_GO)->EnableWindow(_bEnable);
GetDlgItem(IDC_BUTTON_SO7_TRIGPULSE_STOP)->EnableWindow(_bEnable);
GetDlgItem(IDC_BUTTON_SO7_TRIGPULSE_START)->EnableWindow(_bEnable);
GetDlgItem(IDC_EDIT_SET_SEQ_NO)->EnableWindow(_bEnable);
GetDlgItem(IDC_BUTTON_SO7_GET_SEQ_NUMBER)->EnableWindow(_bEnable);
GetDlgItem(IDC_BUTTON_SO7_SET_SEQ_NUMBER)->EnableWindow(_bEnable);
@@ -1510,49 +1512,60 @@ void CSO7_UtilDlg::OnBnClickedButtonSo7CncProgram()
}
SetTimer(1,m_ReadAxisIntervalTime,NULL);
}
//=================================================
// Move one revolution 2**23
// When the rotary ֹͣ, take the curr pos - ref pos.
// g_machine.z._pos_fixed._char_[3]
//
void CSO7_UtilDlg::OnBnClickedButtonHome()
//======================================================
void CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseStart()
{
long lMax = 90000; // This value is try and error. there must be a mapping I do not understand.
m_pSO7_Proto->g_machine.x._pos_fixed._long_ = 0;
m_pSO7_Proto->g_machine.y._pos_fixed._long_ = 0;
m_pSO7_Proto->g_machine.z._pos_fixed._long_ = lMax;
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_TO_POS_XYZ(CT_MOVETOXYZ);
Sleep(200);
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_ZSIGNAL_POS_Z();
m_ZsignalPosZ=m_pSO7_Proto->g_machine.z._ZSignal_pos._long_;
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_AXIS_XYZ();
double lZ = m_pSO7_Proto->g_machine.z._scale_pos._long_;
lZ;
// set the home position.
// show the Z position in Angle
// show the signal position in Angle
m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_START();
}
//================================================
// Change Angle to scale
//
void CSO7_UtilDlg::OnBnClickedButtonGo()
//======================================================
void CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseStop()
{
m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_STOP();
}
//======================================================
void CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseWritePara()
{
UpdateData(TRUE);
USES_CONVERSION;
const char* cMove_to_Rotary=T2A(m_Rotary_Edit_Position);
double dPos = atof(cMove_to_Rotary);
if (((CButton *)GetDlgItem(IDC_RADIO_RELATIVE))->GetCheck())
short TrigDis[2]={0};
char ActiveAxis(E_ACTIVE_AXIS_X);
char TrigMode(E_DIS_TRIG_PULSE_EQDIS);
short StartIndex(0);
short ParaNumber(0);
CString csText(_T(""));
GetDlgItem(IDC_EDIT_SO7_TRIGPULSE_DIS)->GetWindowText(csText);
const char* cTxt=T2A(csText);
TrigDis[0]= static_cast<short>(atoi(cTxt));
GetDlgItem(IDC_EDIT_SO7_TRIGPULSE_DIS2)->GetWindowText(csText);
cTxt=T2A(csText);
TrigDis[1] = static_cast<short>(atoi(cTxt));
if (((CButton *)GetDlgItem(IDC_RADIO_SO7_TRIGPULSE_SPECLOCATION))->GetCheck())
{
// m_pSO7_Proto->g_machine.z._pos_fixed._long_ = atoi(cMove_to_Z) - (m_pSO7_Proto->g_machine.z._scale_pos._long_-m_pSO7_Proto->g_machine.z._lSet_Zero_Pos);
dPos;
} else
TrigMode=E_DIS_TRIG_PULSE_SPEC_LOCA;
ParaNumber=2;
}
else
{
// m_pSO7_Proto->g_machine.z._pos_fixed._long_ = atoi(cMove_to_Z) - (m_pSO7_Proto->g_machine.z._scale_pos._long_-m_pSO7_Proto->g_machine.z._lSet_Zero_Pos);
};
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_TO_POS_Z();
TrigMode=E_DIS_TRIG_PULSE_EQDIS;
ParaNumber=1;
}
m_pSO7_Proto->_send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(ActiveAxis,TrigMode,StartIndex,ParaNumber,TrigDis);
m_OutMessage.Format(_T("[Write Trig Para]:R TotalNo=%d"),m_pSO7_Proto->g_machine.TrigPara.TrigTotalNo);
OutputWithScroll(m_OutMessage,m_edMSG);
}
//======================================================
void CSO7_UtilDlg::OnBnClickedButtonSo7TrigpulseReadPara()
{
UpdateData(TRUE);
USES_CONVERSION;
short GetIndex(0);
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(GetIndex);
m_OutMessage.Format(_T("[Read Trig Para]:R Axis=%d,Method=%d,TotalNo=%d,CurIndex=%d,CurPara=%d."),m_pSO7_Proto->g_machine.TrigPara.TrigPulseActiveAxis,
m_pSO7_Proto->g_machine.TrigPara.TrigPulseMethod,m_pSO7_Proto->g_machine.TrigPara.TrigTotalNo,
m_pSO7_Proto->g_machine.TrigPara.TrigCurIndex,m_pSO7_Proto->g_machine.TrigPara.TrigCurPara);
OutputWithScroll(m_OutMessage,m_edMSG);
}
@@ -116,8 +116,8 @@ public:
afx_msg void OnBnClickedRadioReadInputPort();
afx_msg void OnBnClickedRadioReadOutputPort();
afx_msg void OnBnClickedButtonMotionParameter();
afx_msg void OnBnClickedButtonHome();
afx_msg void OnBnClickedButtonGo();
afx_msg void OnBnClickedButtonSo7TrigpulseStop();
afx_msg void OnBnClickedButtonSo7TrigpulseStart();
afx_msg void OnBnClickedCheckSo7TopLightOn();
afx_msg void OnBnClickedCheckSo7BottomLightOn();
afx_msg void OnBnClickedCheckSo7RingLightOn();
@@ -130,4 +130,6 @@ public:
afx_msg void OnBnClickedButtonSo7SetSeqNumber();
afx_msg void OnBnClickedButtonSo7SetVerNumber();
afx_msg void OnBnClickedRadioReadLimitSwitch();
afx_msg void OnBnClickedButtonSo7TrigpulseWritePara();
afx_msg void OnBnClickedButtonSo7TrigpulseReadPara();
};
@@ -701,10 +701,10 @@
#define IDC_RADIO_KEYENCE_LASER_LK_G 1584
#define IDC_BUTTON3 1585
#define IDC_BUTTONIDC_BUTTON_TESA_STAR_MOVETO 1585
#define IDC_BUTTON_HOME 1585
#define IDC_BUTTON_SO7_TRIGPULSE_STOP 1585
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_STORAGEDATA2 1585
#define IDC_BUTTON_INIT_SCAN_KEYENCE_LK_GLASER 1586
#define IDC_BUTTON_GO 1586
#define IDC_BUTTON_SO7_TRIGPULSE_START 1586
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_STORAGEDATA1 1586
#define IDC_BUTTON_HOME2 1586
#define IDC_BUTTON_R2_HOME 1586
@@ -930,12 +930,12 @@
#define IDC_EDIT_SO7_PROGEAM_INTERCAL_TIME_PER_CNC 1822
#define IDC_CHECK_SO7_RING_LIGHT_SEG_ON1 1822
#define IDC_CHECK_SO7_RING_LIGHT_SEG_ON2 1823
#define IDC_EDIT_POSITION 1824
#define IDC_RADIO_RELATIVE 1825
#define IDC_EDIT_SO7_TRIGPULSE_DIS 1824
#define IDC_RADIO_SO7_TRIGPULSE_EQDIS 1825
#define IDC_EDIT_POSITION2 1825
#define IDC_EDIT_R1_TARGET_POSITION 1825
#define IDC_RADIO_ABS 1826
#define IDC_RADIO_ABSOLUTE 1826
#define IDC_RADIO_SO7_TRIGPULSE_SPECLOCATION 1826
#define IDC_EDIT_POSITION3 1826
#define IDC_EDIT_R2_CURRENT_POSITION 1826
#define IDC_KEYENCE_LKG5000_IPADDRESS1 1827
@@ -946,6 +946,7 @@
#define IDC_CHECK_SO7_SPARE_LIGHT_ON 1828
#define IDC_RADIO_R1_RELATIVE 1828
#define IDC_RADIO_R1_ABSOLUTE 1829
#define IDC_EDIT_SO7_TRIGPULSE_DIS2 1829
#define IDC_EDIT_KEYENCE_LKG5000_MSG 1830
#define IDC_RADIO_R2_RELATIVE 1830
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_START_SCAN 1831
@@ -982,6 +983,9 @@
#define IDC_RADIO_ART_PCI8622_MODE_NPTTRIG 1852
#define IDC_EDIT_ART_PCI8622_READ_TIMES 1853
#define IDC_EDIT_ART_PCI8622_GET_DATA_NUMBER 1854
#define IDC_BUTTON_SO7_TRIGPULSE_WRITE_PARA 1854
#define IDC_BUTTON5 1855
#define IDC_BUTTON_SO7_TRIGPULSE_READ_PARA 1855
#define IDC_BUTTON_DIY_EXIT_BUTTON 32740
#define ID_EDIT_SO7_CONFIG_MOTION 32741
@@ -991,7 +995,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 191
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1854
#define _APS_NEXT_CONTROL_VALUE 1855
#define _APS_NEXT_SYMED_VALUE 104
#endif
#endif