208 lines
8.7 KiB
C++
208 lines
8.7 KiB
C++
|
#include "Axis.h"
|
||
|
#include "../config/ConfigManager.h"
|
||
|
#include "../global.h"
|
||
|
|
||
|
PLCAxis::PLCAxis(SysParamWrapper* params, StateCtrlWrapper* ctrl)
|
||
|
{
|
||
|
m_Mold = new AxisT<MainAxisState>();
|
||
|
m_MoldSlave = new AxisT<SlaveAxisState>();
|
||
|
m_Clean = new AxisT<MainAxisState>();
|
||
|
m_CleanSlave = new AxisT<SlaveAxisState>();
|
||
|
m_Arm = new AxisT<AxisState>();
|
||
|
m_Load = new AxisT<AxisState>();
|
||
|
m_Supply = new AxisT<AxisState>();
|
||
|
m_Ele= new AxisT<MainAxisState>();
|
||
|
m_EleSlave = new AxisT<SlaveAxisState>();
|
||
|
|
||
|
AxisConfig* ac = m_Mold->GetConfig();
|
||
|
ac->m_Speed = params->m_MoldMainManualSpeed;
|
||
|
ac->m_Acc = params->m_MoldMainManualAcc;
|
||
|
ac->m_Dec = params->m_MoldMainManualDec;
|
||
|
ac->m_RefDistance = params->m_MoldMainManualRefDistance;
|
||
|
ac->m_AbsPos = params->m_MoldMainManualAbsPos;
|
||
|
m_Mold->GetState()->SetAxisCfg(ConfigManager::GetInstance()->GetMoldCfg());
|
||
|
|
||
|
ac = m_MoldSlave->GetConfig();
|
||
|
ac->m_Speed = params->m_MoldSlaveManualSpeed;
|
||
|
ac->m_Acc = params->m_MoldSlaveManualAcc;
|
||
|
ac->m_Dec = params->m_MoldSlaveManualDec;
|
||
|
ac->m_RefDistance = params->m_MoldSlaveManualRefDistance;
|
||
|
ac->m_AbsPos = params->m_MoldSlaveManualAbsPos;
|
||
|
m_MoldSlave->GetState()->SetAxisCfg(ConfigManager::GetInstance()->GetMoldCfg());
|
||
|
|
||
|
ac = m_Clean->GetConfig();
|
||
|
ac->m_Speed = params->m_CleanMainManualSpeed;
|
||
|
ac->m_Acc = params->m_CleanMainManualAcc;
|
||
|
ac->m_Dec = params->m_CleanMainManualDec;
|
||
|
ac->m_RefDistance = params->m_CleanMainManualRefDistance;
|
||
|
ac->m_AbsPos = params->m_CleanMainManualAbsPos;
|
||
|
m_Clean->GetState()->SetAxisCfg(ConfigManager::GetInstance()->GetCleanCfg());
|
||
|
|
||
|
ac = m_CleanSlave->GetConfig();
|
||
|
ac->m_Speed = params->m_CleanSlaveManualSpeed;
|
||
|
ac->m_Acc = params->m_CleanSlaveManualAcc;
|
||
|
ac->m_Dec = params->m_CleanSlaveManualDec;
|
||
|
ac->m_RefDistance = params->m_CleanSlaveManualRefDistance;
|
||
|
ac->m_AbsPos = params->m_CleanSlaveManualAbsPos;
|
||
|
m_CleanSlave->GetState()->SetAxisCfg(ConfigManager::GetInstance()->GetCleanCfg());
|
||
|
|
||
|
ac = m_Ele->GetConfig();
|
||
|
ac->m_Speed = params->m_EleCylinderMainManualSpeed;
|
||
|
ac->m_Acc = params->m_EleCylinderMainManualAcc;
|
||
|
ac->m_Dec = params->m_EleCylinderMainManualDec;
|
||
|
ac->m_RefDistance = params->m_EleCylinderMainManualRefDistance;
|
||
|
ac->m_AbsPos = params->m_EleCylinderMainManualAbsPos;
|
||
|
m_Ele->GetState()->SetAxisCfg(ConfigManager::GetInstance()->GetEleCfg());
|
||
|
|
||
|
ac = m_EleSlave->GetConfig();
|
||
|
ac->m_Speed = params->m_EleCylinderSlaveManualSpeed;
|
||
|
ac->m_Acc = params->m_EleCylinderSlaveManualAcc;
|
||
|
ac->m_Dec = params->m_EleCylinderSlaveManualDec;
|
||
|
ac->m_RefDistance = params->m_EleCylinderSlaveManualRefDistance;
|
||
|
ac->m_AbsPos = params->m_EleCylinderSlaveManualAbsPos;
|
||
|
m_EleSlave->GetState()->SetAxisCfg(ConfigManager::GetInstance()->GetEleCfg());
|
||
|
|
||
|
ac = m_Arm->GetConfig();
|
||
|
ac->m_Speed = params->m_ArmManualSpeed;
|
||
|
ac->m_Acc = params->m_ArmManualAcc;
|
||
|
ac->m_Dec = params->m_ArmManualDec;
|
||
|
ac->m_RefDistance = params->m_ArmManualRefDistance;
|
||
|
ac->m_AbsPos = params->m_ArmManualAbsPos;
|
||
|
m_Arm ->GetState()->SetAxisCfg(ConfigManager::GetInstance()->GetArmCfg());
|
||
|
|
||
|
ac = m_Load->GetConfig();
|
||
|
ac->m_Speed = params->m_LoadAxisManualSpeed;
|
||
|
ac->m_Acc = params->m_LoadAxisManualAcc;
|
||
|
ac->m_Dec = params->m_LoadAxisManualDec;
|
||
|
ac->m_RefDistance = params->m_LoadAxisManualRefDistance;
|
||
|
ac->m_AbsPos = params->m_LoadAxisManualAbsPos;
|
||
|
m_Load->GetState()->SetAxisCfg( ConfigManager::GetInstance()->GetLoadCfg());
|
||
|
|
||
|
ac = m_Supply->GetConfig();
|
||
|
ac->m_Speed = params->m_SupplyManualSpeed;
|
||
|
ac->m_Acc = params->m_SupplyManualAcc;
|
||
|
ac->m_Dec = params->m_SupplyManualDec;
|
||
|
ac->m_RefDistance = params->m_SupplyManualRefDistance;
|
||
|
ac->m_AbsPos = params->m_SupplyManualAbsPos;
|
||
|
m_Supply->GetState()->SetAxisCfg( ConfigManager::GetInstance()->GetSupplyCfg());
|
||
|
|
||
|
AxisCtrl* actrl = m_Mold->GetCtrl();
|
||
|
actrl->m_ServoOn = ctrl->m_MoldMainServoOn;
|
||
|
actrl->m_ServoHomeIndexOn = ctrl->m_MoldMainServoHomeIndexOn;
|
||
|
actrl->m_ServoReset = ctrl->m_MoldMainServoReset;
|
||
|
actrl->m_MoveP = ctrl->m_MoldMainMoveUp;
|
||
|
actrl->m_MoveN = ctrl->m_MoldMainMoveDown;
|
||
|
actrl->m_MovePContinue = ctrl->m_MoldMainMoveUpContinue;
|
||
|
actrl->m_MoveNContinue = ctrl->m_MoldMainMoveDownContinue;
|
||
|
actrl->m_MoveAbsPos = ctrl->m_MoldMainMoveAbsPos;
|
||
|
actrl->m_MotionStop = ctrl->m_MoldMainMotionStop;
|
||
|
|
||
|
actrl = m_MoldSlave->GetCtrl();
|
||
|
actrl->m_ServoOn = ctrl->m_MoldSlaveServoOn;
|
||
|
actrl->m_ServoHomeIndexOn = ctrl->m_MoldSlaveServoHomeIndexOn;
|
||
|
actrl->m_ServoReset = ctrl->m_MoldSlaveServoReset;
|
||
|
actrl->m_MoveP = ctrl->m_MoldSlaveMoveUp;
|
||
|
actrl->m_MoveN = ctrl->m_MoldSlaveMoveDown;
|
||
|
actrl->m_MovePContinue = ctrl->m_MoldSlaveMoveUpContinue;
|
||
|
actrl->m_MoveNContinue = ctrl->m_MoldSlaveMoveDownContinue;
|
||
|
actrl->m_MoveAbsPos = ctrl->m_MoldSlaveMoveAbsPos;
|
||
|
actrl->m_MotionStop = ctrl->m_MoldSlaveMotionStop;
|
||
|
|
||
|
actrl = m_Clean->GetCtrl();
|
||
|
actrl->m_ServoOn = ctrl->m_CleanMainServoOn;
|
||
|
actrl->m_ServoHomeIndexOn = ctrl->m_CleanMainServoHomeIndexOn;
|
||
|
actrl->m_ServoReset = ctrl->m_CleanMainServoReset;
|
||
|
actrl->m_MoveP = ctrl->m_CleanMainMoveUp;
|
||
|
actrl->m_MoveN = ctrl->m_CleanMainMoveDown;
|
||
|
actrl->m_MovePContinue = ctrl->m_CleanMainMoveUpContinue;
|
||
|
actrl->m_MoveNContinue = ctrl->m_CleanMainMoveDownContinue;
|
||
|
actrl->m_MoveAbsPos = ctrl->m_CleanMainMoveAbsPos;
|
||
|
actrl->m_MotionStop = ctrl->m_CleanMainMotionStop;
|
||
|
|
||
|
actrl = m_CleanSlave->GetCtrl();
|
||
|
actrl->m_ServoOn = ctrl->m_CleanSlaveServoOn;
|
||
|
actrl->m_ServoHomeIndexOn = ctrl->m_CleanSlaveServoHomeIndexOn;
|
||
|
actrl->m_ServoReset = ctrl->m_CleanSlaveServoReset;
|
||
|
actrl->m_MoveP = ctrl->m_CleanSlaveMoveUp;
|
||
|
actrl->m_MoveN = ctrl->m_CleanSlaveMoveDown;
|
||
|
actrl->m_MovePContinue = ctrl->m_CleanSlaveMoveUpContinue;
|
||
|
actrl->m_MoveNContinue = ctrl->m_CleanSlaveMoveDownContinue;
|
||
|
actrl->m_MoveAbsPos = ctrl->m_CleanSlaveMoveAbsPos;
|
||
|
actrl->m_MotionStop = ctrl->m_CleanSlaveMotionStop;
|
||
|
|
||
|
/*actrl = m_Ele->GetCtrl();
|
||
|
actrl->m_ServoOn = ctrl->m_EleCylinderMainServoOn;
|
||
|
actrl->m_ServoHomeIndexOn = ctrl->m_EleCylinderMainServoHomeIndexOn;
|
||
|
actrl->m_ServoReset = ctrl->m_EleCylinderMainServoReset;
|
||
|
actrl->m_MoveP = ctrl->m_EleCylinderMainMoveUp;
|
||
|
actrl->m_MoveN = ctrl->m_EleCylinderMainMoveDown;
|
||
|
actrl->m_MovePContinue = ctrl->m_EleCylinderMainMoveUpContinue;
|
||
|
actrl->m_MoveNContinue = ctrl->m_EleCylinderMainMoveDownContinue;
|
||
|
actrl->m_MoveAbsPos = ctrl->m_EleCylinderMainMoveAbsPos;
|
||
|
actrl->m_MotionStop = ctrl->m_EleCylinderMainMotionStop;
|
||
|
|
||
|
actrl = m_EleSlave->GetCtrl();
|
||
|
actrl->m_ServoOn = ctrl->m_EleCylinderSlaveServoOn;
|
||
|
actrl->m_ServoHomeIndexOn = ctrl->m_EleCylinderSlaveServoHomeIndexOn;
|
||
|
actrl->m_ServoReset = ctrl->m_EleCylinderSlaveServoReset;
|
||
|
actrl->m_MoveP = ctrl->m_EleCylinderSlaveMoveUp;
|
||
|
actrl->m_MoveN = ctrl->m_EleCylinderSlaveMoveDown;
|
||
|
actrl->m_MovePContinue = ctrl->m_EleCylinderSlaveMoveUpContinue;
|
||
|
actrl->m_MoveNContinue = ctrl->m_EleCylinderSlaveMoveDownContinue;
|
||
|
actrl->m_MoveAbsPos = ctrl->m_EleCylinderSlaveMoveAbsPos;
|
||
|
actrl->m_MotionStop = ctrl->m_EleCylinderSlaveMotionStop;
|
||
|
*/
|
||
|
actrl = m_Arm->GetCtrl();
|
||
|
actrl->m_ServoOn = ctrl->m_ArmServoOn;
|
||
|
actrl->m_ServoHomeIndexOn = ctrl->m_ArmServoHomeIndexOn;
|
||
|
actrl->m_ServoReset = ctrl->m_ArmServoReset;
|
||
|
actrl->m_MoveP = ctrl->m_ArmMoveFront;
|
||
|
actrl->m_MoveN = ctrl->m_ArmMoveBack;
|
||
|
actrl->m_MovePContinue = ctrl->m_ArmMoveFrontContinue;
|
||
|
actrl->m_MoveNContinue = ctrl->m_ArmMoveBackContinue;
|
||
|
actrl->m_MoveAbsPos = ctrl->m_ArmMoveAbsPos;
|
||
|
actrl->m_MotionStop = ctrl->m_ArmMotionStop;
|
||
|
|
||
|
actrl = m_Load->GetCtrl();
|
||
|
actrl->m_ServoOn = ctrl->m_LoadAxisServoOn;
|
||
|
actrl->m_ServoHomeIndexOn = ctrl->m_LoadAxisServoHomeIndexOn;
|
||
|
actrl->m_ServoReset = ctrl->m_LoadAxisServoReset;
|
||
|
actrl->m_MoveP = ctrl->m_LoadAxisMoveLeft;
|
||
|
actrl->m_MoveN = ctrl->m_LoadAxisMoveRight;
|
||
|
actrl->m_MovePContinue = ctrl->m_LoadAxisMoveLeftContinue;
|
||
|
actrl->m_MoveNContinue = ctrl->m_LoadAxisMoveRightContinue;
|
||
|
actrl->m_MoveAbsPos = ctrl->m_LoadAxisMoveAbsPos;
|
||
|
actrl->m_MotionStop = ctrl->m_LoadAxisMotionStop;
|
||
|
|
||
|
actrl = m_Supply->GetCtrl();
|
||
|
actrl->m_ServoOn = ctrl->m_SupplyServoOn;
|
||
|
actrl->m_ServoHomeIndexOn = ctrl->m_SupplyServoHomeIndexOn;
|
||
|
actrl->m_ServoReset = ctrl->m_SupplyServoReset;
|
||
|
actrl->m_MoveP = ctrl->m_SupplyMovePositive;
|
||
|
actrl->m_MoveN = ctrl->m_SupplyMoveNegative;
|
||
|
actrl->m_MovePContinue = ctrl->m_SupplyMovePositiveContinue;
|
||
|
actrl->m_MoveNContinue = ctrl->m_SupplyMoveNegativeContinue;
|
||
|
actrl->m_MoveAbsPos = ctrl->m_SupplyMoveAbsPos;
|
||
|
actrl->m_MotionStop = ctrl->m_SupplyMotionStop;
|
||
|
}
|
||
|
|
||
|
|
||
|
void PLCAxis::StopAll(void)
|
||
|
{
|
||
|
m_Mold->GetCtrl()->m_MotionStop->SetValue(true);
|
||
|
Sleep(100);
|
||
|
m_Mold->GetCtrl()->m_MotionStop->SetValue(false);
|
||
|
m_Clean->GetCtrl()->m_MotionStop->SetValue(true);
|
||
|
Sleep(100);
|
||
|
m_Clean->GetCtrl()->m_MotionStop->SetValue(false);
|
||
|
m_Load->GetCtrl()->m_MotionStop->SetValue(true);
|
||
|
Sleep(100);
|
||
|
m_Load->GetCtrl()->m_MotionStop->SetValue(false);
|
||
|
m_Arm->GetCtrl()->m_MotionStop->SetValue(true);
|
||
|
Sleep(100);
|
||
|
m_Arm->GetCtrl()->m_MotionStop->SetValue(false);
|
||
|
m_Supply->GetCtrl()->m_MotionStop->SetValue(true);
|
||
|
Sleep(100);
|
||
|
m_Supply->GetCtrl()->m_MotionStop->SetValue(false);
|
||
|
}
|