GrpcPrint/PrintS/PLC/Axis.cpp

208 lines
8.7 KiB
C++
Raw Normal View History

#include "Axis.h"
2024-03-25 13:22:32 +08:00
#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_LoadAxisMoveRight;
actrl->m_MoveN = ctrl->m_LoadAxisMoveLeft;
actrl->m_MovePContinue = ctrl->m_LoadAxisMoveRightContinue;
actrl->m_MoveNContinue = ctrl->m_LoadAxisMoveLeftContinue;
2024-03-25 13:22:32 +08:00
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);
}