MachineInterfaceDll.dll新增IO口读写设置。

This commit is contained in:
TAO Cheng
2014-05-12 21:51:02 +08:00
parent 9559827310
commit 58b492b6fb
14 changed files with 412 additions and 113 deletions
@@ -4271,6 +4271,179 @@ SSI_STATUS_MOTION CSO7_Proto::so7_light_set_lamp_state(double dTopLightPercent,d
};
//==================================================================
SSI_STATUS_MOTION CSO7_Proto::so7_GetDIO(int Channel,BYTE& bDISts)
{
char Addr(0);
switch(Channel)
{
case INPORT_J2:
{
Addr=ESO7_CONTROLLER_INPUT_PORT_ADDR;
break;
}
case OUTPORT_J1:
{
Addr=ESO7_CONTROLLER_WOUTPUT_PORT_ADDR;
break;
}
case OUTPORT_J3:
{
Addr=ESO7_CONTROLLER_OUTPUT_PORT_ADDR;
break;
}
case LIMIT_SWITCH_J4:
{
Addr=ESO7_CONTROLLER_LIMIT_SWITCH_ADDR;
break;
}
default:
{
Addr=-1;
break;
}
}
if (Addr>=0)
{
_send_cmd_SO7_CMD_READ_INPUT_PORT_STATUS(Addr);
bDISts=static_cast<BYTE>(g_machine.InPortStatus);
return SSI_STATUS_MOTION_NORMAL;
}
else
{
bDISts=0;
return SSI_STATUS_MOTION_INVALID_PARAMETERS;
}
}
//==================================================================
SSI_STATUS_MOTION CSO7_Proto::so7_SetDO(int Channel,BYTE bDOSts)
{
char cSetIOStatusAddr(0);
char cSetValue(0);
switch(Channel)
{
case OUTPORT_J1:
{
if (bDOSts&HBIT0)
{
_send_cmd_SO7_CMD_COMMON_COMMAND(CT_MOTOR,CT_M_LASE_ON,0);
}
else
{
_send_cmd_SO7_CMD_COMMON_COMMAND(CT_MOTOR,CT_M_LASE_OFF,0);
}
Sleep(5);
if (bDOSts&HBIT1)
{
cSetIOStatusAddr=1;
cSetValue=1;
}
else
{
cSetIOStatusAddr=1;
cSetValue=0;
}
_send_cmd_SO7_CMD_COMMON_COMMAND_DATA(CT_DATA,CT_WRITE_IO_DAT,cSetIOStatusAddr,cSetValue);
Sleep(5);
if (bDOSts&HBIT2)
{
cSetIOStatusAddr=2;
cSetValue=1;
}
else
{
cSetIOStatusAddr=2;
cSetValue=0;
}
_send_cmd_SO7_CMD_COMMON_COMMAND_DATA(CT_DATA,CT_WRITE_IO_DAT,cSetIOStatusAddr,cSetValue);
Sleep(5);
break;
}
case OUTPORT_J3:
{
if (bDOSts&HBIT0)
{
_send_cmd_SO7_CMD_COMMON_COMMAND(CT_MOTOR,CT_M_PROBE_OFF,0);
Sleep(5);
_send_cmd_SO7_CMD_COMMON_COMMAND(CT_MOTOR,CT_LASE_TIMMER_ON,0);
}
else
{
_send_cmd_SO7_CMD_COMMON_COMMAND(CT_MOTOR,CT_M_PROBE_ON,0);
Sleep(5);
_send_cmd_SO7_CMD_COMMON_COMMAND(CT_MOTOR,CT_LASE_TIMMER_OFF,0);
}
Sleep(5);
if (bDOSts&HBIT1)
{
cSetIOStatusAddr=11;
cSetValue=1;
}
else
{
cSetIOStatusAddr=11;
cSetValue=0;
}
_send_cmd_SO7_CMD_COMMON_COMMAND_DATA(CT_DATA,CT_WRITE_IO_DAT,cSetIOStatusAddr,cSetValue);
Sleep(5);
if (bDOSts&HBIT2)
{
cSetIOStatusAddr=12;
cSetValue=1;
}
else
{
cSetIOStatusAddr=12;
cSetValue=0;
}
_send_cmd_SO7_CMD_COMMON_COMMAND_DATA(CT_DATA,CT_WRITE_IO_DAT,cSetIOStatusAddr,cSetValue);
Sleep(5);
if (bDOSts&HBIT3)
{
cSetIOStatusAddr=13;
cSetValue=1;
}
else
{
cSetIOStatusAddr=13;
cSetValue=0;
}
_send_cmd_SO7_CMD_COMMON_COMMAND_DATA(CT_DATA,CT_WRITE_IO_DAT,cSetIOStatusAddr,cSetValue);
Sleep(5);
if (bDOSts&HBIT4)
{
cSetIOStatusAddr=14;
cSetValue=1;
}
else
{
cSetIOStatusAddr=14;
cSetValue=0;
}
_send_cmd_SO7_CMD_COMMON_COMMAND_DATA(CT_DATA,CT_WRITE_IO_DAT,cSetIOStatusAddr,cSetValue);
Sleep(5);
if (bDOSts&HBIT5)
{
cSetIOStatusAddr=15;
cSetValue=1;
}
else
{
cSetIOStatusAddr=15;
cSetValue=0;
}
_send_cmd_SO7_CMD_COMMON_COMMAND_DATA(CT_DATA,CT_WRITE_IO_DAT,cSetIOStatusAddr,cSetValue);
Sleep(5);
break;
}
default:
{
break;
}
}
return SSI_STATUS_MOTION_NORMAL;
}
//********************************************************************************//
//*******************************************************************************//
@@ -4287,7 +4460,10 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_MOVE_X(char SpeedGear)
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = SpeedGear;
TRACE1("[MOVE_X]:%d\n",static_cast<int>(SpeedGear));
if (g_machine.s_machine_config.motion.m_DebugOutputEnable>=1)
{
g_pLogger->SendAndFlushWithTime(_T("Jog X:%d.\n"),SpeedGear);
}
ep_buff[EP_02_CMD_IDX]._size = 0x03;
ep_buff[EP_81_DATA_IDX]._size = 0x03;
@@ -4308,7 +4484,10 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_MOVE_Y(char SpeedGear)
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = SpeedGear;
TRACE1("[MOVE_Y]:%d\n",static_cast<int>(SpeedGear));
if (g_machine.s_machine_config.motion.m_DebugOutputEnable>=1)
{
g_pLogger->SendAndFlushWithTime(_T("Jog Y:%d.\n"),SpeedGear);
}
ep_buff[EP_02_CMD_IDX]._size = 0x03;
ep_buff[EP_81_DATA_IDX]._size = 0x03;
@@ -4329,7 +4508,10 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_MOVE_Z(char SpeedGear)
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = SpeedGear;
TRACE1("[MOVE_Z]:%d\n",static_cast<int>(SpeedGear));
if (g_machine.s_machine_config.motion.m_DebugOutputEnable>=1)
{
g_pLogger->SendAndFlushWithTime(_T("Jog Z:%d.\n"),SpeedGear);
}
ep_buff[EP_02_CMD_IDX]._size = 0x03;
ep_buff[EP_81_DATA_IDX]._size = 0x03;
@@ -57,6 +57,15 @@
#define EIGHT_SEGS 8
#define FIVE_RINGS 5
#define HBIT0 0X01
#define HBIT1 0X02
#define HBIT2 0X04
#define HBIT3 0X08
#define HBIT4 0X10
#define HBIT5 0X20
#define HBIT6 0X40
#define HBIT7 0X80
const long MAX_INTENSITY = 0x3FF;
#define MAXLIGHTVALUE 255
#define MINLIGHTVALUE 1
@@ -453,6 +462,9 @@ public:
SSI_STATUS_MOTION so7_light_set_light();
SSI_STATUS_MOTION so7_light_set_lamp_state(double dTopLightPercent,double dBottomLightPercent,double dCoaxialLightPercent,double dReservedLightPercent,double dRingLightPercent,char cOuterRingLightSwitch,char cInnerRingLightSwitch);
SSI_STATUS_MOTION so7_GetDIO(int Channel,BYTE& bDISts);
SSI_STATUS_MOTION so7_SetDO(int Channel,BYTE bDOSts);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_MOVE_X(char SpeedGear);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_MOVE_Y(char SpeedGear);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_MOVE_Z(char SpeedGear);