diff --git a/PrintS/Communication/IPGLaserClient.cpp b/PrintS/Communication/IPGLaserClient.cpp index 10ee80a..915cb8a 100644 --- a/PrintS/Communication/IPGLaserClient.cpp +++ b/PrintS/Communication/IPGLaserClient.cpp @@ -324,7 +324,7 @@ IPGLaserClientV1::IPGLaserClientV1(CommunicationCfg* pconfig, AlarmCfg* laserAla size_t count = ((size_t)&m_State.m_endFlag - (size_t)startPtr) / ptrSize; InsertMp(startPtr, count); - m_alarmCfgMp.insert(make_pair(m_LaserAlarm->m_Code, m_LaserAlarm)); + //m_alarmCfgMp.insert(make_pair(m_LaserAlarm->m_Code, m_LaserAlarm)); } diff --git a/PrintS/Communication/OxygenClient.cpp b/PrintS/Communication/OxygenClient.cpp index f689869..52bb796 100644 --- a/PrintS/Communication/OxygenClient.cpp +++ b/PrintS/Communication/OxygenClient.cpp @@ -46,7 +46,6 @@ void OxygenClient::InitCommand() tref[4] = m_ExtCfg->m_CleanBoxOxygenSensorType; for (int i = 1; i <= 4;i++) { Oxygenstat* stat = new Oxygenstat(); - //AddToBaseMp("_"+to_string(i), stat); //添加到map size_t ptrSize = sizeof(nullptr); //指针大小 void* startPtr = &stat->m_startFlag + 1; diff --git a/PrintS/Communication/PowderSupplySimpleClient.cpp b/PrintS/Communication/PowderSupplySimpleClient.cpp index 2255087..b32a9c0 100644 --- a/PrintS/Communication/PowderSupplySimpleClient.cpp +++ b/PrintS/Communication/PowderSupplySimpleClient.cpp @@ -10,7 +10,6 @@ #include "../utils/DataByte.h" PowderSupplySimpleClient::PowderSupplySimpleClient(CommunicationCfg* pconfig) :S7Client(pconfig) - //, m_PressureWriteValue(new StrData("PressureWriteValue",u8"压力写入值")) { m_RunCfg = ConfigManager::GetInstance()->GetRunCfg(); m_ExtCfg = ConfigManager::GetInstance()->GetExtCfg(); diff --git a/PrintS/Controller/Base.h b/PrintS/Controller/Base.h index 8fc353b..15b8c32 100644 --- a/PrintS/Controller/Base.h +++ b/PrintS/Controller/Base.h @@ -13,7 +13,7 @@ class Base { protected: - void InsertMp(void* startPtr, size_t count, const std::string& suff = "") { + void InsertMp(void* startPtr, size_t count = 1, const std::string& suff = "") { size_t ptrSize = sizeof(nullptr); //指针大小 for (size_t i = 0; i < count; ++i) { BaseData* bd = *((BaseData**)((char*)startPtr + ptrSize * i)); @@ -36,7 +36,7 @@ public: m_baseMp.clear(); } - void SendToClients(WRITETYPE type, const std::string& addKey = "") { + virtual void SendToClients(WRITETYPE type, const std::string& addKey = "") { std::list its; { std::shared_lock lock(m_mtx); //读锁 @@ -85,7 +85,7 @@ public: } -private: +protected: std::map m_baseMp; public: std::shared_mutex m_mtx; diff --git a/PrintS/Controller/Controller.cpp b/PrintS/Controller/Controller.cpp index 94fc417..b51dfb1 100644 --- a/PrintS/Controller/Controller.cpp +++ b/PrintS/Controller/Controller.cpp @@ -121,6 +121,22 @@ void Controller::Init(){ m_reg = new Registration(); + m_ExtCfg = ConfigManager::GetInstance()->GetExtCfg(); + if (m_ExtCfg->m_CameraType == ExtCfg::Galaxy) { + m_Camera = new GalaxyCamera(); + } + else if (m_ExtCfg->m_CameraType == ExtCfg::OPT) { + m_Camera = new OPTCamera(); + } + else { + m_Camera = new GalaxyCamera(); + } + if (m_ExtCfg->m_UseCamera) { + if (m_Camera->Init()) { + m_Camera->StartUp(); + } + } + m_jobController.StartLoadPrepareJob(); } @@ -151,6 +167,7 @@ void Controller::StartSend() { ++count; if (count == 2) { //发送频率降低 m_ScannerCtrl->SendToClients(); + m_Camera->SendToClients(); count = 0; } diff --git a/PrintS/Controller/Controller.h b/PrintS/Controller/Controller.h index ee3b7b4..7950152 100644 --- a/PrintS/Controller/Controller.h +++ b/PrintS/Controller/Controller.h @@ -39,8 +39,10 @@ public: ScannerCtrl* m_ScannerCtrl; MachineCfg* m_MachineCfg; + ExtCfg* m_ExtCfg; Registration* m_reg; + HBDCamera* m_Camera; private: bool m_sendTdExitFlag; thread m_sendParamThread; diff --git a/PrintS/DataManage/DataHandle.cpp b/PrintS/DataManage/DataHandle.cpp index 411731c..f508f5e 100644 --- a/PrintS/DataManage/DataHandle.cpp +++ b/PrintS/DataManage/DataHandle.cpp @@ -20,13 +20,14 @@ void DataHandle::LayersDataCallBackProc(void* pthis,const ReadData& msg, ::strea else if ((READTYPE)msg.dataType == REGISTFUNC) { p->m_controller->m_reg->CallFunc(msg,response); } - + else if ((READTYPE)msg.dataType == CAMERAFUNC) { + p->m_controller->m_Camera->CallFunc(msg, response); + } } DataHandle::DataHandle() - : /*m_dataCallBack(nullptr) - ,*/ m_streamServer(nullptr) + : m_streamServer(nullptr) , m_config(nullptr) , m_controller(nullptr) , m_testFlag(false){ @@ -92,8 +93,6 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) { WriteData* wd = nullptr; int index = 0; switch (msg.dataType) { - case GET: break; - case SET: break; case AXISMOVEFUNC: if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER){ printf("没有准备好哦,无法操作\n"); return; @@ -114,7 +113,10 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) { m_controller->m_Machine->Update(msg,LOADPARAMRSP); break; case SCANCTRLFUNC: m_controller->m_ScannerCtrl->CallFunc(msg); break; - + case CAMERAFUNC: + m_controller->m_Camera->CallFunc(msg,nullptr); break; + case CAMERAPARAMUPDATE: + m_controller->m_Camera->Update(msg); break; case REQUEST: if (msg.nameKey == "36") { printf("error,36 需要释放ScannerCtrl::Init()内部代码块...\n"); diff --git a/PrintS/DataManage/RWData.h b/PrintS/DataManage/RWData.h index 4ad93e5..62828b8 100644 --- a/PrintS/DataManage/RWData.h +++ b/PrintS/DataManage/RWData.h @@ -4,9 +4,7 @@ #include enum READTYPE { - GET = 0, - SET, - AXISMOVEFUNC, //轴运动函数 + AXISMOVEFUNC=0, //轴运动函数 VERSIONREQ, //获取版本信息 @@ -14,7 +12,9 @@ enum READTYPE { RESETELEC, //PowerMeterClient PURIFIERPARAMW, //净化器参数写入 LAYERDATAREQ, //layer数据请求 - REGISTFUNC, //注册函数集 + REGISTFUNC, //注册函数集 一次请求,使用请求回复模式 + CAMERAFUNC, //相机功能函数调用 + CAMERAPARAMUPDATE, //相机参数更新 SETZEROPOS, //AxisState使用 AXISSTOPALL, //axis 运动急停 @@ -25,8 +25,6 @@ enum READTYPE { LOADPARAM, //装载参数 - - /********************振镜控制******************/ SCANCTRLFUNC, //振镜控制函数 REQUEST, //获取配置信息 test用 @@ -58,7 +56,6 @@ struct ReadData { enum WRITETYPE { ALARM = 0, //报警 - //INITERRORINFOSRSP, //返回初始化错误信息 VERSIONRSP, //返回版本信息 IOSIGNALRSP, //io信号返回数据 SYSPARAMDATA, //系统参数 @@ -104,8 +101,8 @@ enum WRITETYPE { LOADPARAMRSP, //装载参数 SCANCTRLSTATE, //BaseCtrl参数 SCANCTRLPARAM, //scanctrl参数 - XYSCANSTATE, //XYScanState参数 在参数更新的时候才会发送到客户端 - + XYSCANSTATE, //XYScanState参数 在参数更新的时候才会发送到客户端 + CAMERAPARAM, //相机参数 TEST = 1000, //test }; diff --git a/PrintS/Machine/HBD1200.cpp b/PrintS/Machine/HBD1200.cpp index 54a54bb..2f2a146 100644 --- a/PrintS/Machine/HBD1200.cpp +++ b/PrintS/Machine/HBD1200.cpp @@ -6275,244 +6275,244 @@ void HBD1200::ProcReadPLCData(void* pobject, Command* pcommand) } -//void HBD1200::GetAlarmState(SignalState& signalState) -//{ -// signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC -// signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC -// signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态 -// signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态 -// signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态 -// signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态 -// signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态 -// signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式 -// signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位 -// -// signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常 -// signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常 -// signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常 -// signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常 -// signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常 -// signalState.m_OutsideOxygenLackAlarm = m_SignalStateWrapper->m_OutsideOxygenLackAlarm->GetValue(); //外界氧含量不足警告 -// signalState.m_LaserChillerAlarm = m_SignalStateWrapper->m_LaserChillerAlarm->GetValue(); //激光器冷水机报警 -// signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常 -// signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常 -// signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常 -// signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常 -// signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点 -// signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警 -// signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警 -// signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警 -// signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警 -// signalState.m_HeatingInputAlarm = m_SignalStateWrapper->m_HeatingInputAlarm->GetValue(); //加热输入异常 -// signalState.m_HeatingOutputAlarm = m_SignalStateWrapper->m_HeatingOutputAlarm->GetValue(); //加热输出异常 -// -// signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示 -// signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示 -// signalState.m_PrintStorageCar1BlockWarn = m_SignalStateWrapper->m_PrintStorageCar1BlockWarn->GetValue(); //打印存粉小车1堵塞警示 -// -// signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示 -// signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示 -// -// signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告 -// -// signalState.m_CylinderExtendOnAlarm = m_SignalStateWrapper->m_CylinderExtendOnAlarm->GetValue(); //缸体固定气缸伸出不到位异常 -// signalState.m_CylinderExtendOffAlarm = m_SignalStateWrapper->m_CylinderExtendOffAlarm->GetValue(); //缸体固定气缸缩回不到位异常 -// signalState.m_PrintCylinderVerifyAlarm = m_SignalStateWrapper->m_PrintCylinderVerifyAlarm->GetValue(); //打印位缸体检测异常 -// signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常 -// signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常 -// signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue(); -// signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常 -// signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常 -// signalState.m_CleanBoxUpOpenAlarm = m_SignalStateWrapper->m_CleanBoxUpOpenAlarm->GetValue(); //清粉箱上盖气缸打开不到位异常 -// signalState.m_CleanBoxUpCloseAlarm = m_SignalStateWrapper->m_CleanBoxUpCloseAlarm->GetValue(); //清粉箱上盖气缸关闭不到位异常 -// signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //缸体吊装盖板打开异常 -// signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //缸体吊装门打开异常 -// signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常 -// signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示 -// signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示 -// signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示 -// signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示 -// signalState.m_PowderPosition1Alarm = m_SignalStateWrapper->m_PowderPosition1Alarm->GetValue(); //粉仓料位感应器1异常 -// signalState.m_PowderPosition2Alarm = m_SignalStateWrapper->m_PowderPosition2Alarm->GetValue(); //粉仓料位感应器2异常 -// signalState.m_PowderPosition3Alarm = m_SignalStateWrapper->m_PowderPosition3Alarm->GetValue(); //粉仓料位感应器3异常 -// signalState.m_PowderPosition4Alarm = m_SignalStateWrapper->m_PowderPosition4Alarm->GetValue(); //粉仓料位感应器4异常 -// signalState.m_PowderPosition5Alarm = m_SignalStateWrapper->m_PowderPosition5Alarm->GetValue(); //粉仓料位感应器5异常 -// signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常 -// signalState.m_PrintOxygen1DeciceAlarm = m_SignalStateWrapper->m_PrintOxygen1DeciceAlarm->GetValue(); //打印舱测氧仪1异常 -// signalState.m_PrintOxygen2DeviceAlarm = m_SignalStateWrapper->m_PrintOxygen2DeviceAlarm->GetValue(); //打印舱测氧仪2异常 -// signalState.m_OutsideOxygenDeviceAlarm = m_SignalStateWrapper->m_OutsideOxygenDeviceAlarm->GetValue(); //室外测氧仪异常 -// signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常 -// signalState.m_ScannerChillerAlarm = m_SignalStateWrapper->m_ScannerChillerAlarm->GetValue(); //光路冷水机报警 -// signalState.m_PurifierChillerAlarm = m_SignalStateWrapper->m_PurifierChillerAlarm->GetValue(); //净化器冷水机报警 -// -// signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常 -// signalState.m_EleCylinderMainTorqueAlarm = m_SignalStateWrapper->m_EleCylinderMainTorqueAlarm->GetValue(); //电缸主轴扭力异常 -// signalState.m_EleCylinderSlaveTorqueAlarm = m_SignalStateWrapper->m_EleCylinderSlaveTorqueAlarm->GetValue(); //电缸从轴扭力异常 -// signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常 -// signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常 -// signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常 -// signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败 -// -// signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限 -// signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限 -// signalState.m_EleCylinderMainOverSoftUpLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftUpLimit->GetValue(); //电缸主轴超软上限 -// signalState.m_EleCylinderMainOverSoftDownLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftDownLimit->GetValue(); //电缸主轴超软下限 -// signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限 -// signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限 -// signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限 -// signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限 -// signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示 -// signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示 -// signalState.m_PrintStorageCar2BlockAlarm = m_SignalStateWrapper->m_PrintStorageCar2BlockAlarm->GetValue(); //打印存粉小车2堵塞报警 -// -// -// signalState.m_LoadAxisManualAlarmSignal = m_SignalStateWrapper->m_LoadAxisManualAlarmSignal->GetValue(); //移栽手动异常 -// signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常 -// signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常 -// signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常 -// signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常 -// signalState.m_EleCylinderMainServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderMainServoAlarmSignal->GetValue(); //电缸主轴伺服异常 -// signalState.m_EleCylinderPrintHandupAlarmSignal = m_SignalStateWrapper->m_EleCylinderPrintHandupAlarmSignal->GetValue(); //电缸打印位顶升异常 -// signalState.m_CleanBoxTopDoorRiseAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorRiseAlarmSignal->GetValue(); //清粉箱顶门升高异常 -// signalState.m_CleanBoxTopDoorFallAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorFallAlarmSignal->GetValue(); //清粉箱顶门降低异常 -// -// signalState.m_CoverReachAcceptPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachAcceptPowderAlarmSignal->GetValue(); //铺粉轴到接粉位异常 -// signalState.m_CoverReachDropPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachDropPowderAlarmSignal->GetValue(); //铺粉轴到下粉位异常 -// signalState.m_EleCylinderSlaveServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderSlaveServoAlarmSignal->GetValue(); //电缸从轴伺服异常 -// signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); //光栅尺检测异常 -// signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); //打印主轴软急停触发 -// signalState.m_EleCylinderSoftStopTrigger = m_SignalStateWrapper->m_EleCylinderSoftStopTrigger->GetValue(); //电缸主轴软急停触发 -// signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); //移载轴软急停触发 -// signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); //铺粉轴软急停触发 -// signalState.m_CoverHomeException = m_SignalStateWrapper->m_CoverHomeException->GetValue(); //铺粉归原点异常 -// -// signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R -// signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW -// signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW -// signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW -// signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW -// signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW -// signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW -// signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW -// signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW -// signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW -// signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW -// signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW -// signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW -// signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW -// signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW -// signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW -// signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW -// signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW -// signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW -// signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W -// signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R -// signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW -// signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W -// signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W -// signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W -// signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW -// signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R -// -// signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W -// signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R -// signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW -// signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R -// signalState.m_PrintVacuumTriger = m_SignalStateWrapper->m_PrintVacuumTriger->GetValue(); //打印室启动吸尘器_W -// signalState.m_DisableRasterJudge = m_SignalStateWrapper->m_DisableRasterJudge->GetValue(); //屏蔽光栅尺判断_W -// signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R -// signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R -// -// signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R -// signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R -// signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R -// signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R -// signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R -// signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R -// signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R -// -// signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue(); -// signalState.m_SheildCylinderFixSensor = m_SignalStateWrapper->m_SheildCylinderFixSensor->GetValue(); -// signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue(); -// signalState.m_UseWellAutoCount = m_SignalStateWrapper->m_UseWellAutoCount->GetValue(); -// signalState.m_SheilServoEmptyOpen = m_SignalStateWrapper->m_SheilServoEmptyOpen->GetValue(); -// signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气 -// signalState.m_UnuseCoverReachSensor = m_SignalStateWrapper->m_UnuseCoverReachSensor->GetValue(); //不使用铺粉轴到位感应器 -// signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue(); -// signalState.m_LinearEncoderOppDirection = m_SignalStateWrapper->m_LinearEncoderOppDirection->GetValue(); -// signalState.m_CoverV2UseCintinueMode = m_SignalStateWrapper->m_CoverV2UseCintinueMode->GetValue(); -// -// signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 -// signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内 -// signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限 -// signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发 -// signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 -// signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限 -// signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发 -// signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常 -// signalState.m_PrintMoldInPrintPos = m_SignalStateWrapper->m_PrintMoldInPrintPos->GetValue(); //缸体在打印位 -// signalState.m_PrintMoldInCleanPos = m_SignalStateWrapper->m_PrintMoldInCleanPos->GetValue(); //缸体在清粉位 -// signalState.m_PrintMoldInHandPos = m_SignalStateWrapper->m_PrintMoldInHandPos->GetValue(); //缸体在吊装位 -// -// -// signalState.m_CleanTorqueUpInsideLimit = m_SignalStateWrapper->m_CleanTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 -// signalState.m_CleanAxisPosUpInSoftLimit = m_SignalStateWrapper->m_CleanAxisPosUpInSoftLimit->GetValue(); //轴位置没超过软上限 -// signalState.m_CleanTorqueDownInsideLimit = m_SignalStateWrapper->m_CleanTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 -// signalState.m_CleanAxisPosDownInsideSoftLimit = m_SignalStateWrapper->m_CleanAxisPosDownInsideSoftLimit->GetValue(); //轴位置没超过软下限 -// signalState.m_CleanUpInsideLimit = m_SignalStateWrapper->m_CleanUpInsideLimit->GetValue(); //上限位没触发 -// signalState.m_CleanDownInsideLimit = m_SignalStateWrapper->m_CleanDownInsideLimit->GetValue(); //下限位没触发 -// signalState.m_EleMainServoNoAlarm = m_SignalStateWrapper->m_EleMainServoNoAlarm->GetValue(); //电缸主轴伺服无异常 -// signalState.m_EleSlaveServoNoAlarm = m_SignalStateWrapper->m_EleSlaveServoNoAlarm->GetValue(); //电缸从轴伺服无异常 -// -// signalState.m_PrintJackupInSafePos = m_SignalStateWrapper->m_PrintJackupInSafePos->GetValue(); //打印顶升轴在安全位 -// signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 -// signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限 -// signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限 -// signalState.m_CylinderFixInReleasePos = m_SignalStateWrapper->m_CylinderFixInReleasePos->GetValue(); //缸体固定气缸在松开位 -// signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发 -// signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发 -// signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常 -// signalState.m_EleServoInBottomPos = m_SignalStateWrapper->m_EleServoInBottomPos->GetValue(); //电缸在底座位 -// -// signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面 -// signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 -// signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限 -// signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限 -// signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发 -// signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发 -// signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue(); -// -// signalState.m_PrintStoreCar1ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar1ExhaustEnable->GetValue(); //触发打印存粉小车1排粉 -// signalState.m_PrintStoreCar2ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar2ExhaustEnable->GetValue(); //触发打印存粉小车2排粉 -// signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En -// signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位 -// signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中 -// signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕 -// -// signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN -// signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气 -// signalState.m_AllowRiseWindSpeed = m_SignalStateWrapper->m_AllowRiseWindSpeed->GetValue(); //允许提风速 -// signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试 -// signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中 -// signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功 -// signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败 -// -// signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位 -// signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面 -// signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面 -// signalState.m_IsInPrintJackupPos = m_SignalStateWrapper->m_IsInPrintJackupPos->GetValue(); //打印顶升位 -// signalState.m_IsInCleanJackupPos = m_SignalStateWrapper->m_IsInCleanJackupPos->GetValue(); //清粉顶升位 -// signalState.m_IsInEleCylinderBottomFixPos = m_SignalStateWrapper->m_IsInEleCylinderBottomFixPos->GetValue(); //底座贴合位 -// signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位 -// signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位 -// signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位 -// signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位 -// -// signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException); -// signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException; -// signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException; -// //memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState)); -//} +void HBD1200::GetAlarmState(SignalState& signalState) +{ + signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC + signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC + signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态 + signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态 + signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态 + signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态 + signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态 + signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式 + signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位 + + signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常 + signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常 + signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常 + signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常 + signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常 + signalState.m_OutsideOxygenLackAlarm = m_SignalStateWrapper->m_OutsideOxygenLackAlarm->GetValue(); //外界氧含量不足警告 + signalState.m_LaserChillerAlarm = m_SignalStateWrapper->m_LaserChillerAlarm->GetValue(); //激光器冷水机报警 + signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常 + signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常 + signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常 + signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常 + signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点 + signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警 + signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警 + signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警 + signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警 + signalState.m_HeatingInputAlarm = m_SignalStateWrapper->m_HeatingInputAlarm->GetValue(); //加热输入异常 + signalState.m_HeatingOutputAlarm = m_SignalStateWrapper->m_HeatingOutputAlarm->GetValue(); //加热输出异常 + + signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示 + signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示 + signalState.m_PrintStorageCar1BlockWarn = m_SignalStateWrapper->m_PrintStorageCar1BlockWarn->GetValue(); //打印存粉小车1堵塞警示 + + signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示 + signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示 + + signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告 + + signalState.m_CylinderExtendOnAlarm = m_SignalStateWrapper->m_CylinderExtendOnAlarm->GetValue(); //缸体固定气缸伸出不到位异常 + signalState.m_CylinderExtendOffAlarm = m_SignalStateWrapper->m_CylinderExtendOffAlarm->GetValue(); //缸体固定气缸缩回不到位异常 + signalState.m_PrintCylinderVerifyAlarm = m_SignalStateWrapper->m_PrintCylinderVerifyAlarm->GetValue(); //打印位缸体检测异常 + signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常 + signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常 + signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue(); + signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常 + signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常 + signalState.m_CleanBoxUpOpenAlarm = m_SignalStateWrapper->m_CleanBoxUpOpenAlarm->GetValue(); //清粉箱上盖气缸打开不到位异常 + signalState.m_CleanBoxUpCloseAlarm = m_SignalStateWrapper->m_CleanBoxUpCloseAlarm->GetValue(); //清粉箱上盖气缸关闭不到位异常 + signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //缸体吊装盖板打开异常 + signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //缸体吊装门打开异常 + signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常 + signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示 + signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示 + signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示 + signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示 + signalState.m_PowderPosition1Alarm = m_SignalStateWrapper->m_PowderPosition1Alarm->GetValue(); //粉仓料位感应器1异常 + signalState.m_PowderPosition2Alarm = m_SignalStateWrapper->m_PowderPosition2Alarm->GetValue(); //粉仓料位感应器2异常 + signalState.m_PowderPosition3Alarm = m_SignalStateWrapper->m_PowderPosition3Alarm->GetValue(); //粉仓料位感应器3异常 + signalState.m_PowderPosition4Alarm = m_SignalStateWrapper->m_PowderPosition4Alarm->GetValue(); //粉仓料位感应器4异常 + signalState.m_PowderPosition5Alarm = m_SignalStateWrapper->m_PowderPosition5Alarm->GetValue(); //粉仓料位感应器5异常 + signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常 + signalState.m_PrintOxygen1DeciceAlarm = m_SignalStateWrapper->m_PrintOxygen1DeciceAlarm->GetValue(); //打印舱测氧仪1异常 + signalState.m_PrintOxygen2DeviceAlarm = m_SignalStateWrapper->m_PrintOxygen2DeviceAlarm->GetValue(); //打印舱测氧仪2异常 + signalState.m_OutsideOxygenDeviceAlarm = m_SignalStateWrapper->m_OutsideOxygenDeviceAlarm->GetValue(); //室外测氧仪异常 + signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常 + signalState.m_ScannerChillerAlarm = m_SignalStateWrapper->m_ScannerChillerAlarm->GetValue(); //光路冷水机报警 + signalState.m_PurifierChillerAlarm = m_SignalStateWrapper->m_PurifierChillerAlarm->GetValue(); //净化器冷水机报警 + + signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常 + signalState.m_EleCylinderMainTorqueAlarm = m_SignalStateWrapper->m_EleCylinderMainTorqueAlarm->GetValue(); //电缸主轴扭力异常 + signalState.m_EleCylinderSlaveTorqueAlarm = m_SignalStateWrapper->m_EleCylinderSlaveTorqueAlarm->GetValue(); //电缸从轴扭力异常 + signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常 + signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常 + signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常 + signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败 + + signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限 + signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限 + signalState.m_EleCylinderMainOverSoftUpLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftUpLimit->GetValue(); //电缸主轴超软上限 + signalState.m_EleCylinderMainOverSoftDownLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftDownLimit->GetValue(); //电缸主轴超软下限 + signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限 + signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限 + signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限 + signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限 + signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示 + signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示 + signalState.m_PrintStorageCar2BlockAlarm = m_SignalStateWrapper->m_PrintStorageCar2BlockAlarm->GetValue(); //打印存粉小车2堵塞报警 + + + signalState.m_LoadAxisManualAlarmSignal = m_SignalStateWrapper->m_LoadAxisManualAlarmSignal->GetValue(); //移栽手动异常 + signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常 + signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常 + signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常 + signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常 + signalState.m_EleCylinderMainServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderMainServoAlarmSignal->GetValue(); //电缸主轴伺服异常 + signalState.m_EleCylinderPrintHandupAlarmSignal = m_SignalStateWrapper->m_EleCylinderPrintHandupAlarmSignal->GetValue(); //电缸打印位顶升异常 + signalState.m_CleanBoxTopDoorRiseAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorRiseAlarmSignal->GetValue(); //清粉箱顶门升高异常 + signalState.m_CleanBoxTopDoorFallAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorFallAlarmSignal->GetValue(); //清粉箱顶门降低异常 + + signalState.m_CoverReachAcceptPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachAcceptPowderAlarmSignal->GetValue(); //铺粉轴到接粉位异常 + signalState.m_CoverReachDropPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachDropPowderAlarmSignal->GetValue(); //铺粉轴到下粉位异常 + signalState.m_EleCylinderSlaveServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderSlaveServoAlarmSignal->GetValue(); //电缸从轴伺服异常 + signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); //光栅尺检测异常 + signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); //打印主轴软急停触发 + signalState.m_EleCylinderSoftStopTrigger = m_SignalStateWrapper->m_EleCylinderSoftStopTrigger->GetValue(); //电缸主轴软急停触发 + signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); //移载轴软急停触发 + signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); //铺粉轴软急停触发 + signalState.m_CoverHomeException = m_SignalStateWrapper->m_CoverHomeException->GetValue(); //铺粉归原点异常 + + signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R + signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW + signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW + signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW + signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW + signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW + signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW + signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW + signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW + signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW + signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW + signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW + signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW + signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW + signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW + signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW + signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW + signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW + signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW + signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W + signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R + signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW + signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W + signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W + signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W + signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW + signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R + + signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W + signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R + signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW + signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R + signalState.m_PrintVacuumTriger = m_SignalStateWrapper->m_PrintVacuumTriger->GetValue(); //打印室启动吸尘器_W + signalState.m_DisableRasterJudge = m_SignalStateWrapper->m_DisableRasterJudge->GetValue(); //屏蔽光栅尺判断_W + signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R + signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R + + signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R + signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R + signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R + signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R + signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R + signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R + signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R + + signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue(); + signalState.m_SheildCylinderFixSensor = m_SignalStateWrapper->m_SheildCylinderFixSensor->GetValue(); + signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue(); + signalState.m_UseWellAutoCount = m_SignalStateWrapper->m_UseWellAutoCount->GetValue(); + signalState.m_SheilServoEmptyOpen = m_SignalStateWrapper->m_SheilServoEmptyOpen->GetValue(); + signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气 + signalState.m_UnuseCoverReachSensor = m_SignalStateWrapper->m_UnuseCoverReachSensor->GetValue(); //不使用铺粉轴到位感应器 + signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue(); + signalState.m_LinearEncoderOppDirection = m_SignalStateWrapper->m_LinearEncoderOppDirection->GetValue(); + signalState.m_CoverV2UseCintinueMode = m_SignalStateWrapper->m_CoverV2UseCintinueMode->GetValue(); + + signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 + signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内 + signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限 + signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发 + signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 + signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限 + signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发 + signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常 + signalState.m_PrintMoldInPrintPos = m_SignalStateWrapper->m_PrintMoldInPrintPos->GetValue(); //缸体在打印位 + signalState.m_PrintMoldInCleanPos = m_SignalStateWrapper->m_PrintMoldInCleanPos->GetValue(); //缸体在清粉位 + signalState.m_PrintMoldInHandPos = m_SignalStateWrapper->m_PrintMoldInHandPos->GetValue(); //缸体在吊装位 + + + signalState.m_CleanTorqueUpInsideLimit = m_SignalStateWrapper->m_CleanTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 + signalState.m_CleanAxisPosUpInSoftLimit = m_SignalStateWrapper->m_CleanAxisPosUpInSoftLimit->GetValue(); //轴位置没超过软上限 + signalState.m_CleanTorqueDownInsideLimit = m_SignalStateWrapper->m_CleanTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 + signalState.m_CleanAxisPosDownInsideSoftLimit = m_SignalStateWrapper->m_CleanAxisPosDownInsideSoftLimit->GetValue(); //轴位置没超过软下限 + signalState.m_CleanUpInsideLimit = m_SignalStateWrapper->m_CleanUpInsideLimit->GetValue(); //上限位没触发 + signalState.m_CleanDownInsideLimit = m_SignalStateWrapper->m_CleanDownInsideLimit->GetValue(); //下限位没触发 + signalState.m_EleMainServoNoAlarm = m_SignalStateWrapper->m_EleMainServoNoAlarm->GetValue(); //电缸主轴伺服无异常 + signalState.m_EleSlaveServoNoAlarm = m_SignalStateWrapper->m_EleSlaveServoNoAlarm->GetValue(); //电缸从轴伺服无异常 + + signalState.m_PrintJackupInSafePos = m_SignalStateWrapper->m_PrintJackupInSafePos->GetValue(); //打印顶升轴在安全位 + signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 + signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限 + signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限 + signalState.m_CylinderFixInReleasePos = m_SignalStateWrapper->m_CylinderFixInReleasePos->GetValue(); //缸体固定气缸在松开位 + signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发 + signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发 + signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常 + signalState.m_EleServoInBottomPos = m_SignalStateWrapper->m_EleServoInBottomPos->GetValue(); //电缸在底座位 + + signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面 + signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 + signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限 + signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限 + signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发 + signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发 + signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue(); + + signalState.m_PrintStoreCar1ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar1ExhaustEnable->GetValue(); //触发打印存粉小车1排粉 + signalState.m_PrintStoreCar2ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar2ExhaustEnable->GetValue(); //触发打印存粉小车2排粉 + signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En + signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位 + signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中 + signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕 + + signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN + signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气 + signalState.m_AllowRiseWindSpeed = m_SignalStateWrapper->m_AllowRiseWindSpeed->GetValue(); //允许提风速 + signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试 + signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中 + signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功 + signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败 + + signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位 + signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面 + signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面 + signalState.m_IsInPrintJackupPos = m_SignalStateWrapper->m_IsInPrintJackupPos->GetValue(); //打印顶升位 + signalState.m_IsInCleanJackupPos = m_SignalStateWrapper->m_IsInCleanJackupPos->GetValue(); //清粉顶升位 + signalState.m_IsInEleCylinderBottomFixPos = m_SignalStateWrapper->m_IsInEleCylinderBottomFixPos->GetValue(); //底座贴合位 + signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位 + signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位 + signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位 + signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位 + + signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException); + signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException; + signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException; + //memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState)); +} void HBD1200::LoadInRun() { SetLoadInProcStep(In_Start); diff --git a/PrintS/Machine/HBD1200.h b/PrintS/Machine/HBD1200.h index ba54312..40b20a9 100644 --- a/PrintS/Machine/HBD1200.h +++ b/PrintS/Machine/HBD1200.h @@ -83,7 +83,7 @@ public: void InitSignal(SignalStateWrapper* ssw, PLCReveiver* cc); void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc); void InitPLCCommand(vector& vecs); - //void GetAlarmState(SignalState& signalState); + void GetAlarmState(SignalState& signalState); bool CheckPrintMoldReady(); private: static void CheckIO_V0(vector& ins, IOCfgWrapper* iocfgWrapper, string str, int type); diff --git a/PrintS/Machine/HBD1200OLD.cpp b/PrintS/Machine/HBD1200OLD.cpp index 5344ec7..5278153 100644 --- a/PrintS/Machine/HBD1200OLD.cpp +++ b/PrintS/Machine/HBD1200OLD.cpp @@ -5794,734 +5794,734 @@ void HBD1200OLD::ProcReadPLCData(void* pobject, Command* pcommand) } -//void HBD1200OLD::GetAlarmState(SignalState& signalState) -//{ -// signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC -// signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC -// signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态 -// signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态 -// signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态 -// signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态 -// signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态 -// signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式 -// signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位 -// -// signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常 -// signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常 -// signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常 -// signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常 -// signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常 -// signalState.m_OutsideOxygenLackAlarm = m_SignalStateWrapper->m_OutsideOxygenLackAlarm->GetValue(); //外界氧含量不足警告 -// signalState.m_LaserChillerAlarm = m_SignalStateWrapper->m_LaserChillerAlarm->GetValue(); //激光器冷水机报警 -// signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常 -// signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常 -// signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常 -// signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常 -// signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点 -// signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警 -// signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警 -// signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警 -// signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警 -// signalState.m_HeatingInputAlarm = m_SignalStateWrapper->m_HeatingInputAlarm->GetValue(); //加热输入异常 -// signalState.m_HeatingOutputAlarm = m_SignalStateWrapper->m_HeatingOutputAlarm->GetValue(); //加热输出异常 -// -// signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示 -// signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示 -// signalState.m_PrintStorageCar1BlockWarn = m_SignalStateWrapper->m_PrintStorageCar1BlockWarn->GetValue(); //打印存粉小车1堵塞警示 -// -// signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示 -// signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示 -// -// signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告 -// -// signalState.m_CylinderExtendOnAlarm = m_SignalStateWrapper->m_CylinderExtendOnAlarm->GetValue(); //缸体固定气缸伸出不到位异常 -// signalState.m_CylinderExtendOffAlarm = m_SignalStateWrapper->m_CylinderExtendOffAlarm->GetValue(); //缸体固定气缸缩回不到位异常 -// signalState.m_PrintCylinderVerifyAlarm = m_SignalStateWrapper->m_PrintCylinderVerifyAlarm->GetValue(); //打印位缸体检测异常 -// signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常 -// signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常 -// signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue(); -// signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常 -// signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常 -// signalState.m_CleanBoxUpOpenAlarm = m_SignalStateWrapper->m_CleanBoxUpOpenAlarm->GetValue(); //清粉箱上盖气缸打开不到位异常 -// signalState.m_CleanBoxUpCloseAlarm = m_SignalStateWrapper->m_CleanBoxUpCloseAlarm->GetValue(); //清粉箱上盖气缸关闭不到位异常 -// signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //缸体吊装盖板打开异常 -// signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //缸体吊装门打开异常 -// signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常 -// signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示 -// signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示 -// signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示 -// signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示 -// signalState.m_PowderPosition1Alarm = m_SignalStateWrapper->m_PowderPosition1Alarm->GetValue(); //粉仓料位感应器1异常 -// signalState.m_PowderPosition2Alarm = m_SignalStateWrapper->m_PowderPosition2Alarm->GetValue(); //粉仓料位感应器2异常 -// signalState.m_PowderPosition3Alarm = m_SignalStateWrapper->m_PowderPosition3Alarm->GetValue(); //粉仓料位感应器3异常 -// signalState.m_PowderPosition4Alarm = m_SignalStateWrapper->m_PowderPosition4Alarm->GetValue(); //粉仓料位感应器4异常 -// signalState.m_PowderPosition5Alarm = m_SignalStateWrapper->m_PowderPosition5Alarm->GetValue(); //粉仓料位感应器5异常 -// signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常 -// signalState.m_PrintOxygen1DeciceAlarm = m_SignalStateWrapper->m_PrintOxygen1DeciceAlarm->GetValue(); //打印舱测氧仪1异常 -// signalState.m_PrintOxygen2DeviceAlarm = m_SignalStateWrapper->m_PrintOxygen2DeviceAlarm->GetValue(); //打印舱测氧仪2异常 -// signalState.m_OutsideOxygenDeviceAlarm = m_SignalStateWrapper->m_OutsideOxygenDeviceAlarm->GetValue(); //室外测氧仪异常 -// signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常 -// signalState.m_ScannerChillerAlarm = m_SignalStateWrapper->m_ScannerChillerAlarm->GetValue(); //光路冷水机报警 -// signalState.m_PurifierChillerAlarm = m_SignalStateWrapper->m_PurifierChillerAlarm->GetValue(); //净化器冷水机报警 -// -// signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常 -// signalState.m_EleCylinderMainTorqueAlarm = m_SignalStateWrapper->m_EleCylinderMainTorqueAlarm->GetValue(); //电缸主轴扭力异常 -// signalState.m_EleCylinderSlaveTorqueAlarm = m_SignalStateWrapper->m_EleCylinderSlaveTorqueAlarm->GetValue(); //电缸从轴扭力异常 -// signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常 -// signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常 -// signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常 -// signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败 -// -// signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限 -// signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限 -// signalState.m_EleCylinderMainOverSoftUpLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftUpLimit->GetValue(); //电缸主轴超软上限 -// signalState.m_EleCylinderMainOverSoftDownLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftDownLimit->GetValue(); //电缸主轴超软下限 -// signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限 -// signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限 -// signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限 -// signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限 -// signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示 -// signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示 -// signalState.m_PrintStorageCar2BlockAlarm = m_SignalStateWrapper->m_PrintStorageCar2BlockAlarm->GetValue(); //打印存粉小车2堵塞报警 -// -// -// signalState.m_LoadAxisManualAlarmSignal = m_SignalStateWrapper->m_LoadAxisManualAlarmSignal->GetValue(); //移栽手动异常 -// signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常 -// signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常 -// signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常 -// signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常 -// signalState.m_EleCylinderMainServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderMainServoAlarmSignal->GetValue(); //电缸主轴伺服异常 -// signalState.m_EleCylinderPrintHandupAlarmSignal = m_SignalStateWrapper->m_EleCylinderPrintHandupAlarmSignal->GetValue(); //电缸打印位顶升异常 -// signalState.m_CleanBoxTopDoorRiseAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorRiseAlarmSignal->GetValue(); //清粉箱顶门升高异常 -// signalState.m_CleanBoxTopDoorFallAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorFallAlarmSignal->GetValue(); //清粉箱顶门降低异常 -// -// signalState.m_CoverReachAcceptPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachAcceptPowderAlarmSignal->GetValue(); //铺粉轴到接粉位异常 -// signalState.m_CoverReachDropPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachDropPowderAlarmSignal->GetValue(); //铺粉轴到下粉位异常 -// signalState.m_EleCylinderSlaveServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderSlaveServoAlarmSignal->GetValue(); //电缸从轴伺服异常 -// signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); //光栅尺检测异常 -// signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); //打印主轴软急停触发 -// signalState.m_EleCylinderSoftStopTrigger = m_SignalStateWrapper->m_EleCylinderSoftStopTrigger->GetValue(); //电缸主轴软急停触发 -// signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); //移载轴软急停触发 -// signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); //铺粉轴软急停触发 -// signalState.m_CoverHomeException = m_SignalStateWrapper->m_CoverHomeException->GetValue(); //铺粉归原点异常 -// -// signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R -// signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW -// signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW -// signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW -// signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW -// signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW -// signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW -// signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW -// signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW -// signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW -// signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW -// signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW -// signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW -// signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW -// signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW -// signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW -// signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW -// signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW -// signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW -// signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W -// signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R -// signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW -// signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W -// signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W -// signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W -// signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW -// signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R -// -// signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W -// signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R -// signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW -// signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R -// signalState.m_PrintVacuumTriger = m_SignalStateWrapper->m_PrintVacuumTriger->GetValue(); //打印室启动吸尘器_W -// signalState.m_DisableRasterJudge = m_SignalStateWrapper->m_DisableRasterJudge->GetValue(); //屏蔽光栅尺判断_W -// signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R -// signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R -// -// signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R -// signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R -// signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R -// signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R -// signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R -// signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R -// signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R -// -// signalState.m_SheildPrintPosSensor = m_SignalStateWrapper->m_SheildPrintPosSensor->GetValue(); -// signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue(); -// signalState.m_SheildCylinderFixSensor = m_SignalStateWrapper->m_SheildCylinderFixSensor->GetValue(); -// signalState.m_UseNanoUnit = m_SignalStateWrapper->m_UseNanoUnit->GetValue(); -// signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue(); -// signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气 -// signalState.m_UnuseCoverReachSensor = m_SignalStateWrapper->m_UnuseCoverReachSensor->GetValue(); //不使用铺粉轴到位感应器 -// signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue(); -// signalState.m_LinearEncoderOppDirection = m_SignalStateWrapper->m_LinearEncoderOppDirection->GetValue(); -// -// signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 -// signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内 -// signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限 -// signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发 -// signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 -// signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限 -// signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发 -// signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常 -// signalState.m_PrintMoldInPrintPos = m_SignalStateWrapper->m_PrintMoldInPrintPos->GetValue(); //缸体在打印位 -// signalState.m_PrintMoldInCleanPos = m_SignalStateWrapper->m_PrintMoldInCleanPos->GetValue(); //缸体在清粉位 -// signalState.m_PrintMoldInHandPos = m_SignalStateWrapper->m_PrintMoldInHandPos->GetValue(); //缸体在吊装位 -// -// -// signalState.m_CleanTorqueUpInsideLimit = m_SignalStateWrapper->m_CleanTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 -// signalState.m_CleanAxisPosUpInSoftLimit = m_SignalStateWrapper->m_CleanAxisPosUpInSoftLimit->GetValue(); //轴位置没超过软上限 -// signalState.m_CleanTorqueDownInsideLimit = m_SignalStateWrapper->m_CleanTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 -// signalState.m_CleanAxisPosDownInsideSoftLimit = m_SignalStateWrapper->m_CleanAxisPosDownInsideSoftLimit->GetValue(); //轴位置没超过软下限 -// signalState.m_CleanUpInsideLimit = m_SignalStateWrapper->m_CleanUpInsideLimit->GetValue(); //上限位没触发 -// signalState.m_CleanDownInsideLimit = m_SignalStateWrapper->m_CleanDownInsideLimit->GetValue(); //下限位没触发 -// signalState.m_EleMainServoNoAlarm = m_SignalStateWrapper->m_EleMainServoNoAlarm->GetValue(); //电缸主轴伺服无异常 -// signalState.m_EleSlaveServoNoAlarm = m_SignalStateWrapper->m_EleSlaveServoNoAlarm->GetValue(); //电缸从轴伺服无异常 -// -// signalState.m_PrintJackupInSafePos = m_SignalStateWrapper->m_PrintJackupInSafePos->GetValue(); //打印顶升轴在安全位 -// signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 -// signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限 -// signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限 -// signalState.m_CylinderFixInReleasePos = m_SignalStateWrapper->m_CylinderFixInReleasePos->GetValue(); //缸体固定气缸在松开位 -// signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发 -// signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发 -// signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常 -// signalState.m_EleServoInBottomPos = m_SignalStateWrapper->m_EleServoInBottomPos->GetValue(); //电缸在底座位 -// -// signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面 -// signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 -// signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限 -// signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限 -// signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发 -// signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发 -// signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue(); -// -// signalState.m_PrintStoreCar1ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar1ExhaustEnable->GetValue(); //触发打印存粉小车1排粉 -// signalState.m_PrintStoreCar2ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar2ExhaustEnable->GetValue(); //触发打印存粉小车2排粉 -// signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En -// signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位 -// signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中 -// signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕 -// -// signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN -// signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气 -// signalState.m_AllowRiseWindSpeed = m_SignalStateWrapper->m_AllowRiseWindSpeed->GetValue(); //允许提风速 -// signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试 -// signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中 -// signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功 -// signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败 -// -// signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位 -// signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面 -// signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面 -// signalState.m_IsInPrintJackupPos = m_SignalStateWrapper->m_IsInPrintJackupPos->GetValue(); //打印顶升位 -// signalState.m_IsInCleanJackupPos = m_SignalStateWrapper->m_IsInCleanJackupPos->GetValue(); //清粉顶升位 -// signalState.m_IsInEleCylinderBottomFixPos = m_SignalStateWrapper->m_IsInEleCylinderBottomFixPos->GetValue(); //底座贴合位 -// signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位 -// signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位 -// signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位 -// signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位 -// -// signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException); -// signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException; -// signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException; -// //memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState)); -//} -// -//void HBD1200OLD::LoadInRun() { -// SetLoadInProcStep(In_Start); -// if ((m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintLoaded) && -// m_IOCfgWrapper->m_Print3RCylinderContact->IsActive()) { -// SetLoadInResult(In_Success, _(u8"缸体已载入完成").c_str()); -// return; -// } -// -// if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanConnectedBox) { -// SetLoadInProcStep(In_CylinderDisconnectCleanBox); -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(true); -// Sleep(1000); -// while (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue()) { -// Sleep(300); -// if (!m_LoadCtrlFlag) { -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(false); -// break; -// } -// } -// if (!m_LoadCtrlFlag) { -// SetLoadInResult(In_Intercept, _(u8"载入中断").c_str()); -// return; -// } -// int count = 0; -// while (m_LoadCtrlFlag && (count < 18)) -// { -// Sleep(500); -// if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { -// break; -// } -// count++; -// } -// Sleep(500); -// if (!m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { -// stringstream ss; -// ss << _(u8"缸体与清粉箱分离异常:\n").c_str(); -// SignalState signalState; -// SignalService::GetInstance().GetSignalState(signalState); -// if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); -// if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); -// if (signalState.m_PrintMainOverSoftUpLimit) ss << _(u8"打印主轴超软上限\n").c_str(); -// if (signalState.m_PrintMainOverSoftDownLimit) ss << _(u8"打印主轴超软下限\n").c_str(); -// if (signalState.m_MoldMainUpLimitActive) ss << _(u8"打印主轴上限位触发警示\n").c_str(); -// if (signalState.m_MoldMainDownLimitActive) ss << _(u8"打印主轴下限位触发警示\n").c_str(); -// if (signalState.m_MoldTorqueAlarm) ss << _(u8"打印主轴扭力异常\n").c_str(); -// if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); -// if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); -// if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); -// if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); -// if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); -// SetLoadInResult(In_CylinderDisconnectCleanBoxError, ss.str()); -// return; -// } -// if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->SetValue(false); -// } -// Sleep(1000); -// } -// if (!m_LoadCtrlFlag) { -// SetLoadInResult(In_Intercept, _(u8"载入中断").c_str()); -// return; -// } -// -// if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanUnConnectBox || -// m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInHand || -// m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInMid) { -// SetLoadInProcStep(In_CylinderReachPrint); -// m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(true); -// Sleep(1000); -// while (m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue()) { -// Sleep(300); -// if (!m_LoadCtrlFlag) { -// m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(false); -// break; -// } -// } -// if (!m_LoadCtrlFlag) { -// SetLoadInResult(In_Intercept, _(u8"载入中断").c_str()); -// return; -// } -// Sleep(500); -// if (!m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue()) { -// stringstream ss; -// ss << _(u8"缸体移动到打印位异常:\n").c_str(); -// SignalState signalState; -// SignalService::GetInstance().GetSignalState(signalState); -// if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); -// if (signalState.m_CylinderExtendOffAlarm) ss << _(u8"缸体固定气缸缩回不到位异常\n").c_str(); -// if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); -// if (signalState.m_LoadAxisServoAlarmSignal) ss << _(u8"移载轴伺服驱动器异常\n").c_str(); -// if (signalState.m_LoadAxisOverSoftLeftLimit) ss << _(u8"移载轴超左软限\n").c_str(); -// if (signalState.m_LoadAxisOverSoftRightLimit) ss << _(u8"移载轴超右软限\n").c_str(); -// if (signalState.m_LoadAxisLeftLimit) ss << _(u8"移载轴左限位触发警示\n").c_str(); -// if (signalState.m_LoadAxisRightLimit) ss << _(u8"移载轴右限位触发警示\n").c_str(); -// if (signalState.m_LoadTorqueAlarm) ss << _(u8"移载轴扭力异常\n").c_str(); -// if (signalState.m_CylinderHandDoorOpenAlarm) ss << _(u8"缸体吊装门打开异常\n").c_str(); -// if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); -// if (signalState.m_HandPlatformCloseAlarm) ss << _(u8"吊装盖板关闭异常\n").c_str(); -// if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); -// if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); -// if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); -// if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); -// SetLoadInResult(In_CylinderReachPrintError, ss.str()); -// return; -// } -// if (m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue()) { -// m_SignalStateWrapper->m_CylinderReachPrintFinished->SetValue(false); -// } -// Sleep(1000); -// } -// if (!m_LoadCtrlFlag) { -// SetLoadInResult(In_Intercept, _(u8"载入中断").c_str()); -// return; -// } -// -// if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintUnLoaded) { -// SetLoadInProcStep(In_CylinderPrintLoad); -// m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(true); -// Sleep(500); -// while ( m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue()) { -// Sleep(300); -// if (!m_LoadCtrlFlag) { -// m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(false); -// break; -// } -// } -// if (!m_LoadCtrlFlag) { -// SetLoadInResult(In_Intercept, _(u8"载入中断").c_str()); -// return; -// } -// Sleep(500); -// if (!m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue()) { -// stringstream ss; -// ss << _(u8"缸体打印位装载异常:\n").c_str(); -// SignalState signalState; -// SignalService::GetInstance().GetSignalState(signalState); -// if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); -// if (signalState.m_CylinderExtendOnAlarm) ss << _(u8"缸体固定气缸伸出不到位异常\n").c_str();; -// if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); -// if (signalState.m_EleCylinderPrintHandupAlarmSignal) ss << _(u8"电缸打印位顶升异常\n").c_str(); -// if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); -// if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); -// if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); -// if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); -// if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); -// SetLoadInResult(In_CylinderPrintLoadError, ss.str()); -// return; -// } -// if (m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue()) { -// m_SignalStateWrapper->m_CylinderPrintLoadFinished->SetValue(false); -// } -// Sleep(1000); -// } -// -// SetLoadInResult(In_Success, _(u8"缸体已载入完成").c_str()); -//} +void HBD1200OLD::GetAlarmState(SignalState& signalState) +{ + signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC + signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC + signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态 + signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态 + signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态 + signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态 + signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态 + signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式 + signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位 + + signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常 + signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常 + signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常 + signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常 + signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常 + signalState.m_OutsideOxygenLackAlarm = m_SignalStateWrapper->m_OutsideOxygenLackAlarm->GetValue(); //外界氧含量不足警告 + signalState.m_LaserChillerAlarm = m_SignalStateWrapper->m_LaserChillerAlarm->GetValue(); //激光器冷水机报警 + signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常 + signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常 + signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常 + signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常 + signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点 + signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警 + signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警 + signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警 + signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警 + signalState.m_HeatingInputAlarm = m_SignalStateWrapper->m_HeatingInputAlarm->GetValue(); //加热输入异常 + signalState.m_HeatingOutputAlarm = m_SignalStateWrapper->m_HeatingOutputAlarm->GetValue(); //加热输出异常 + + signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示 + signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示 + signalState.m_PrintStorageCar1BlockWarn = m_SignalStateWrapper->m_PrintStorageCar1BlockWarn->GetValue(); //打印存粉小车1堵塞警示 + + signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示 + signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示 + + signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告 + + signalState.m_CylinderExtendOnAlarm = m_SignalStateWrapper->m_CylinderExtendOnAlarm->GetValue(); //缸体固定气缸伸出不到位异常 + signalState.m_CylinderExtendOffAlarm = m_SignalStateWrapper->m_CylinderExtendOffAlarm->GetValue(); //缸体固定气缸缩回不到位异常 + signalState.m_PrintCylinderVerifyAlarm = m_SignalStateWrapper->m_PrintCylinderVerifyAlarm->GetValue(); //打印位缸体检测异常 + signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常 + signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常 + signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue(); + signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常 + signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常 + signalState.m_CleanBoxUpOpenAlarm = m_SignalStateWrapper->m_CleanBoxUpOpenAlarm->GetValue(); //清粉箱上盖气缸打开不到位异常 + signalState.m_CleanBoxUpCloseAlarm = m_SignalStateWrapper->m_CleanBoxUpCloseAlarm->GetValue(); //清粉箱上盖气缸关闭不到位异常 + signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //缸体吊装盖板打开异常 + signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //缸体吊装门打开异常 + signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常 + signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示 + signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示 + signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示 + signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示 + signalState.m_PowderPosition1Alarm = m_SignalStateWrapper->m_PowderPosition1Alarm->GetValue(); //粉仓料位感应器1异常 + signalState.m_PowderPosition2Alarm = m_SignalStateWrapper->m_PowderPosition2Alarm->GetValue(); //粉仓料位感应器2异常 + signalState.m_PowderPosition3Alarm = m_SignalStateWrapper->m_PowderPosition3Alarm->GetValue(); //粉仓料位感应器3异常 + signalState.m_PowderPosition4Alarm = m_SignalStateWrapper->m_PowderPosition4Alarm->GetValue(); //粉仓料位感应器4异常 + signalState.m_PowderPosition5Alarm = m_SignalStateWrapper->m_PowderPosition5Alarm->GetValue(); //粉仓料位感应器5异常 + signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常 + signalState.m_PrintOxygen1DeciceAlarm = m_SignalStateWrapper->m_PrintOxygen1DeciceAlarm->GetValue(); //打印舱测氧仪1异常 + signalState.m_PrintOxygen2DeviceAlarm = m_SignalStateWrapper->m_PrintOxygen2DeviceAlarm->GetValue(); //打印舱测氧仪2异常 + signalState.m_OutsideOxygenDeviceAlarm = m_SignalStateWrapper->m_OutsideOxygenDeviceAlarm->GetValue(); //室外测氧仪异常 + signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常 + signalState.m_ScannerChillerAlarm = m_SignalStateWrapper->m_ScannerChillerAlarm->GetValue(); //光路冷水机报警 + signalState.m_PurifierChillerAlarm = m_SignalStateWrapper->m_PurifierChillerAlarm->GetValue(); //净化器冷水机报警 + + signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常 + signalState.m_EleCylinderMainTorqueAlarm = m_SignalStateWrapper->m_EleCylinderMainTorqueAlarm->GetValue(); //电缸主轴扭力异常 + signalState.m_EleCylinderSlaveTorqueAlarm = m_SignalStateWrapper->m_EleCylinderSlaveTorqueAlarm->GetValue(); //电缸从轴扭力异常 + signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常 + signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常 + signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常 + signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败 + + signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限 + signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限 + signalState.m_EleCylinderMainOverSoftUpLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftUpLimit->GetValue(); //电缸主轴超软上限 + signalState.m_EleCylinderMainOverSoftDownLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftDownLimit->GetValue(); //电缸主轴超软下限 + signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限 + signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限 + signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限 + signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限 + signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示 + signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示 + signalState.m_PrintStorageCar2BlockAlarm = m_SignalStateWrapper->m_PrintStorageCar2BlockAlarm->GetValue(); //打印存粉小车2堵塞报警 -//void HBD1200OLD::LoadOutRun() -//{ -// SetLoadOutProcStep(Out_Start); -// if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInHand) { -// SetLoadOutResult(Out_Success, _(u8"缸体载出已完成").c_str()); -// return; -// } -// m_WaitSelectOutPosCommit = false; -// -// if (m_RunCfg->m_ShowUnloadHandPos) { -// m_NeedWaitSelectOutPos = true; -// -// while (!m_WaitSelectOutPosCommit || !m_LoadCtrlFlag) { -// Sleep(300); -// } -// } -// else { -// m_SelectOutPos = 0; -// } -// m_NeedWaitSelectOutPos = false; -// -// if (!m_LoadCtrlFlag) { -// SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); -// return; -// } -// if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintLoaded || -// m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintUnLoaded) { -// SetLoadOutProcStep(Out_CylinderPrintUnload); -// m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(true); -// Sleep(1000); -// while (m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue()) { -// Sleep(300); -// if (!m_LoadCtrlFlag) { -// m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(false); -// break; -// } -// } -// if (!m_LoadCtrlFlag) { -// SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); -// return; -// } -// Sleep(500); -// if (!m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue()) { -// stringstream ss; -// ss << _(u8"缸体打印位卸载异常:\n").c_str(); -// SignalState signalState; -// SignalService::GetInstance().GetSignalState(signalState); -// if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); -// if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); -// if (signalState.m_CylinderExtendOffAlarm) ss << _(u8"缸体固定气缸缩回不到位异常\n").c_str(); -// if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); -// if (signalState.m_PrintMainOverSoftUpLimit) ss << _(u8"打印主轴超软上限\n").c_str(); -// if (signalState.m_PrintMainOverSoftDownLimit) ss << _(u8"打印主轴超软下限\n").c_str(); -// if (signalState.m_MoldMainUpLimitActive) ss << _(u8"打印主轴上限位触发警示\n").c_str(); -// if (signalState.m_MoldMainDownLimitActive) ss << _(u8"打印主轴下限位触发警示\n").c_str(); -// if (signalState.m_MoldTorqueAlarm) ss << _(u8"打印主轴扭力异常\n").c_str(); -// if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); -// if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); -// if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); -// if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); -// SetLoadOutResult(Out_CylinderPrintUnloadError, ss.str()); -// return; -// } -// if (m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue()) { -// m_SignalStateWrapper->m_CylinderPrintUnloadFinished->SetValue(false); -// } -// Sleep(1000); -// -// } -// if (!m_LoadCtrlFlag) { -// SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); -// return; -// } -// if (m_SelectOutPos == 0) { -// -// if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanConnectedBox) { -// SetLoadOutResult(Out_Success, _(u8"缸体已载出到清粉位").c_str()); -// return; -// } -// -// if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintUnLoaded || -// m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInMid) { -// SetLoadOutProcStep(Out_CylinderReachClean); -// m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(true); -// Sleep(1000); -// while ( m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue()) { -// Sleep(300); -// if (!m_LoadCtrlFlag) { -// m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(false); -// break; -// } -// } -// if (!m_LoadCtrlFlag) { -// SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); -// return; -// } -// Sleep(500); -// if (!m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue()) { -// stringstream ss; -// ss << _(u8"缸体移动到清粉位异常:\n").c_str(); -// SignalState signalState; -// SignalService::GetInstance().GetSignalState(signalState); -// if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); -// if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); -// if (signalState.m_CylinderExtendOffAlarm) ss << _(u8"缸体固定气缸缩回不到位异常\n").c_str(); -// if (signalState.m_LoadAxisServoAlarmSignal) ss << _(u8"移载轴伺服驱动器异常\n").c_str(); -// if (signalState.m_LoadAxisOverSoftLeftLimit) ss << _(u8"移载轴超左软限\n").c_str(); -// if (signalState.m_LoadAxisOverSoftRightLimit) ss << _(u8"移载轴超右软限\n").c_str(); -// if (signalState.m_LoadAxisLeftLimit) ss << _(u8"移载轴左限位触发警示\n").c_str(); -// if (signalState.m_LoadAxisRightLimit) ss << _(u8"移载轴右限位触发警示\n").c_str(); -// if (signalState.m_LoadTorqueAlarm) ss << _(u8"移载轴扭力异常\n").c_str(); -// if (signalState.m_CylinderHandDoorOpenAlarm) ss << _(u8"缸体吊装门打开异常\n").c_str(); -// if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); -// if (signalState.m_HandPlatformCloseAlarm) ss << _(u8"吊装盖板关闭异常\n").c_str(); -// if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); -// if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); -// if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); -// if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); -// SetLoadOutResult(Out_CylinderReachCleanError, ss.str()); -// return; -// } -// if (m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue()) { -// m_SignalStateWrapper->m_CylinderReachCleanFinished->SetValue(false); -// } -// Sleep(1000); -// } -// if (!m_LoadCtrlFlag) { -// SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); -// return; -// } -// if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanUnConnectBox) { -// m_WaitConnectBoxCommit = true; -// while (m_LoadCtrlFlag && m_WaitConnectBoxCommit) { -// Sleep(300); -// } -// if (!m_WaitConnectBoxCommit) -// { -// SetLoadOutProcStep(Out_CylinderConnectCleanBox); -// m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(true); -// Sleep(1000); -// while (m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue()) { -// Sleep(300); -// if (!m_LoadCtrlFlag) { -// m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(false); -// break; -// } -// } -// if (!m_LoadCtrlFlag) { -// SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); -// return; -// } -// int count = 0; -// while (m_LoadCtrlFlag && (count < 30)) -// { -// Sleep(500); -// if (m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue()) { -// break; -// } -// count++; -// } -// Sleep(500); -// if (!m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue()) { -// stringstream ss; -// ss << _(u8"缸体与清粉箱连接异常:\n").c_str(); -// SignalState signalState; -// SignalService::GetInstance().GetSignalState(signalState); -// if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); -// if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); -// if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); -// if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); -// if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); -// if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); -// if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); -// SetLoadOutResult(Out_CylinderConnectCleanBoxError, ss.str()); -// return; -// } -// if (m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue()) { -// m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->SetValue(false); -// } -// Sleep(1000); -// } -// } -// SetLoadOutResult(Out_Success, _(u8"缸体载出已完成").c_str()); -// } -// else if (m_SelectOutPos == 1) { -// -// if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanConnectedBox) { -// SetLoadOutProcStep(Out_CylinderDisconnectCleanBox); -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(true); -// Sleep(1000); -// while (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue()) { -// Sleep(300); -// if (!m_LoadCtrlFlag) { -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(false); -// break; -// } -// } -// if (!m_LoadCtrlFlag) { -// SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); -// return; -// } -// int count = 0; -// while (m_LoadCtrlFlag && (count < 30)) -// { -// Sleep(500); -// if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { -// break; -// } -// count++; -// } -// Sleep(500); -// if (!m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { -// stringstream ss; -// ss << _(u8"缸体与清粉箱分离异常:\n").c_str(); -// SignalState signalState; -// SignalService::GetInstance().GetSignalState(signalState); -// if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); -// if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); -// if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); -// if (signalState.m_PrintMainOverSoftUpLimit) ss << _(u8"打印主轴超软上限\n").c_str(); -// if (signalState.m_PrintMainOverSoftDownLimit) ss << _(u8"打印主轴超软下限\n").c_str(); -// if (signalState.m_MoldMainUpLimitActive) ss << _(u8"打印主轴上限位触发警示\n").c_str(); -// if (signalState.m_MoldMainDownLimitActive) ss << _(u8"打印主轴下限位触发警示\n").c_str(); -// if (signalState.m_MoldTorqueAlarm) ss << _(u8"打印主轴扭力异常\n").c_str(); -// if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); -// if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); -// if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); -// if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); -// SetLoadOutResult(Out_CylinderDisconnectCleanBoxError, ss.str()); -// return; -// } -// if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { -// m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->SetValue(false); -// } -// Sleep(1000); -// } -// if (!m_LoadCtrlFlag) { -// SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); -// return; -// } -// -// if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintUnLoaded || -// m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInMid || -// m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanUnConnectBox) { -// SetLoadOutProcStep(Out_CylinderReachHand); -// m_SignalStateWrapper->m_CylinderMoveHandPos->SetValue(true); -// Sleep(1000); -// while ( m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue()) { -// Sleep(300); -// if (!m_LoadCtrlFlag) { -// m_SignalStateWrapper->m_CylinderMoveHandPos->SetValue(false); -// break; -// } -// } -// if (!m_LoadCtrlFlag) { -// SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); -// return; -// } -// Sleep(500); -// if (!m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue()) { -// stringstream ss; -// ss << _(u8"缸体移动到吊装位异常:\n").c_str(); -// SignalState signalState; -// SignalService::GetInstance().GetSignalState(signalState); -// if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); -// if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); -// if (signalState.m_CylinderExtendOffAlarm) ss << _(u8"缸体固定气缸缩回不到位异常\n").c_str(); -// if (signalState.m_LoadAxisServoAlarmSignal) ss << _(u8"移载轴伺服驱动器异常\n").c_str(); -// if (signalState.m_LoadAxisOverSoftLeftLimit) ss << _(u8"移载轴超左软限\n").c_str(); -// if (signalState.m_LoadAxisOverSoftRightLimit) ss << _(u8"移载轴超右软限\n").c_str(); -// if (signalState.m_LoadAxisLeftLimit) ss << _(u8"移载轴左限位触发警示\n").c_str(); -// if (signalState.m_LoadAxisRightLimit) ss << _(u8"移载轴右限位触发警示\n").c_str(); -// if (signalState.m_LoadTorqueAlarm) ss << _(u8"移载轴扭力异常\n").c_str(); -// if (signalState.m_CylinderHandDoorOpenAlarm) ss << _(u8"缸体吊装门打开异常\n").c_str(); -// if (signalState.m_CylinderHandPlatformOpenAlarm) ss << _(u8"缸体吊装盖板打开异常\n").c_str(); -// if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); -// if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); -// if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); -// if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); -// if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); -// if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); -// if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); -// SetLoadOutResult(Out_CylinderReachHandError, ss.str()); -// return; -// } -// if (m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue()) { -// m_SignalStateWrapper->m_CylinderMovedHandPos->SetValue(false); -// } -// Sleep(1000); -// } -// SetLoadOutResult(Out_Success, _(u8"缸体载出已完成").c_str()); -// } -// -//} + signalState.m_LoadAxisManualAlarmSignal = m_SignalStateWrapper->m_LoadAxisManualAlarmSignal->GetValue(); //移栽手动异常 + signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常 + signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常 + signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常 + signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常 + signalState.m_EleCylinderMainServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderMainServoAlarmSignal->GetValue(); //电缸主轴伺服异常 + signalState.m_EleCylinderPrintHandupAlarmSignal = m_SignalStateWrapper->m_EleCylinderPrintHandupAlarmSignal->GetValue(); //电缸打印位顶升异常 + signalState.m_CleanBoxTopDoorRiseAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorRiseAlarmSignal->GetValue(); //清粉箱顶门升高异常 + signalState.m_CleanBoxTopDoorFallAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorFallAlarmSignal->GetValue(); //清粉箱顶门降低异常 + + signalState.m_CoverReachAcceptPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachAcceptPowderAlarmSignal->GetValue(); //铺粉轴到接粉位异常 + signalState.m_CoverReachDropPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachDropPowderAlarmSignal->GetValue(); //铺粉轴到下粉位异常 + signalState.m_EleCylinderSlaveServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderSlaveServoAlarmSignal->GetValue(); //电缸从轴伺服异常 + signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); //光栅尺检测异常 + signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); //打印主轴软急停触发 + signalState.m_EleCylinderSoftStopTrigger = m_SignalStateWrapper->m_EleCylinderSoftStopTrigger->GetValue(); //电缸主轴软急停触发 + signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); //移载轴软急停触发 + signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); //铺粉轴软急停触发 + signalState.m_CoverHomeException = m_SignalStateWrapper->m_CoverHomeException->GetValue(); //铺粉归原点异常 + + signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R + signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW + signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW + signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW + signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW + signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW + signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW + signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW + signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW + signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW + signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW + signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW + signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW + signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW + signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW + signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW + signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW + signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW + signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW + signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W + signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R + signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW + signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W + signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W + signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W + signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW + signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R + + signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W + signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R + signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW + signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R + signalState.m_PrintVacuumTriger = m_SignalStateWrapper->m_PrintVacuumTriger->GetValue(); //打印室启动吸尘器_W + signalState.m_DisableRasterJudge = m_SignalStateWrapper->m_DisableRasterJudge->GetValue(); //屏蔽光栅尺判断_W + signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R + signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R + + signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R + signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R + signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R + signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R + signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R + signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R + signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R + + signalState.m_SheildPrintPosSensor = m_SignalStateWrapper->m_SheildPrintPosSensor->GetValue(); + signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue(); + signalState.m_SheildCylinderFixSensor = m_SignalStateWrapper->m_SheildCylinderFixSensor->GetValue(); + signalState.m_UseNanoUnit = m_SignalStateWrapper->m_UseNanoUnit->GetValue(); + signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue(); + signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气 + signalState.m_UnuseCoverReachSensor = m_SignalStateWrapper->m_UnuseCoverReachSensor->GetValue(); //不使用铺粉轴到位感应器 + signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue(); + signalState.m_LinearEncoderOppDirection = m_SignalStateWrapper->m_LinearEncoderOppDirection->GetValue(); + + signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 + signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内 + signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限 + signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发 + signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 + signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限 + signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发 + signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常 + signalState.m_PrintMoldInPrintPos = m_SignalStateWrapper->m_PrintMoldInPrintPos->GetValue(); //缸体在打印位 + signalState.m_PrintMoldInCleanPos = m_SignalStateWrapper->m_PrintMoldInCleanPos->GetValue(); //缸体在清粉位 + signalState.m_PrintMoldInHandPos = m_SignalStateWrapper->m_PrintMoldInHandPos->GetValue(); //缸体在吊装位 + + + signalState.m_CleanTorqueUpInsideLimit = m_SignalStateWrapper->m_CleanTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 + signalState.m_CleanAxisPosUpInSoftLimit = m_SignalStateWrapper->m_CleanAxisPosUpInSoftLimit->GetValue(); //轴位置没超过软上限 + signalState.m_CleanTorqueDownInsideLimit = m_SignalStateWrapper->m_CleanTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 + signalState.m_CleanAxisPosDownInsideSoftLimit = m_SignalStateWrapper->m_CleanAxisPosDownInsideSoftLimit->GetValue(); //轴位置没超过软下限 + signalState.m_CleanUpInsideLimit = m_SignalStateWrapper->m_CleanUpInsideLimit->GetValue(); //上限位没触发 + signalState.m_CleanDownInsideLimit = m_SignalStateWrapper->m_CleanDownInsideLimit->GetValue(); //下限位没触发 + signalState.m_EleMainServoNoAlarm = m_SignalStateWrapper->m_EleMainServoNoAlarm->GetValue(); //电缸主轴伺服无异常 + signalState.m_EleSlaveServoNoAlarm = m_SignalStateWrapper->m_EleSlaveServoNoAlarm->GetValue(); //电缸从轴伺服无异常 + + signalState.m_PrintJackupInSafePos = m_SignalStateWrapper->m_PrintJackupInSafePos->GetValue(); //打印顶升轴在安全位 + signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 + signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限 + signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限 + signalState.m_CylinderFixInReleasePos = m_SignalStateWrapper->m_CylinderFixInReleasePos->GetValue(); //缸体固定气缸在松开位 + signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发 + signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发 + signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常 + signalState.m_EleServoInBottomPos = m_SignalStateWrapper->m_EleServoInBottomPos->GetValue(); //电缸在底座位 + + signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面 + signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 + signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限 + signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限 + signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发 + signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发 + signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue(); + + signalState.m_PrintStoreCar1ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar1ExhaustEnable->GetValue(); //触发打印存粉小车1排粉 + signalState.m_PrintStoreCar2ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar2ExhaustEnable->GetValue(); //触发打印存粉小车2排粉 + signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En + signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位 + signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中 + signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕 + + signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN + signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气 + signalState.m_AllowRiseWindSpeed = m_SignalStateWrapper->m_AllowRiseWindSpeed->GetValue(); //允许提风速 + signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试 + signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中 + signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功 + signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败 + + signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位 + signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面 + signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面 + signalState.m_IsInPrintJackupPos = m_SignalStateWrapper->m_IsInPrintJackupPos->GetValue(); //打印顶升位 + signalState.m_IsInCleanJackupPos = m_SignalStateWrapper->m_IsInCleanJackupPos->GetValue(); //清粉顶升位 + signalState.m_IsInEleCylinderBottomFixPos = m_SignalStateWrapper->m_IsInEleCylinderBottomFixPos->GetValue(); //底座贴合位 + signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位 + signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位 + signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位 + signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位 + + signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException); + signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException; + signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException; + //memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState)); +} + +void HBD1200OLD::LoadInRun() { + SetLoadInProcStep(In_Start); + if ((m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintLoaded) && + m_IOCfgWrapper->m_Print3RCylinderContact->IsActive()) { + SetLoadInResult(In_Success, _(u8"缸体已载入完成").c_str()); + return; + } + + if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanConnectedBox) { + SetLoadInProcStep(In_CylinderDisconnectCleanBox); + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(true); + Sleep(1000); + while (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue()) { + Sleep(300); + if (!m_LoadCtrlFlag) { + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(false); + break; + } + } + if (!m_LoadCtrlFlag) { + SetLoadInResult(In_Intercept, _(u8"载入中断").c_str()); + return; + } + int count = 0; + while (m_LoadCtrlFlag && (count < 18)) + { + Sleep(500); + if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { + break; + } + count++; + } + Sleep(500); + if (!m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { + stringstream ss; + ss << _(u8"缸体与清粉箱分离异常:\n").c_str(); + SignalState signalState; + SignalService::GetInstance().GetSignalState(signalState); + if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); + if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); + if (signalState.m_PrintMainOverSoftUpLimit) ss << _(u8"打印主轴超软上限\n").c_str(); + if (signalState.m_PrintMainOverSoftDownLimit) ss << _(u8"打印主轴超软下限\n").c_str(); + if (signalState.m_MoldMainUpLimitActive) ss << _(u8"打印主轴上限位触发警示\n").c_str(); + if (signalState.m_MoldMainDownLimitActive) ss << _(u8"打印主轴下限位触发警示\n").c_str(); + if (signalState.m_MoldTorqueAlarm) ss << _(u8"打印主轴扭力异常\n").c_str(); + if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); + if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); + if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); + if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); + if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); + SetLoadInResult(In_CylinderDisconnectCleanBoxError, ss.str()); + return; + } + if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->SetValue(false); + } + Sleep(1000); + } + if (!m_LoadCtrlFlag) { + SetLoadInResult(In_Intercept, _(u8"载入中断").c_str()); + return; + } + + if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanUnConnectBox || + m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInHand || + m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInMid) { + SetLoadInProcStep(In_CylinderReachPrint); + m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(true); + Sleep(1000); + while (m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue()) { + Sleep(300); + if (!m_LoadCtrlFlag) { + m_SignalStateWrapper->m_CylinderReachPrintTriger->SetValue(false); + break; + } + } + if (!m_LoadCtrlFlag) { + SetLoadInResult(In_Intercept, _(u8"载入中断").c_str()); + return; + } + Sleep(500); + if (!m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue()) { + stringstream ss; + ss << _(u8"缸体移动到打印位异常:\n").c_str(); + SignalState signalState; + SignalService::GetInstance().GetSignalState(signalState); + if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); + if (signalState.m_CylinderExtendOffAlarm) ss << _(u8"缸体固定气缸缩回不到位异常\n").c_str(); + if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); + if (signalState.m_LoadAxisServoAlarmSignal) ss << _(u8"移载轴伺服驱动器异常\n").c_str(); + if (signalState.m_LoadAxisOverSoftLeftLimit) ss << _(u8"移载轴超左软限\n").c_str(); + if (signalState.m_LoadAxisOverSoftRightLimit) ss << _(u8"移载轴超右软限\n").c_str(); + if (signalState.m_LoadAxisLeftLimit) ss << _(u8"移载轴左限位触发警示\n").c_str(); + if (signalState.m_LoadAxisRightLimit) ss << _(u8"移载轴右限位触发警示\n").c_str(); + if (signalState.m_LoadTorqueAlarm) ss << _(u8"移载轴扭力异常\n").c_str(); + if (signalState.m_CylinderHandDoorOpenAlarm) ss << _(u8"缸体吊装门打开异常\n").c_str(); + if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); + if (signalState.m_HandPlatformCloseAlarm) ss << _(u8"吊装盖板关闭异常\n").c_str(); + if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); + if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); + if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); + if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); + SetLoadInResult(In_CylinderReachPrintError, ss.str()); + return; + } + if (m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue()) { + m_SignalStateWrapper->m_CylinderReachPrintFinished->SetValue(false); + } + Sleep(1000); + } + if (!m_LoadCtrlFlag) { + SetLoadInResult(In_Intercept, _(u8"载入中断").c_str()); + return; + } + + if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintUnLoaded) { + SetLoadInProcStep(In_CylinderPrintLoad); + m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(true); + Sleep(500); + while ( m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue()) { + Sleep(300); + if (!m_LoadCtrlFlag) { + m_SignalStateWrapper->m_CylinderPrintLoadTriger->SetValue(false); + break; + } + } + if (!m_LoadCtrlFlag) { + SetLoadInResult(In_Intercept, _(u8"载入中断").c_str()); + return; + } + Sleep(500); + if (!m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue()) { + stringstream ss; + ss << _(u8"缸体打印位装载异常:\n").c_str(); + SignalState signalState; + SignalService::GetInstance().GetSignalState(signalState); + if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); + if (signalState.m_CylinderExtendOnAlarm) ss << _(u8"缸体固定气缸伸出不到位异常\n").c_str();; + if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); + if (signalState.m_EleCylinderPrintHandupAlarmSignal) ss << _(u8"电缸打印位顶升异常\n").c_str(); + if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); + if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); + if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); + if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); + if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); + SetLoadInResult(In_CylinderPrintLoadError, ss.str()); + return; + } + if (m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue()) { + m_SignalStateWrapper->m_CylinderPrintLoadFinished->SetValue(false); + } + Sleep(1000); + } + + SetLoadInResult(In_Success, _(u8"缸体已载入完成").c_str()); +} + + +void HBD1200OLD::LoadOutRun() +{ + SetLoadOutProcStep(Out_Start); + if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInHand) { + SetLoadOutResult(Out_Success, _(u8"缸体载出已完成").c_str()); + return; + } + m_WaitSelectOutPosCommit->SetValue(false); + + if (m_RunCfg->m_ShowUnloadHandPos) { + m_NeedWaitSelectOutPos->SetValue(true); + + while (!m_WaitSelectOutPosCommit->GetValue() || !m_LoadCtrlFlag) { + Sleep(300); + } + } + else { + m_SelectOutPos->SetValue(0); + } + m_NeedWaitSelectOutPos->SetValue(false); + + if (!m_LoadCtrlFlag) { + SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); + return; + } + if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintLoaded || + m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintUnLoaded) { + SetLoadOutProcStep(Out_CylinderPrintUnload); + m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(true); + Sleep(1000); + while (m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue()) { + Sleep(300); + if (!m_LoadCtrlFlag) { + m_SignalStateWrapper->m_CylinderPrintUnloadTriger->SetValue(false); + break; + } + } + if (!m_LoadCtrlFlag) { + SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); + return; + } + Sleep(500); + if (!m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue()) { + stringstream ss; + ss << _(u8"缸体打印位卸载异常:\n").c_str(); + SignalState signalState; + SignalService::GetInstance().GetSignalState(signalState); + if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); + if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); + if (signalState.m_CylinderExtendOffAlarm) ss << _(u8"缸体固定气缸缩回不到位异常\n").c_str(); + if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); + if (signalState.m_PrintMainOverSoftUpLimit) ss << _(u8"打印主轴超软上限\n").c_str(); + if (signalState.m_PrintMainOverSoftDownLimit) ss << _(u8"打印主轴超软下限\n").c_str(); + if (signalState.m_MoldMainUpLimitActive) ss << _(u8"打印主轴上限位触发警示\n").c_str(); + if (signalState.m_MoldMainDownLimitActive) ss << _(u8"打印主轴下限位触发警示\n").c_str(); + if (signalState.m_MoldTorqueAlarm) ss << _(u8"打印主轴扭力异常\n").c_str(); + if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); + if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); + if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); + if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); + SetLoadOutResult(Out_CylinderPrintUnloadError, ss.str()); + return; + } + if (m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue()) { + m_SignalStateWrapper->m_CylinderPrintUnloadFinished->SetValue(false); + } + Sleep(1000); + + } + if (!m_LoadCtrlFlag) { + SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); + return; + } + if (m_SelectOutPos == 0) { + + if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanConnectedBox) { + SetLoadOutResult(Out_Success, _(u8"缸体已载出到清粉位").c_str()); + return; + } + + if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintUnLoaded || + m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInMid) { + SetLoadOutProcStep(Out_CylinderReachClean); + m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(true); + Sleep(1000); + while ( m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue()) { + Sleep(300); + if (!m_LoadCtrlFlag) { + m_SignalStateWrapper->m_CylinderReachCleanTriger->SetValue(false); + break; + } + } + if (!m_LoadCtrlFlag) { + SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); + return; + } + Sleep(500); + if (!m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue()) { + stringstream ss; + ss << _(u8"缸体移动到清粉位异常:\n").c_str(); + SignalState signalState; + SignalService::GetInstance().GetSignalState(signalState); + if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); + if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); + if (signalState.m_CylinderExtendOffAlarm) ss << _(u8"缸体固定气缸缩回不到位异常\n").c_str(); + if (signalState.m_LoadAxisServoAlarmSignal) ss << _(u8"移载轴伺服驱动器异常\n").c_str(); + if (signalState.m_LoadAxisOverSoftLeftLimit) ss << _(u8"移载轴超左软限\n").c_str(); + if (signalState.m_LoadAxisOverSoftRightLimit) ss << _(u8"移载轴超右软限\n").c_str(); + if (signalState.m_LoadAxisLeftLimit) ss << _(u8"移载轴左限位触发警示\n").c_str(); + if (signalState.m_LoadAxisRightLimit) ss << _(u8"移载轴右限位触发警示\n").c_str(); + if (signalState.m_LoadTorqueAlarm) ss << _(u8"移载轴扭力异常\n").c_str(); + if (signalState.m_CylinderHandDoorOpenAlarm) ss << _(u8"缸体吊装门打开异常\n").c_str(); + if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); + if (signalState.m_HandPlatformCloseAlarm) ss << _(u8"吊装盖板关闭异常\n").c_str(); + if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); + if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); + if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); + if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); + SetLoadOutResult(Out_CylinderReachCleanError, ss.str()); + return; + } + if (m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue()) { + m_SignalStateWrapper->m_CylinderReachCleanFinished->SetValue(false); + } + Sleep(1000); + } + if (!m_LoadCtrlFlag) { + SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); + return; + } + if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanUnConnectBox) { + m_WaitConnectBoxCommit->SetValue(true); + while (m_LoadCtrlFlag && m_WaitConnectBoxCommit) { + Sleep(300); + } + if (!m_WaitConnectBoxCommit) + { + SetLoadOutProcStep(Out_CylinderConnectCleanBox); + m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(true); + Sleep(1000); + while (m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue()) { + Sleep(300); + if (!m_LoadCtrlFlag) { + m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->SetValue(false); + break; + } + } + if (!m_LoadCtrlFlag) { + SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); + return; + } + int count = 0; + while (m_LoadCtrlFlag && (count < 30)) + { + Sleep(500); + if (m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue()) { + break; + } + count++; + } + Sleep(500); + if (!m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue()) { + stringstream ss; + ss << _(u8"缸体与清粉箱连接异常:\n").c_str(); + SignalState signalState; + SignalService::GetInstance().GetSignalState(signalState); + if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); + if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); + if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); + if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); + if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); + if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); + if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); + SetLoadOutResult(Out_CylinderConnectCleanBoxError, ss.str()); + return; + } + if (m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue()) { + m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->SetValue(false); + } + Sleep(1000); + } + } + SetLoadOutResult(Out_Success, _(u8"缸体载出已完成").c_str()); + } + else if (m_SelectOutPos->GetValue() == 1) { + + if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanConnectedBox) { + SetLoadOutProcStep(Out_CylinderDisconnectCleanBox); + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(true); + Sleep(1000); + while (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue()) { + Sleep(300); + if (!m_LoadCtrlFlag) { + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->SetValue(false); + break; + } + } + if (!m_LoadCtrlFlag) { + SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); + return; + } + int count = 0; + while (m_LoadCtrlFlag && (count < 30)) + { + Sleep(500); + if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { + break; + } + count++; + } + Sleep(500); + if (!m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { + stringstream ss; + ss << _(u8"缸体与清粉箱分离异常:\n").c_str(); + SignalState signalState; + SignalService::GetInstance().GetSignalState(signalState); + if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); + if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); + if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); + if (signalState.m_PrintMainOverSoftUpLimit) ss << _(u8"打印主轴超软上限\n").c_str(); + if (signalState.m_PrintMainOverSoftDownLimit) ss << _(u8"打印主轴超软下限\n").c_str(); + if (signalState.m_MoldMainUpLimitActive) ss << _(u8"打印主轴上限位触发警示\n").c_str(); + if (signalState.m_MoldMainDownLimitActive) ss << _(u8"打印主轴下限位触发警示\n").c_str(); + if (signalState.m_MoldTorqueAlarm) ss << _(u8"打印主轴扭力异常\n").c_str(); + if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); + if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); + if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); + if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); + SetLoadOutResult(Out_CylinderDisconnectCleanBoxError, ss.str()); + return; + } + if (m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue()) { + m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->SetValue(false); + } + Sleep(1000); + } + if (!m_LoadCtrlFlag) { + SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); + return; + } + + if (m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInPrintUnLoaded || + m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInMid || + m_SignalStateWrapper->m_CylinderState->GetValue() == CylinderInCleanUnConnectBox) { + SetLoadOutProcStep(Out_CylinderReachHand); + m_SignalStateWrapper->m_CylinderMoveHandPos->SetValue(true); + Sleep(1000); + while ( m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue()) { + Sleep(300); + if (!m_LoadCtrlFlag) { + m_SignalStateWrapper->m_CylinderMoveHandPos->SetValue(false); + break; + } + } + if (!m_LoadCtrlFlag) { + SetLoadOutResult(Out_Intercept, _(u8"载出中断").c_str()); + return; + } + Sleep(500); + if (!m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue()) { + stringstream ss; + ss << _(u8"缸体移动到吊装位异常:\n").c_str(); + SignalState signalState; + SignalService::GetInstance().GetSignalState(signalState); + if (signalState.m_HighPressureLackAlarm) ss << _(u8"高压气压力不足异常\n").c_str(); + if (signalState.m_SystemStopAlarm) ss << _(u8"系统急停异常\n").c_str(); + if (signalState.m_CylinderExtendOffAlarm) ss << _(u8"缸体固定气缸缩回不到位异常\n").c_str(); + if (signalState.m_LoadAxisServoAlarmSignal) ss << _(u8"移载轴伺服驱动器异常\n").c_str(); + if (signalState.m_LoadAxisOverSoftLeftLimit) ss << _(u8"移载轴超左软限\n").c_str(); + if (signalState.m_LoadAxisOverSoftRightLimit) ss << _(u8"移载轴超右软限\n").c_str(); + if (signalState.m_LoadAxisLeftLimit) ss << _(u8"移载轴左限位触发警示\n").c_str(); + if (signalState.m_LoadAxisRightLimit) ss << _(u8"移载轴右限位触发警示\n").c_str(); + if (signalState.m_LoadTorqueAlarm) ss << _(u8"移载轴扭力异常\n").c_str(); + if (signalState.m_CylinderHandDoorOpenAlarm) ss << _(u8"缸体吊装门打开异常\n").c_str(); + if (signalState.m_CylinderHandPlatformOpenAlarm) ss << _(u8"缸体吊装盖板打开异常\n").c_str(); + if (signalState.m_EleCylinderMainServoAlarmSignal) ss << _(u8"电缸主轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderSlaveServoAlarmSignal) ss << _(u8"电缸从轴伺服异常\n").c_str(); + if (signalState.m_EleCylinderMainTorqueAlarm) ss << _(u8"电缸主轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderSlaveTorqueAlarm) ss << _(u8"电缸从轴扭力异常\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftUpLimit) ss << _(u8"电缸超上软限\n").c_str(); + if (signalState.m_EleCylinderMainOverSoftDownLimit) ss << _(u8"电缸超下软限\n").c_str(); + if (signalState.m_PrintMainSoftStopTrigger) ss << _(u8"打印主轴软急停触发\n").c_str(); + if (signalState.m_EleCylinderSoftStopTrigger) ss << _(u8"电缸主从轴软急停触发\n").c_str(); + if (signalState.m_LoadAxisSoftStopTrigger) ss << _(u8"移载轴软急停触发\n").c_str(); + if (signalState.m_CoverSoftStopTrigger) ss << _(u8"铺粉轴软急停触发\n").c_str(); + SetLoadOutResult(Out_CylinderReachHandError, ss.str()); + return; + } + if (m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue()) { + m_SignalStateWrapper->m_CylinderMovedHandPos->SetValue(false); + } + Sleep(1000); + } + SetLoadOutResult(Out_Success, _(u8"缸体载出已完成").c_str()); + } + +} //bool HBD1200OLD::CheckPrintMoldReady() //{ diff --git a/PrintS/Machine/HBD1200OLD.h b/PrintS/Machine/HBD1200OLD.h index cf54ac3..8b02c03 100644 --- a/PrintS/Machine/HBD1200OLD.h +++ b/PrintS/Machine/HBD1200OLD.h @@ -84,14 +84,14 @@ public: void InitSignal(SignalStateWrapper* ssw, PLCReveiver* cc); void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc); void InitPLCCommand(vector& vecs); - //void GetAlarmState(SignalState& signalState); + void GetAlarmState(SignalState& signalState); //bool CheckPrintMoldReady(); private: static void CheckIO_V0(vector&ins, IOCfgWrapper* iocfgWrapper, string str, int type); static void ProcReadPLC(void* pobject, Command* pcommand); static void ProcReadPLCData(void* pobject, Command* pcommand); - void LoadInRun() {} - void LoadOutRun() {} + void LoadInRun(); + void LoadOutRun(); bool IsLoadAxisCanMoveLeft(); string GetLoadAxisCanotMoveLeftInfo(); diff --git a/PrintS/Machine/HBD1500.cpp b/PrintS/Machine/HBD1500.cpp index dc021dc..0a1a776 100644 --- a/PrintS/Machine/HBD1500.cpp +++ b/PrintS/Machine/HBD1500.cpp @@ -6228,277 +6228,277 @@ void HBD1500::ProcReadPLCData(void* pobject, Command* pcommand) } -//void HBD1500::GetAlarmState(SignalState& signalState) -//{ -// signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC -// signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC -// signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态 -// signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态 -// signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态 -// signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态 -// signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态 -// signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式 -// signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位 -// -// signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常 -// signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常 -// signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常 -// signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常 -// signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常 -// signalState.m_OutsideOxygenLackAlarm = m_SignalStateWrapper->m_OutsideOxygenLackAlarm->GetValue(); //外界氧含量不足警告 -// signalState.m_LaserChillerAlarm = m_SignalStateWrapper->m_LaserChillerAlarm->GetValue(); //激光器冷水机报警 -// signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常 -// signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常 -// signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常 -// signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常 -// signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点 -// signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警 -// signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警 -// signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警 -// signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警 -// signalState.m_HeatingInputAlarm = m_SignalStateWrapper->m_HeatingInputAlarm->GetValue(); //加热输入异常 -// signalState.m_HeatingOutputAlarm = m_SignalStateWrapper->m_HeatingOutputAlarm->GetValue(); //加热输出异常 -// -// signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示 -// signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示 -// signalState.m_PrintStorageCar1BlockWarn = m_SignalStateWrapper->m_PrintStorageCar1BlockWarn->GetValue(); //打印存粉小车1堵塞警示 -// -// signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示 -// signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示 -// signalState.m_Print3RSeparateAlarm = m_SignalStateWrapper->m_Print3RSeparateAlarm->GetValue(); //打印3R脱离感应器异常 -// signalState.m_Print3RConnectAlarm = m_SignalStateWrapper->m_Print3RConnectAlarm->GetValue(); //打印3R贴合感应器异常 -// signalState.m_Print3RDisableAlarm = m_SignalStateWrapper->m_Print3RDisableAlarm->GetValue(); //打印3R失效异常 -// signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告 -// signalState.m_PrintPressOnDisableAlarm = m_SignalStateWrapper->m_PrintPressOnDisableAlarm->GetValue(); //打印位压紧气缸压紧不到位异常 -// signalState.m_PrintPressOffDisableAlarm = m_SignalStateWrapper->m_PrintPressOffDisableAlarm->GetValue(); //打印位压紧气缸松开不到位异常 -// signalState.m_PrintJackUpDisableAlarm = m_SignalStateWrapper->m_PrintJackUpDisableAlarm->GetValue(); //打印顶升气缸顶升不到位异常 -// signalState.m_PrintJackDownDisableAlarm = m_SignalStateWrapper->m_PrintJackDownDisableAlarm->GetValue(); //打印顶升气缸下降不到位异常 -// signalState.m_PrintSupportOnDisableAlarm = m_SignalStateWrapper->m_PrintSupportOnDisableAlarm->GetValue(); //打印支撑气缸支撑不到位异常 -// signalState.m_PrintSupportOffDisableAlarm = m_SignalStateWrapper->m_PrintSupportOffDisableAlarm->GetValue(); //打印支撑气缸避让不到位异常 -// signalState.m_CylinderExtendOnAlarm = m_SignalStateWrapper->m_CylinderExtendOnAlarm->GetValue(); //缸体固定气缸伸出不到位异常 -// signalState.m_CylinderExtendOffAlarm = m_SignalStateWrapper->m_CylinderExtendOffAlarm->GetValue(); //缸体固定气缸缩回不到位异常 -// signalState.m_PrintCylinderVerifyAlarm = m_SignalStateWrapper->m_PrintCylinderVerifyAlarm->GetValue(); //打印位缸体检测异常 -// signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常 -// signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常 -// signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue(); -// signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常 -// signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常 -// signalState.m_CleanBoxUpOpenAlarm = m_SignalStateWrapper->m_CleanBoxUpOpenAlarm->GetValue(); //清粉箱上盖气缸打开不到位异常 -// signalState.m_CleanBoxUpCloseAlarm = m_SignalStateWrapper->m_CleanBoxUpCloseAlarm->GetValue(); //清粉箱上盖气缸关闭不到位异常 -// signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //清粉箱支撑气缸支撑不到位异常 -// signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //清粉箱支撑气缸避让不到位异常 -// signalState.m_CleanBoxPressOnAlarm = m_SignalStateWrapper->m_CleanBoxPressOnAlarm->GetValue(); //清粉箱压紧气缸压紧不到位异常 -// signalState.m_CleanBoxPressOffAlarm = m_SignalStateWrapper->m_CleanBoxPressOffAlarm->GetValue(); //清粉箱压紧气缸松开不到位异常 -// signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常 -// signalState.m_CleanPosPressOnAlarm = m_SignalStateWrapper->m_CleanPosPressOnAlarm->GetValue(); //清粉位压紧气缸压紧不到位异常 -// signalState.m_CleanPosPressOffAlarm = m_SignalStateWrapper->m_CleanPosPressOffAlarm->GetValue(); //清粉位压紧气缸松开不到位异常 -// signalState.m_CleanPosPreventCylinderOnAlarm = m_SignalStateWrapper->m_CleanPosPreventCylinderOnAlarm->GetValue(); -// signalState.m_CleanPosPreventCylinderOffAlarm = m_SignalStateWrapper->m_CleanPosPreventCylinderOffAlarm->GetValue(); -// signalState.m_Clean3RDisableAlarm = m_SignalStateWrapper->m_Clean3RDisableAlarm->GetValue(); //清粉3R失效异常 -// signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示 -// signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示 -// signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示 -// signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示 -// signalState.m_LoadAxisSearchEdgeDisableAlarm = m_SignalStateWrapper->m_LoadAxisSearchEdgeDisableAlarm->GetValue(); //移载寻边感应器失效异常 -// signalState.m_PowderPosition1Alarm = m_SignalStateWrapper->m_PowderPosition1Alarm->GetValue(); //粉仓料位感应器1异常 -// signalState.m_PowderPosition2Alarm = m_SignalStateWrapper->m_PowderPosition2Alarm->GetValue(); //粉仓料位感应器2异常 -// signalState.m_PowderPosition3Alarm = m_SignalStateWrapper->m_PowderPosition3Alarm->GetValue(); //粉仓料位感应器3异常 -// signalState.m_PowderPosition4Alarm = m_SignalStateWrapper->m_PowderPosition4Alarm->GetValue(); //粉仓料位感应器4异常 -// signalState.m_PowderPosition5Alarm = m_SignalStateWrapper->m_PowderPosition5Alarm->GetValue(); //粉仓料位感应器5异常 -// signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常 -// signalState.m_PrintOxygen1DeciceAlarm = m_SignalStateWrapper->m_PrintOxygen1DeciceAlarm->GetValue(); //打印舱测氧仪1异常 -// signalState.m_PrintOxygen2DeviceAlarm = m_SignalStateWrapper->m_PrintOxygen2DeviceAlarm->GetValue(); //打印舱测氧仪2异常 -// signalState.m_OutsideOxygenDeviceAlarm = m_SignalStateWrapper->m_OutsideOxygenDeviceAlarm->GetValue(); //室外测氧仪异常 -// signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常 -// signalState.m_ScannerChillerAlarm = m_SignalStateWrapper->m_ScannerChillerAlarm->GetValue(); //光路冷水机报警 -// signalState.m_PurifierChillerAlarm = m_SignalStateWrapper->m_PurifierChillerAlarm->GetValue(); //净化器冷水机报警 -// -// signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常 -// signalState.m_CleanTorqueAlarm = m_SignalStateWrapper->m_CleanTorqueAlarm->GetValue(); //清粉主轴扭力异常 -// signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常 -// signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常 -// signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常 -// signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败 -// -// signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限 -// signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限 -// signalState.m_CleanMainOverSoftUpLimit = m_SignalStateWrapper->m_CleanMainOverSoftUpLimit->GetValue(); //清粉主轴超软上限 -// signalState.m_CleanMainOverSoftDownLimit = m_SignalStateWrapper->m_CleanMainOverSoftDownLimit->GetValue(); //清粉主轴超软下限 -// signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限 -// signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限 -// signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限 -// signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限 -// signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示 -// signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示 -// signalState.m_PrintStorageCar2BlockAlarm = m_SignalStateWrapper->m_PrintStorageCar2BlockAlarm->GetValue(); //打印存粉小车2堵塞报警 -// -// signalState.m_Clean3RPressureLackAlarm= m_SignalStateWrapper->m_Clean3RPressureLackAlarm->GetValue(); //清粉3R压力不足异常 -// signalState.m_Print3RPressureLackAlarm = m_SignalStateWrapper->m_Print3RPressureLackAlarm->GetValue(); //打印3R压力不足异常 -// signalState.m_LoadElectromagnetDisconnectAlarm = m_SignalStateWrapper->m_LoadElectromagnetDisconnectAlarm->GetValue(); -// signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常 -// signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常 -// signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常 -// signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常 -// signalState.m_CleanMainServoAlarmSignal = m_SignalStateWrapper->m_CleanMainServoAlarmSignal->GetValue(); //清粉主轴伺服异常 -// signalState.m_CleanBoxTopDoorRiseAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorRiseAlarmSignal->GetValue(); -// signalState.m_CleanBoxTopDoorFallAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorFallAlarmSignal->GetValue(); -// signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); -// signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); -// signalState.m_CleanMainSoftStopTrigger = m_SignalStateWrapper->m_CleanMainSoftStopTrigger->GetValue(); -// signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); -// signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); -// -// signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R -// signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW -// signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW -// signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW -// signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW -// signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW -// signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW -// signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW -// signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW -// signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW -// signalState.m_MoldConnectCylinderTriger = m_SignalStateWrapper->m_MoldConnectCylinderTriger->GetValue(); //触发打印升降轴连接缸体_自动_RW -// signalState.m_MoldConnectCylinderRun = m_SignalStateWrapper->m_MoldConnectCylinderRun->GetValue(); //打印升降轴连接缸体运行中_自动_RW -// signalState.m_MoldConnectCylinderFinished = m_SignalStateWrapper->m_MoldConnectCylinderFinished->GetValue(); //打印升降轴连接缸体完毕_自动_RW -// signalState.m_MoldDisconnectCylinderTriger = m_SignalStateWrapper->m_MoldDisconnectCylinderTriger->GetValue(); //触发打印升降轴脱离缸体_自动_RW -// signalState.m_MoldDisconnectCylinderRun = m_SignalStateWrapper->m_MoldDisconnectCylinderRun->GetValue(); //打印升降轴脱离缸体运行中_自动_RW -// signalState.m_MoldDisconnectCylinderFinished = m_SignalStateWrapper->m_MoldDisconnectCylinderFinished->GetValue(); //打印缸体脱离缸体完毕_自动_RW -// signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW -// signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW -// signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW -// signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW -// signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW -// signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW -// signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW -// signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW -// signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW -// signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W -// signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R -// signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW -// signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W -// signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W -// signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W -// signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW -// signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R -// signalState.m_MoldDeoxygenTriger = m_SignalStateWrapper->m_MoldDeoxygenTriger->GetValue(); //触发打印升降轴除氧_W -// signalState.m_MoldDeoxygenRun = m_SignalStateWrapper->m_MoldDeoxygenRun->GetValue(); //打印升降轴除氧中_R -// signalState.m_MoldDeoxygenFinished = m_SignalStateWrapper->m_MoldDeoxygenFinished->GetValue(); //打印升降轴除氧完毕_RW -// signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W -// signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R -// signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW -// signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R -// signalState.m_PrintVacuumTriger = m_SignalStateWrapper->m_PrintVacuumTriger->GetValue(); //打印室启动吸尘器_W -// signalState.m_DisableRasterJudge = m_SignalStateWrapper->m_DisableRasterJudge->GetValue(); //屏蔽光栅尺判断_W -// signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R -// signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R -// -// signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R -// signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R -// signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R -// signalState.m_MoldConnectCylinderEnable = m_SignalStateWrapper->m_MoldConnectCylinderEnable->GetValue(); //触发打印升降轴连接缸体EN_R -// signalState.m_MoldDisconnectCylinderEnable = m_SignalStateWrapper->m_MoldDisconnectCylinderEnable->GetValue(); //触发打印升降轴分离缸体EN_R -// signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R -// signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R -// signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R -// signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R -// signalState.m_MoldDeoxygenEnable = m_SignalStateWrapper->m_MoldDeoxygenEnable->GetValue(); //触发打印升降轴除氧EN_R -// -// signalState.m_CalcLoadSearchEdgeOffset = m_SignalStateWrapper->m_CalcLoadSearchEdgeOffset->GetValue(); -// signalState.m_ManualTestOffset = m_SignalStateWrapper->m_ManualTestOffset->GetValue(); -// -// -// -// signalState.m_SheildPrintPosSensor = m_SignalStateWrapper->m_SheildPrintPosSensor->GetValue(); -// signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue(); -// signalState.m_SheildCylinderFixSensor = m_SignalStateWrapper->m_SheildCylinderFixSensor->GetValue(); -// signalState.m_SheildPrintSupportCylinder = m_SignalStateWrapper->m_SheildPrintSupportCylinder->GetValue(); -// signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue(); -// signalState.m_LoadAxisUseSensorPos = m_SignalStateWrapper->m_LoadAxisUseSensorPos->GetValue(); -// signalState.m_RemoveIOActionLimit = m_SignalStateWrapper->m_RemoveIOActionLimit->GetValue(); //屏蔽IO动作限制 -// signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气 -// signalState.m_LoadPrintBackDistance = m_SignalStateWrapper->m_LoadPrintBackDistance->GetValue(); //移载打印在后退距离 -// signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue(); -// signalState.m_UseCapacityBar = m_SignalStateWrapper->m_UseCapacityBar->GetValue(); -// -// signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 -// signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内 -// signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限 -// signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发 -// signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 -// signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限 -// signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发 -// signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常 -// //signalState.m_PrintSlaveServoNoAlarm = m_SignalStateWrapper->m_PrintSlaveServoNoAlarm->GetValue(); //打印从轴伺服无异常 -// -// -// signalState.m_CleanTorqueUpInsideLimit = m_SignalStateWrapper->m_CleanTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 -// signalState.m_CleanAxisPosUpInSoftLimit = m_SignalStateWrapper->m_CleanAxisPosUpInSoftLimit->GetValue(); //轴位置没超过软上限 -// signalState.m_CleanTorqueDownInsideLimit = m_SignalStateWrapper->m_CleanTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 -// signalState.m_CleanAxisPosDownInsideSoftLimit = m_SignalStateWrapper->m_CleanAxisPosDownInsideSoftLimit->GetValue(); //轴位置没超过软下限 -// signalState.m_CleanUpInsideLimit = m_SignalStateWrapper->m_CleanUpInsideLimit->GetValue(); //上限位没触发 -// signalState.m_CleanDownInsideLimit = m_SignalStateWrapper->m_CleanDownInsideLimit->GetValue(); //下限位没触发 -// signalState.m_CleanMainServoNoAlarm = m_SignalStateWrapper->m_CleanMainServoNoAlarm->GetValue(); //清粉主轴伺服无异常 -// -// signalState.m_PrintJackupInSplitePos = m_SignalStateWrapper->m_PrintJackupInSplitePos->GetValue(); //打印顶升轴在缸体分离位 -// signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 -// signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限 -// signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限 -// signalState.m_PrintPressingInReleasePos = m_SignalStateWrapper->m_PrintPressingInReleasePos->GetValue(); //打印位压紧气缸在松开位 -// signalState.m_PrintJackupInDropPos = m_SignalStateWrapper->m_PrintJackupInDropPos->GetValue(); //打印位顶升气缸在下降位 -// signalState.m_PrintSupportInAvoidPos = m_SignalStateWrapper->m_PrintSupportInAvoidPos->GetValue(); //打印位支撑气缸在避让位 -// signalState.m_CleanPressingInReleasePos = m_SignalStateWrapper->m_CleanPressingInReleasePos->GetValue(); //清粉位压紧气缸在松开位 -// signalState.m_CylinderFixInReleasePos = m_SignalStateWrapper->m_CylinderFixInReleasePos->GetValue(); //缸体固定气缸在松开位 -// signalState.m_CleanBoxReleasePos = m_SignalStateWrapper->m_CleanBoxReleasePos->GetValue(); //清粉箱松开位 -// signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发 -// signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发 -// signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常 -// signalState.m_CleanAxisInCylinderSeparatePos = m_SignalStateWrapper->m_CleanAxisInCylinderSeparatePos->GetValue(); //清粉升降轴在缸体分离位 -// -// signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面 -// signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 -// signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限 -// signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限 -// signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发 -// signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发 -// signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue(); -// -// signalState.m_PrintStoreCar1ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar1ExhaustEnable->GetValue(); //触发打印存粉小车1排粉 -// signalState.m_PrintStoreCar2ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar2ExhaustEnable->GetValue(); //触发打印存粉小车2排粉 -// signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En -// signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位 -// signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中 -// signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕 -// -// signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN -// signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气 -// signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试 -// signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中 -// signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功 -// signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败 -// -// signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位 -// signalState.m_IsInPrint3RSeparatePos = m_SignalStateWrapper->m_IsInPrint3RSeparatePos->GetValue(); //打印3R脱离位 -// signalState.m_IsInPrintDeoxygenLowestPos = m_SignalStateWrapper->m_IsInPrintDeoxygenLowestPos->GetValue(); //打印除氧最低位 -// signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面 -// signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面 -// signalState.m_IsInCleanPlatfromBottomPos = m_SignalStateWrapper->m_IsInCleanPlatfromBottomPos->GetValue(); //清粉基板底座面 -// signalState.m_IsInClean3RSeparatePos = m_SignalStateWrapper->m_IsInClean3RSeparatePos->GetValue(); //清粉3R脱离位 -// signalState.m_IsInCleanLowestPos = m_SignalStateWrapper->m_IsInCleanLowestPos->GetValue(); //清粉最低面 -// signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位 -// signalState.m_IsInLoadWaitPos = m_SignalStateWrapper->m_IsInLoadWaitPos->GetValue(); //移载等待位 -// signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位 -// signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位 -// signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位 -// -// -// signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException); -// signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException; -// signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException; -// -// -// //memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState)); -//} +void HBD1500::GetAlarmState(SignalState& signalState) +{ + signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC + signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC + signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态 + signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态 + signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态 + signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态 + signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态 + signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式 + signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位 + + signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常 + signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常 + signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常 + signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常 + signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常 + signalState.m_OutsideOxygenLackAlarm = m_SignalStateWrapper->m_OutsideOxygenLackAlarm->GetValue(); //外界氧含量不足警告 + signalState.m_LaserChillerAlarm = m_SignalStateWrapper->m_LaserChillerAlarm->GetValue(); //激光器冷水机报警 + signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常 + signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常 + signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常 + signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常 + signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点 + signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警 + signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警 + signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警 + signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警 + signalState.m_HeatingInputAlarm = m_SignalStateWrapper->m_HeatingInputAlarm->GetValue(); //加热输入异常 + signalState.m_HeatingOutputAlarm = m_SignalStateWrapper->m_HeatingOutputAlarm->GetValue(); //加热输出异常 + + signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示 + signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示 + signalState.m_PrintStorageCar1BlockWarn = m_SignalStateWrapper->m_PrintStorageCar1BlockWarn->GetValue(); //打印存粉小车1堵塞警示 + + signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示 + signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示 + signalState.m_Print3RSeparateAlarm = m_SignalStateWrapper->m_Print3RSeparateAlarm->GetValue(); //打印3R脱离感应器异常 + signalState.m_Print3RConnectAlarm = m_SignalStateWrapper->m_Print3RConnectAlarm->GetValue(); //打印3R贴合感应器异常 + signalState.m_Print3RDisableAlarm = m_SignalStateWrapper->m_Print3RDisableAlarm->GetValue(); //打印3R失效异常 + signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告 + signalState.m_PrintPressOnDisableAlarm = m_SignalStateWrapper->m_PrintPressOnDisableAlarm->GetValue(); //打印位压紧气缸压紧不到位异常 + signalState.m_PrintPressOffDisableAlarm = m_SignalStateWrapper->m_PrintPressOffDisableAlarm->GetValue(); //打印位压紧气缸松开不到位异常 + signalState.m_PrintJackUpDisableAlarm = m_SignalStateWrapper->m_PrintJackUpDisableAlarm->GetValue(); //打印顶升气缸顶升不到位异常 + signalState.m_PrintJackDownDisableAlarm = m_SignalStateWrapper->m_PrintJackDownDisableAlarm->GetValue(); //打印顶升气缸下降不到位异常 + signalState.m_PrintSupportOnDisableAlarm = m_SignalStateWrapper->m_PrintSupportOnDisableAlarm->GetValue(); //打印支撑气缸支撑不到位异常 + signalState.m_PrintSupportOffDisableAlarm = m_SignalStateWrapper->m_PrintSupportOffDisableAlarm->GetValue(); //打印支撑气缸避让不到位异常 + signalState.m_CylinderExtendOnAlarm = m_SignalStateWrapper->m_CylinderExtendOnAlarm->GetValue(); //缸体固定气缸伸出不到位异常 + signalState.m_CylinderExtendOffAlarm = m_SignalStateWrapper->m_CylinderExtendOffAlarm->GetValue(); //缸体固定气缸缩回不到位异常 + signalState.m_PrintCylinderVerifyAlarm = m_SignalStateWrapper->m_PrintCylinderVerifyAlarm->GetValue(); //打印位缸体检测异常 + signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常 + signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常 + signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue(); + signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常 + signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常 + signalState.m_CleanBoxUpOpenAlarm = m_SignalStateWrapper->m_CleanBoxUpOpenAlarm->GetValue(); //清粉箱上盖气缸打开不到位异常 + signalState.m_CleanBoxUpCloseAlarm = m_SignalStateWrapper->m_CleanBoxUpCloseAlarm->GetValue(); //清粉箱上盖气缸关闭不到位异常 + signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //清粉箱支撑气缸支撑不到位异常 + signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //清粉箱支撑气缸避让不到位异常 + signalState.m_CleanBoxPressOnAlarm = m_SignalStateWrapper->m_CleanBoxPressOnAlarm->GetValue(); //清粉箱压紧气缸压紧不到位异常 + signalState.m_CleanBoxPressOffAlarm = m_SignalStateWrapper->m_CleanBoxPressOffAlarm->GetValue(); //清粉箱压紧气缸松开不到位异常 + signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常 + signalState.m_CleanPosPressOnAlarm = m_SignalStateWrapper->m_CleanPosPressOnAlarm->GetValue(); //清粉位压紧气缸压紧不到位异常 + signalState.m_CleanPosPressOffAlarm = m_SignalStateWrapper->m_CleanPosPressOffAlarm->GetValue(); //清粉位压紧气缸松开不到位异常 + signalState.m_CleanPosPreventCylinderOnAlarm = m_SignalStateWrapper->m_CleanPosPreventCylinderOnAlarm->GetValue(); + signalState.m_CleanPosPreventCylinderOffAlarm = m_SignalStateWrapper->m_CleanPosPreventCylinderOffAlarm->GetValue(); + signalState.m_Clean3RDisableAlarm = m_SignalStateWrapper->m_Clean3RDisableAlarm->GetValue(); //清粉3R失效异常 + signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示 + signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示 + signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示 + signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示 + signalState.m_LoadAxisSearchEdgeDisableAlarm = m_SignalStateWrapper->m_LoadAxisSearchEdgeDisableAlarm->GetValue(); //移载寻边感应器失效异常 + signalState.m_PowderPosition1Alarm = m_SignalStateWrapper->m_PowderPosition1Alarm->GetValue(); //粉仓料位感应器1异常 + signalState.m_PowderPosition2Alarm = m_SignalStateWrapper->m_PowderPosition2Alarm->GetValue(); //粉仓料位感应器2异常 + signalState.m_PowderPosition3Alarm = m_SignalStateWrapper->m_PowderPosition3Alarm->GetValue(); //粉仓料位感应器3异常 + signalState.m_PowderPosition4Alarm = m_SignalStateWrapper->m_PowderPosition4Alarm->GetValue(); //粉仓料位感应器4异常 + signalState.m_PowderPosition5Alarm = m_SignalStateWrapper->m_PowderPosition5Alarm->GetValue(); //粉仓料位感应器5异常 + signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常 + signalState.m_PrintOxygen1DeciceAlarm = m_SignalStateWrapper->m_PrintOxygen1DeciceAlarm->GetValue(); //打印舱测氧仪1异常 + signalState.m_PrintOxygen2DeviceAlarm = m_SignalStateWrapper->m_PrintOxygen2DeviceAlarm->GetValue(); //打印舱测氧仪2异常 + signalState.m_OutsideOxygenDeviceAlarm = m_SignalStateWrapper->m_OutsideOxygenDeviceAlarm->GetValue(); //室外测氧仪异常 + signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常 + signalState.m_ScannerChillerAlarm = m_SignalStateWrapper->m_ScannerChillerAlarm->GetValue(); //光路冷水机报警 + signalState.m_PurifierChillerAlarm = m_SignalStateWrapper->m_PurifierChillerAlarm->GetValue(); //净化器冷水机报警 + + signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常 + signalState.m_CleanTorqueAlarm = m_SignalStateWrapper->m_CleanTorqueAlarm->GetValue(); //清粉主轴扭力异常 + signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常 + signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常 + signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常 + signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败 + + signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限 + signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限 + signalState.m_CleanMainOverSoftUpLimit = m_SignalStateWrapper->m_CleanMainOverSoftUpLimit->GetValue(); //清粉主轴超软上限 + signalState.m_CleanMainOverSoftDownLimit = m_SignalStateWrapper->m_CleanMainOverSoftDownLimit->GetValue(); //清粉主轴超软下限 + signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限 + signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限 + signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限 + signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限 + signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示 + signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示 + signalState.m_PrintStorageCar2BlockAlarm = m_SignalStateWrapper->m_PrintStorageCar2BlockAlarm->GetValue(); //打印存粉小车2堵塞报警 + + signalState.m_Clean3RPressureLackAlarm= m_SignalStateWrapper->m_Clean3RPressureLackAlarm->GetValue(); //清粉3R压力不足异常 + signalState.m_Print3RPressureLackAlarm = m_SignalStateWrapper->m_Print3RPressureLackAlarm->GetValue(); //打印3R压力不足异常 + signalState.m_LoadElectromagnetDisconnectAlarm = m_SignalStateWrapper->m_LoadElectromagnetDisconnectAlarm->GetValue(); + signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常 + signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常 + signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常 + signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常 + signalState.m_CleanMainServoAlarmSignal = m_SignalStateWrapper->m_CleanMainServoAlarmSignal->GetValue(); //清粉主轴伺服异常 + signalState.m_CleanBoxTopDoorRiseAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorRiseAlarmSignal->GetValue(); + signalState.m_CleanBoxTopDoorFallAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorFallAlarmSignal->GetValue(); + signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); + signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); + signalState.m_CleanMainSoftStopTrigger = m_SignalStateWrapper->m_CleanMainSoftStopTrigger->GetValue(); + signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); + signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); + + signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R + signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW + signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW + signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW + signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW + signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW + signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW + signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW + signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW + signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW + signalState.m_MoldConnectCylinderTriger = m_SignalStateWrapper->m_MoldConnectCylinderTriger->GetValue(); //触发打印升降轴连接缸体_自动_RW + signalState.m_MoldConnectCylinderRun = m_SignalStateWrapper->m_MoldConnectCylinderRun->GetValue(); //打印升降轴连接缸体运行中_自动_RW + signalState.m_MoldConnectCylinderFinished = m_SignalStateWrapper->m_MoldConnectCylinderFinished->GetValue(); //打印升降轴连接缸体完毕_自动_RW + signalState.m_MoldDisconnectCylinderTriger = m_SignalStateWrapper->m_MoldDisconnectCylinderTriger->GetValue(); //触发打印升降轴脱离缸体_自动_RW + signalState.m_MoldDisconnectCylinderRun = m_SignalStateWrapper->m_MoldDisconnectCylinderRun->GetValue(); //打印升降轴脱离缸体运行中_自动_RW + signalState.m_MoldDisconnectCylinderFinished = m_SignalStateWrapper->m_MoldDisconnectCylinderFinished->GetValue(); //打印缸体脱离缸体完毕_自动_RW + signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW + signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW + signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW + signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW + signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW + signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW + signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW + signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW + signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW + signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W + signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R + signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW + signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W + signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W + signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W + signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW + signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R + signalState.m_MoldDeoxygenTriger = m_SignalStateWrapper->m_MoldDeoxygenTriger->GetValue(); //触发打印升降轴除氧_W + signalState.m_MoldDeoxygenRun = m_SignalStateWrapper->m_MoldDeoxygenRun->GetValue(); //打印升降轴除氧中_R + signalState.m_MoldDeoxygenFinished = m_SignalStateWrapper->m_MoldDeoxygenFinished->GetValue(); //打印升降轴除氧完毕_RW + signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W + signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R + signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW + signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R + signalState.m_PrintVacuumTriger = m_SignalStateWrapper->m_PrintVacuumTriger->GetValue(); //打印室启动吸尘器_W + signalState.m_DisableRasterJudge = m_SignalStateWrapper->m_DisableRasterJudge->GetValue(); //屏蔽光栅尺判断_W + signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R + signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R + + signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R + signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R + signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R + signalState.m_MoldConnectCylinderEnable = m_SignalStateWrapper->m_MoldConnectCylinderEnable->GetValue(); //触发打印升降轴连接缸体EN_R + signalState.m_MoldDisconnectCylinderEnable = m_SignalStateWrapper->m_MoldDisconnectCylinderEnable->GetValue(); //触发打印升降轴分离缸体EN_R + signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R + signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R + signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R + signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R + signalState.m_MoldDeoxygenEnable = m_SignalStateWrapper->m_MoldDeoxygenEnable->GetValue(); //触发打印升降轴除氧EN_R + + signalState.m_CalcLoadSearchEdgeOffset = m_SignalStateWrapper->m_CalcLoadSearchEdgeOffset->GetValue(); + signalState.m_ManualTestOffset = m_SignalStateWrapper->m_ManualTestOffset->GetValue(); + + + + signalState.m_SheildPrintPosSensor = m_SignalStateWrapper->m_SheildPrintPosSensor->GetValue(); + signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue(); + signalState.m_SheildCylinderFixSensor = m_SignalStateWrapper->m_SheildCylinderFixSensor->GetValue(); + signalState.m_SheildPrintSupportCylinder = m_SignalStateWrapper->m_SheildPrintSupportCylinder->GetValue(); + signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue(); + signalState.m_LoadAxisUseSensorPos = m_SignalStateWrapper->m_LoadAxisUseSensorPos->GetValue(); + signalState.m_RemoveIOActionLimit = m_SignalStateWrapper->m_RemoveIOActionLimit->GetValue(); //屏蔽IO动作限制 + signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气 + signalState.m_LoadPrintBackDistance = m_SignalStateWrapper->m_LoadPrintBackDistance->GetValue(); //移载打印在后退距离 + signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue(); + signalState.m_UseCapacityBar = m_SignalStateWrapper->m_UseCapacityBar->GetValue(); + + signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 + signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内 + signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限 + signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发 + signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 + signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限 + signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发 + signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常 + //signalState.m_PrintSlaveServoNoAlarm = m_SignalStateWrapper->m_PrintSlaveServoNoAlarm->GetValue(); //打印从轴伺服无异常 + + + signalState.m_CleanTorqueUpInsideLimit = m_SignalStateWrapper->m_CleanTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 + signalState.m_CleanAxisPosUpInSoftLimit = m_SignalStateWrapper->m_CleanAxisPosUpInSoftLimit->GetValue(); //轴位置没超过软上限 + signalState.m_CleanTorqueDownInsideLimit = m_SignalStateWrapper->m_CleanTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 + signalState.m_CleanAxisPosDownInsideSoftLimit = m_SignalStateWrapper->m_CleanAxisPosDownInsideSoftLimit->GetValue(); //轴位置没超过软下限 + signalState.m_CleanUpInsideLimit = m_SignalStateWrapper->m_CleanUpInsideLimit->GetValue(); //上限位没触发 + signalState.m_CleanDownInsideLimit = m_SignalStateWrapper->m_CleanDownInsideLimit->GetValue(); //下限位没触发 + signalState.m_CleanMainServoNoAlarm = m_SignalStateWrapper->m_CleanMainServoNoAlarm->GetValue(); //清粉主轴伺服无异常 + + signalState.m_PrintJackupInSplitePos = m_SignalStateWrapper->m_PrintJackupInSplitePos->GetValue(); //打印顶升轴在缸体分离位 + signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 + signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限 + signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限 + signalState.m_PrintPressingInReleasePos = m_SignalStateWrapper->m_PrintPressingInReleasePos->GetValue(); //打印位压紧气缸在松开位 + signalState.m_PrintJackupInDropPos = m_SignalStateWrapper->m_PrintJackupInDropPos->GetValue(); //打印位顶升气缸在下降位 + signalState.m_PrintSupportInAvoidPos = m_SignalStateWrapper->m_PrintSupportInAvoidPos->GetValue(); //打印位支撑气缸在避让位 + signalState.m_CleanPressingInReleasePos = m_SignalStateWrapper->m_CleanPressingInReleasePos->GetValue(); //清粉位压紧气缸在松开位 + signalState.m_CylinderFixInReleasePos = m_SignalStateWrapper->m_CylinderFixInReleasePos->GetValue(); //缸体固定气缸在松开位 + signalState.m_CleanBoxReleasePos = m_SignalStateWrapper->m_CleanBoxReleasePos->GetValue(); //清粉箱松开位 + signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发 + signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发 + signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常 + signalState.m_CleanAxisInCylinderSeparatePos = m_SignalStateWrapper->m_CleanAxisInCylinderSeparatePos->GetValue(); //清粉升降轴在缸体分离位 + + signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面 + signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 + signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限 + signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限 + signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发 + signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发 + signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue(); + + signalState.m_PrintStoreCar1ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar1ExhaustEnable->GetValue(); //触发打印存粉小车1排粉 + signalState.m_PrintStoreCar2ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar2ExhaustEnable->GetValue(); //触发打印存粉小车2排粉 + signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En + signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位 + signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中 + signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕 + + signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN + signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气 + signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试 + signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中 + signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功 + signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败 + + signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位 + signalState.m_IsInPrint3RSeparatePos = m_SignalStateWrapper->m_IsInPrint3RSeparatePos->GetValue(); //打印3R脱离位 + signalState.m_IsInPrintDeoxygenLowestPos = m_SignalStateWrapper->m_IsInPrintDeoxygenLowestPos->GetValue(); //打印除氧最低位 + signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面 + signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面 + signalState.m_IsInCleanPlatfromBottomPos = m_SignalStateWrapper->m_IsInCleanPlatfromBottomPos->GetValue(); //清粉基板底座面 + signalState.m_IsInClean3RSeparatePos = m_SignalStateWrapper->m_IsInClean3RSeparatePos->GetValue(); //清粉3R脱离位 + signalState.m_IsInCleanLowestPos = m_SignalStateWrapper->m_IsInCleanLowestPos->GetValue(); //清粉最低面 + signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位 + signalState.m_IsInLoadWaitPos = m_SignalStateWrapper->m_IsInLoadWaitPos->GetValue(); //移载等待位 + signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位 + signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位 + signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位 + + + signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException); + signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException; + signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException; + + + //memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState)); +} //void HBD1500::LoadInRun() { // SetLoadInProcStep(In_Start); diff --git a/PrintS/Machine/HBD1500.h b/PrintS/Machine/HBD1500.h index 7aa4962..05040ad 100644 --- a/PrintS/Machine/HBD1500.h +++ b/PrintS/Machine/HBD1500.h @@ -86,7 +86,7 @@ public: void InitSignal(SignalStateWrapper* ssw, PLCReveiver* cc); void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc); void InitPLCCommand(vector& vecs); - //void GetAlarmState(SignalState& signalState); + void GetAlarmState(SignalState& signalState); //bool CheckPrintMoldReady(); //bool CheckPrintHigh(float jobhigh); private: diff --git a/PrintS/Machine/HBDE1000.cpp b/PrintS/Machine/HBDE1000.cpp index 2ea0ac5..9ea791c 100644 --- a/PrintS/Machine/HBDE1000.cpp +++ b/PrintS/Machine/HBDE1000.cpp @@ -5250,239 +5250,239 @@ void HBDE1000::ProcReadPLCData(void* pobject, Command* pcommand) //} // // -// -//void HBDE1000::GetAlarmState(SignalState& signalState) -//{ -// signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC -// signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC -// signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态 -// signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态 -// signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态 -// signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态 -// signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态 -// signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式 -// signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位 -// -// signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常 -// signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常 -// signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常 -// signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常 -// signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常 -// signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常 -// signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常 -// signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常 -// signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常 -// signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点 -// signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警 -// signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警 -// signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警 -// signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警 -// signalState.m_HeatingAlarm = m_SignalStateWrapper->m_HeatingAlarm->GetValue(); //加热异常报警 -// -// signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示 -// signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示 -// signalState.m_CleanStorageCar1JarFullWarn = m_SignalStateWrapper->m_CleanStorageCar1JarFullWarn->GetValue(); //清粉存粉小车1粉罐已满警示 -// signalState.m_CleanStorageCar1DisconnectWarn = m_SignalStateWrapper->m_CleanStorageCar1DisconnectWarn->GetValue(); //清粉存粉小车1没有连接警示 -// signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示 -// signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示 -// -// -// signalState.m_UpsAlarm = m_SignalStateWrapper->m_UpsAlarm->GetValue(); //UPS报警 -// signalState.m_Laser5Alarm = m_SignalStateWrapper->m_Laser5Alarm->GetValue(); //激光5报警 -// signalState.m_Laser6Alarm = m_SignalStateWrapper->m_Laser6Alarm->GetValue(); //激光6报警 -// signalState.m_Laser7Alarm = m_SignalStateWrapper->m_Laser7Alarm->GetValue(); //激光7报警 -// signalState.m_Laser8Alarm = m_SignalStateWrapper->m_Laser8Alarm->GetValue(); //激光8报警 -// signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告 -// -// signalState.m_CylinderLinerSealReleaseValveException = m_SignalStateWrapper->m_CylinderLinerSealReleaseValveException->GetValue(); //缸体密封圈泄压异常 -// signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常 -// signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常 -// signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue(); -// signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常 -// signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常 -// signalState.m_CleanBoxFoldUpException = m_SignalStateWrapper->m_CleanBoxFoldUpException->GetValue(); //清粉箱折叠气缸升高异常 -// signalState.m_CleanBoxFoldDownException = m_SignalStateWrapper->m_CleanBoxFoldDownException->GetValue(); //清粉箱折叠气缸降低异常 -// signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //缸体吊装盖板打开异常 -// signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //缸体吊装门打开异常 -// -// signalState.m_SecurityCarpetTriggered = m_SignalStateWrapper->m_SecurityCarpetTriggered->GetValue(); //安全地毯被触发 -// signalState.m_RailNotInOpenOrClosePos = m_SignalStateWrapper->m_RailNotInOpenOrClosePos->GetValue(); //栏杆不在打开或者关闭位置 -// signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常 -// signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示 -// signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示 -// signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示 -// signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示 -// -// signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常 -// -// signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常 -// signalState.m_TotalWaterCoolerAlarm = m_SignalStateWrapper->m_TotalWaterCoolerAlarm->GetValue(); //总冷水机报警 -// -// -// signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常 -// -// signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常 -// signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常 -// signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常 -// signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败 -// -// signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限 -// signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限 -// -// signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限 -// signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限 -// signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限 -// signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限 -// signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示 -// signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示 -// signalState.m_CleanStorageCar2JarFullWarn = m_SignalStateWrapper->m_CleanStorageCar2JarFullWarn->GetValue(); //清粉存粉小车2粉罐已满警示 -// signalState.m_CleanStorageCar2DisconnectWarn = m_SignalStateWrapper->m_CleanStorageCar2DisconnectWarn->GetValue(); //清粉存粉小车2没有连接警示 -// -// signalState.m_CoverBaffleNotInFrontAcceptPos = m_SignalStateWrapper->m_CoverBaffleNotInFrontAcceptPos->GetValue(); //铺粉臂挡板不在前接粉位 -// signalState.m_CoverBaffleNotInDropPos = m_SignalStateWrapper->m_CoverBaffleNotInDropPos->GetValue(); //铺粉臂挡板不在下粉位 -// signalState.m_ArmMoveBackAcceptPosException = m_SignalStateWrapper->m_ArmMoveBackAcceptPosException->GetValue(); //铺粉臂到接粉后位异常 -// signalState.m_UpServiceDoorOpenWarn = m_SignalStateWrapper->m_UpServiceDoorOpenWarn->GetValue(); //上层维修门打开警告 -// signalState.m_DownServiceDoorOpenWarn = m_SignalStateWrapper->m_DownServiceDoorOpenWarn->GetValue(); //下层维修门打开警告 -// -// -// signalState.m_LoadAxisManualAlarmSignal = m_SignalStateWrapper->m_LoadAxisManualAlarmSignal->GetValue(); //移栽手动异常 -// signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常 -// signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常 -// signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常 -// signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常 -// -// signalState.m_CoverReachAcceptPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachAcceptPowderAlarmSignal->GetValue(); //铺粉轴到接粉位异常 -// signalState.m_CoverReachDropPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachDropPowderAlarmSignal->GetValue(); //铺粉轴到下粉位异常 -// signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); //光栅尺检测异常 -// signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); //打印主轴软急停触发 -// signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); //移载轴软急停触发 -// signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); //铺粉轴软急停触发 -// signalState.m_CoverHomeException = m_SignalStateWrapper->m_CoverHomeException->GetValue(); //铺粉归原点异常 -// -// signalState.m_CylinderSealInflationFailureAlarm = m_SignalStateWrapper->m_CylinderSealInflationFailureAlarm->GetValue(); //缸体密封圈充气失败报警 -// signalState.m_CylinderSealInflationHighPressureAlarm = m_SignalStateWrapper->m_CylinderSealInflationHighPressureAlarm->GetValue(); //缸体密封圈充气过压报警 -// signalState.m_CylinderSealLeakageWarn = m_SignalStateWrapper->m_CylinderSealLeakageWarn->GetValue(); //缸体密封圈存在漏气警告 -// signalState.m_SealPressureExceptionWhenPrint = m_SignalStateWrapper->m_SealPressureExceptionWhenPrint->GetValue(); //密封圈压力异常 -// -// -// signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R -// signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW -// signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW -// signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW -// signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW -// signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW -// signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW -// signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW -// signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW -// signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW -// signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW -// signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW -// signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW -// signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW -// signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW -// signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW -// signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW -// signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW -// signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW -// signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W -// signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R -// signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW -// signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W -// signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W -// signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W -// signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW -// signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R -// -// signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W -// signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R -// signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW -// signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R -// -// signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R -// signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R -// -// signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R -// signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R -// signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R -// signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R -// signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R -// signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R -// signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R -// -// signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue(); -// signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue(); -// signalState.m_SheilServoEmptyOpen = m_SignalStateWrapper->m_SheilServoEmptyOpen->GetValue(); -// signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气 -// signalState.m_UnuseCoverReachSensor = m_SignalStateWrapper->m_UnuseCoverReachSensor->GetValue(); //不使用铺粉轴到位感应器 -// -// signalState.m_UseCoverBaffleSensor = m_SignalStateWrapper->m_UseCoverBaffleSensor->GetValue(); //使用铺粉挡板感应器 -// signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue(); -// signalState.m_LinearEncoderOppDirection = m_SignalStateWrapper->m_LinearEncoderOppDirection->GetValue(); -// signalState.m_CoverV2UseCintinueMode = m_SignalStateWrapper->m_CoverV2UseCintinueMode->GetValue(); -// signalState.m_UseCoverShiftSpeed = m_SignalStateWrapper->m_UseCoverShiftSpeed->GetValue(); //使用打印区域变速 -// -// signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 -// signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内 -// signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限 -// signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发 -// signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 -// signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限 -// signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发 -// signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常 -// signalState.m_PrintMoldInPrintPos = m_SignalStateWrapper->m_PrintMoldInPrintPos->GetValue(); //缸体在打印位 -// signalState.m_PrintMoldInCleanPos = m_SignalStateWrapper->m_PrintMoldInCleanPos->GetValue(); //缸体在清粉位 -// signalState.m_PrintMoldInHandPos = m_SignalStateWrapper->m_PrintMoldInHandPos->GetValue(); //缸体在吊装位 -// signalState.m_MoldUpDownServiceDoorCloseStatue = m_SignalStateWrapper->m_MoldUpDownServiceDoorCloseStatue->GetValue(); //升降上下维护门在关闭状态 -// -// -// signalState.m_PrintJackupInSafePos = m_SignalStateWrapper->m_PrintJackupInSafePos->GetValue(); //打印顶升轴在安全位 -// signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 -// signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限 -// signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限 -// -// signalState.m_CylinderSealNoInflationStatue = m_SignalStateWrapper->m_CylinderSealNoInflationStatue->GetValue(); //密封圈无充气状态 -// signalState.m_LoadUpDownServiceDoorCloseStatue = m_SignalStateWrapper->m_LoadUpDownServiceDoorCloseStatue->GetValue(); //移载上下维护门在关闭状态 -// signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发 -// signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发 -// signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常 -// -// signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面 -// signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 -// signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限 -// signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限 -// signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发 -// signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发 -// signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue(); -// -// -// signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En -// signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位 -// signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中 -// signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕 -// -// signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN -// signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气 -// signalState.m_AllowRiseWindSpeed = m_SignalStateWrapper->m_AllowRiseWindSpeed->GetValue(); //允许提风速 -// signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试 -// signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中 -// signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功 -// signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败 -// -// signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位 -// signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面 -// signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面 -// signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位 -// signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位 -// signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位 -// signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位 -// -// signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException); -// signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException; -// signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException; -// //memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState)); -//} -// -// + +void HBDE1000::GetAlarmState(SignalState& signalState) +{ + signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC + signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC + signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态 + signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态 + signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态 + signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态 + signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态 + signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式 + signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位 + + signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常 + signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常 + signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常 + signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常 + signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常 + signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常 + signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常 + signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常 + signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常 + signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点 + signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警 + signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警 + signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警 + signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警 + signalState.m_HeatingAlarm = m_SignalStateWrapper->m_HeatingAlarm->GetValue(); //加热异常报警 + + signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示 + signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示 + signalState.m_CleanStorageCar1JarFullWarn = m_SignalStateWrapper->m_CleanStorageCar1JarFullWarn->GetValue(); //清粉存粉小车1粉罐已满警示 + signalState.m_CleanStorageCar1DisconnectWarn = m_SignalStateWrapper->m_CleanStorageCar1DisconnectWarn->GetValue(); //清粉存粉小车1没有连接警示 + signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示 + signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示 + + + signalState.m_UpsAlarm = m_SignalStateWrapper->m_UpsAlarm->GetValue(); //UPS报警 + signalState.m_Laser5Alarm = m_SignalStateWrapper->m_Laser5Alarm->GetValue(); //激光5报警 + signalState.m_Laser6Alarm = m_SignalStateWrapper->m_Laser6Alarm->GetValue(); //激光6报警 + signalState.m_Laser7Alarm = m_SignalStateWrapper->m_Laser7Alarm->GetValue(); //激光7报警 + signalState.m_Laser8Alarm = m_SignalStateWrapper->m_Laser8Alarm->GetValue(); //激光8报警 + signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告 + + signalState.m_CylinderLinerSealReleaseValveException = m_SignalStateWrapper->m_CylinderLinerSealReleaseValveException->GetValue(); //缸体密封圈泄压异常 + signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常 + signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常 + signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue(); + signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常 + signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常 + signalState.m_CleanBoxFoldUpException = m_SignalStateWrapper->m_CleanBoxFoldUpException->GetValue(); //清粉箱折叠气缸升高异常 + signalState.m_CleanBoxFoldDownException = m_SignalStateWrapper->m_CleanBoxFoldDownException->GetValue(); //清粉箱折叠气缸降低异常 + signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //缸体吊装盖板打开异常 + signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //缸体吊装门打开异常 + + signalState.m_SecurityCarpetTriggered = m_SignalStateWrapper->m_SecurityCarpetTriggered->GetValue(); //安全地毯被触发 + signalState.m_RailNotInOpenOrClosePos = m_SignalStateWrapper->m_RailNotInOpenOrClosePos->GetValue(); //栏杆不在打开或者关闭位置 + signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常 + signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示 + signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示 + signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示 + signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示 + + signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常 + + signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常 + signalState.m_TotalWaterCoolerAlarm = m_SignalStateWrapper->m_TotalWaterCoolerAlarm->GetValue(); //总冷水机报警 + + + signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常 + + signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常 + signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常 + signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常 + signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败 + + signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限 + signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限 + + signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限 + signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限 + signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限 + signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限 + signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示 + signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示 + signalState.m_CleanStorageCar2JarFullWarn = m_SignalStateWrapper->m_CleanStorageCar2JarFullWarn->GetValue(); //清粉存粉小车2粉罐已满警示 + signalState.m_CleanStorageCar2DisconnectWarn = m_SignalStateWrapper->m_CleanStorageCar2DisconnectWarn->GetValue(); //清粉存粉小车2没有连接警示 + + signalState.m_CoverBaffleNotInFrontAcceptPos = m_SignalStateWrapper->m_CoverBaffleNotInFrontAcceptPos->GetValue(); //铺粉臂挡板不在前接粉位 + signalState.m_CoverBaffleNotInDropPos = m_SignalStateWrapper->m_CoverBaffleNotInDropPos->GetValue(); //铺粉臂挡板不在下粉位 + signalState.m_ArmMoveBackAcceptPosException = m_SignalStateWrapper->m_ArmMoveBackAcceptPosException->GetValue(); //铺粉臂到接粉后位异常 + signalState.m_UpServiceDoorOpenWarn = m_SignalStateWrapper->m_UpServiceDoorOpenWarn->GetValue(); //上层维修门打开警告 + signalState.m_DownServiceDoorOpenWarn = m_SignalStateWrapper->m_DownServiceDoorOpenWarn->GetValue(); //下层维修门打开警告 + + + signalState.m_LoadAxisManualAlarmSignal = m_SignalStateWrapper->m_LoadAxisManualAlarmSignal->GetValue(); //移栽手动异常 + signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常 + signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常 + signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常 + signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常 + + signalState.m_CoverReachAcceptPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachAcceptPowderAlarmSignal->GetValue(); //铺粉轴到接粉位异常 + signalState.m_CoverReachDropPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachDropPowderAlarmSignal->GetValue(); //铺粉轴到下粉位异常 + signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); //光栅尺检测异常 + signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); //打印主轴软急停触发 + signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); //移载轴软急停触发 + signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); //铺粉轴软急停触发 + signalState.m_CoverHomeException = m_SignalStateWrapper->m_CoverHomeException->GetValue(); //铺粉归原点异常 + + signalState.m_CylinderSealInflationFailureAlarm = m_SignalStateWrapper->m_CylinderSealInflationFailureAlarm->GetValue(); //缸体密封圈充气失败报警 + signalState.m_CylinderSealInflationHighPressureAlarm = m_SignalStateWrapper->m_CylinderSealInflationHighPressureAlarm->GetValue(); //缸体密封圈充气过压报警 + signalState.m_CylinderSealLeakageWarn = m_SignalStateWrapper->m_CylinderSealLeakageWarn->GetValue(); //缸体密封圈存在漏气警告 + signalState.m_SealPressureExceptionWhenPrint = m_SignalStateWrapper->m_SealPressureExceptionWhenPrint->GetValue(); //密封圈压力异常 + + + signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R + signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW + signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW + signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW + signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW + signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW + signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW + signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW + signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW + signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW + signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW + signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW + signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW + signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW + signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW + signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW + signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW + signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW + signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW + signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W + signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R + signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW + signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W + signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W + signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W + signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW + signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R + + signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W + signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R + signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW + signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R + + signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R + signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R + + signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R + signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R + signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R + signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R + signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R + signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R + signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R + + signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue(); + signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue(); + signalState.m_SheilServoEmptyOpen = m_SignalStateWrapper->m_SheilServoEmptyOpen->GetValue(); + signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气 + signalState.m_UnuseCoverReachSensor = m_SignalStateWrapper->m_UnuseCoverReachSensor->GetValue(); //不使用铺粉轴到位感应器 + + signalState.m_UseCoverBaffleSensor = m_SignalStateWrapper->m_UseCoverBaffleSensor->GetValue(); //使用铺粉挡板感应器 + signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue(); + signalState.m_LinearEncoderOppDirection = m_SignalStateWrapper->m_LinearEncoderOppDirection->GetValue(); + signalState.m_CoverV2UseCintinueMode = m_SignalStateWrapper->m_CoverV2UseCintinueMode->GetValue(); + signalState.m_UseCoverShiftSpeed = m_SignalStateWrapper->m_UseCoverShiftSpeed->GetValue(); //使用打印区域变速 + + signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内 + signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内 + signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限 + signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发 + signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内 + signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限 + signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发 + signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常 + signalState.m_PrintMoldInPrintPos = m_SignalStateWrapper->m_PrintMoldInPrintPos->GetValue(); //缸体在打印位 + signalState.m_PrintMoldInCleanPos = m_SignalStateWrapper->m_PrintMoldInCleanPos->GetValue(); //缸体在清粉位 + signalState.m_PrintMoldInHandPos = m_SignalStateWrapper->m_PrintMoldInHandPos->GetValue(); //缸体在吊装位 + signalState.m_MoldUpDownServiceDoorCloseStatue = m_SignalStateWrapper->m_MoldUpDownServiceDoorCloseStatue->GetValue(); //升降上下维护门在关闭状态 + + + signalState.m_PrintJackupInSafePos = m_SignalStateWrapper->m_PrintJackupInSafePos->GetValue(); //打印顶升轴在安全位 + signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 + signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限 + signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限 + + signalState.m_CylinderSealNoInflationStatue = m_SignalStateWrapper->m_CylinderSealNoInflationStatue->GetValue(); //密封圈无充气状态 + signalState.m_LoadUpDownServiceDoorCloseStatue = m_SignalStateWrapper->m_LoadUpDownServiceDoorCloseStatue->GetValue(); //移载上下维护门在关闭状态 + signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发 + signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发 + signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常 + + signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面 + signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内 + signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限 + signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限 + signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发 + signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发 + signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue(); + + + signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En + signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位 + signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中 + signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕 + + signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN + signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气 + signalState.m_AllowRiseWindSpeed = m_SignalStateWrapper->m_AllowRiseWindSpeed->GetValue(); //允许提风速 + signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试 + signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中 + signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功 + signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败 + + signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位 + signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面 + signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面 + signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位 + signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位 + signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位 + signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位 + + signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException); + signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException; + signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException; + //memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState)); +} + + //void HBDE1000::LoadInRun() //{ // diff --git a/PrintS/Machine/HBDE1000.h b/PrintS/Machine/HBDE1000.h index d37551b..c853a75 100644 --- a/PrintS/Machine/HBDE1000.h +++ b/PrintS/Machine/HBDE1000.h @@ -72,7 +72,7 @@ public: void InitSignal(SignalStateWrapper* ssw, PLCReveiver* cc); void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc); void InitPLCCommand(vector& vecs); - //void GetAlarmState(SignalState& signalState); + void GetAlarmState(SignalState& signalState); //bool CheckPrintMoldReady(); private: static void CheckIO_V0(vector&ins, IOCfgWrapper* iocfgWrapper, string str, int mtype); diff --git a/PrintS/Machine/Machine.h b/PrintS/Machine/Machine.h index b4dea38..1f5b77e 100644 --- a/PrintS/Machine/Machine.h +++ b/PrintS/Machine/Machine.h @@ -163,7 +163,7 @@ public: virtual void InitPLCCommand(vector& vecs) = 0; - //virtual void GetAlarmState(SignalState& signalState) = 0; + virtual void GetAlarmState(SignalState& signalState) = 0; virtual void LoadIn(); virtual void LoadOut(); diff --git a/PrintS/PLC/CoreCommunication.cpp b/PrintS/PLC/CoreCommunication.cpp index 3a72d65..dbb612f 100644 --- a/PrintS/PLC/CoreCommunication.cpp +++ b/PrintS/PLC/CoreCommunication.cpp @@ -112,8 +112,8 @@ void CoreCommunication::Init() InitCommand(); - //if (m_IOCfgWrapper) - // m_IOCfgWrapper->SetCC(this); + if (m_IOCfgWrapper) + m_IOCfgWrapper->SetCC(this); } void CoreCommunication::InitCommand() @@ -354,7 +354,7 @@ void CoreCommunication::AssistRun() void CoreCommunication::GetAlarmState(SignalState& signalState) { std::shared_lock lock(m_ValueMtx); - //ConfigManager::GetInstance()->GetMachine()->GetAlarmState(signalState); + ConfigManager::GetInstance()->GetMachine()->GetAlarmState(signalState); } void CoreCommunication::GetEnvState(EnvState& envState) diff --git a/PrintS/camera/GalaxyCamera.cpp b/PrintS/camera/GalaxyCamera.cpp index 9d37fc4..52ed8f7 100644 --- a/PrintS/camera/GalaxyCamera.cpp +++ b/PrintS/camera/GalaxyCamera.cpp @@ -202,7 +202,7 @@ void GalaxyCamera::CatpureRun(void) continue; } } - bool rel = (m_ShowFlag || m_DemandFlag); + bool rel = (m_ShowFlag->GetValue() || m_DemandFlag); if (rel) { CImageDataPointer objImageDataPointer = m_objStreamPtr->GetImage(300); if (objImageDataPointer->GetStatus() == GX_FRAME_STATUS_SUCCESS) diff --git a/PrintS/camera/HBDCamera.cpp b/PrintS/camera/HBDCamera.cpp index da275a7..5c08fd1 100644 --- a/PrintS/camera/HBDCamera.cpp +++ b/PrintS/camera/HBDCamera.cpp @@ -1,7 +1,9 @@ -#include "HBDCamera.h" +#include "HBDCamera.h" #include "../config/ConfigManager.h" #include #include +#include "../protobuf/stream.pb.h" +#include "../logger.h" #include @@ -89,23 +91,28 @@ void PointImageShowInfo::Update() } HBDCamera::HBDCamera() - :m_DemandFlag(false) - , m_ShowFlag(false) + : m_DemandFlag(false) + //, m_ShowFlag(false) , m_OriginalData(NULL) , m_ImageChanged(false) , m_RunFlag(false) , m_CatpureThread(INVALID_HANDLE_VALUE) , m_Aspect(1.0f) - //, m_ShowWidth(0) - //,m_ShowHeight(0) + , m_ShowFlag(new BoolData("ShowFlag")) + , m_LastMouRefImgPosX(new IntData("LastMouRefImgPosX")) + , m_LastMouRefImgPosY(new IntData("LastMouRefImgPosY")) + , m_PointImage(nullptr) { m_ExtCfg = ConfigManager::GetInstance()->GetExtCfg(); m_CameraCalibrationCfg = ConfigManager::GetInstance()->GetCameraCalibrationCfg(); m_tjinstance = tjInitCompress(); InitializeCriticalSection(&m_OriginalDataCS); - m_LastMouRefImgPosX = 0; - m_LastMouRefImgPosY = 0; + //m_LastMouRefImgPosX = 0; + //m_LastMouRefImgPosY = 0; + //InsertMp(&m_ShowFlag); + //InsertMp(&m_LastMouRefImgPosX); + //InsertMp(&m_LastMouRefImgPosY); } HBDCamera::~HBDCamera() @@ -198,3 +205,116 @@ bool HBDCamera::GetRawImage(unsigned char* img) return true; } + +void HBDCamera::TakePhotos() { + + unsigned char* imagetemp; + int width = 0, height = 0, datasize = 0; + GetOriginSize(width, height, datasize); + if (datasize > 0) { + imagetemp = new unsigned char[datasize]; + if (GetRawImage(imagetemp)) + { + cv::Mat image(height, width, CV_8U, imagetemp); + if (m_PointImage) { + delete m_PointImage; + m_PointImage = NULL; + } + + PointImageShowInfo* info = new PointImageShowInfo(); + info->Init(image, image.data); + m_PointImage = info; + delete[] imagetemp; + } + else { + delete[]imagetemp; + } + } + +} + +void HBDCamera::GetImageSize(int rowindex,::stream::ResponseAny** response) { + stream::ImgInfoResponce result; + unsigned char* image = nullptr; + unsigned long image_size = 0; + int width = 0, height = 0; + if (g_log->m_LogDao->FindImage(rowindex, &image, &image_size)) { + result.set_levelimage(GetShowImage(image, image_size, &width, &height)); + result.set_height(height); + result.set_width(width); + } + if (image != nullptr)delete[] image; + (*response)->mutable_data()->PackFrom(result); + +} + +void HBDCamera::CallFunc(const ReadData& rd, ::stream::ResponseAny** response) { + stream::ImgInfoResponce result; + + CameraFunc func = (CameraFunc)stoi(rd.nameKey); + switch (func) { + case SETDEMANDCATPURE: + SetDemandCatpure((bool)stoi(rd.strValue)); + break; + case SETEXPOSUREAUTOBYCFG: + SetExposureAutoByCfg(); + break; + case SETGAINAUTOBYCFG: + SetGainAutoByCfg(); + break; + case SETEXPOSURETIMEBYCFG: + SetExposureTimeByCfg(); + break; + case SETFRAMERATEENABLE: + SetFrameRateEnable(); + break; + case SETFRAMERATE: + SetFrameRate(); + break; + case GETSHOWIMAGE: + result.set_levelimage(GetShowImage()); + (*response)->mutable_data()->PackFrom(result); + break; + case GETSHOWIMAGES: + GetImageSize(stoi(rd.strValue),response); + break; + case TAKEPHOTOS: + TakePhotos(); + break; + default: break; + + } +} + + +void HBDCamera::SendToClients(WRITETYPE type, const std::string& addKey) { + std::list its; + its.emplace_back(Item{ "IsConnect",to_string(IsConnect()),iBOOL }); + its.emplace_back(Item{ m_ShowFlag->GetCode(),m_ShowFlag->GetValueStr(),m_ShowFlag->GetDataType()}); + its.emplace_back(Item{ m_LastMouRefImgPosX->GetCode(),m_LastMouRefImgPosX->GetValueStr(),m_LastMouRefImgPosX->GetDataType()}); + its.emplace_back(Item{ m_LastMouRefImgPosY->GetCode(),m_LastMouRefImgPosY->GetValueStr(),m_LastMouRefImgPosY->GetDataType()}); + + if (m_PointImage) { + its.emplace_back(Item{ "High",to_string(m_PointImage->m_High),iINT }); + its.emplace_back(Item{ "Width",to_string(m_PointImage->m_Width),iINT }); + its.emplace_back(Item{ "ShowTex",to_string(m_PointImage->GetTex()),iUINT }); + } + + ClientWrapper::Instance()->PushAllClient(WriteData(CAMERAPARAM, its)); +} + + +void HBDCamera::Update(const ReadData& rd, WRITETYPE type) { + //这3参数只在客户端修改 + if (rd.nameKey == "LastMouRefImgPosX") { + m_LastMouRefImgPosX->SetValue(stoi(rd.strValue)); + } + else if (rd.nameKey == "LastMouRefImgPosY") { + m_LastMouRefImgPosY->SetValue(stoi(rd.strValue)); + } + else if (rd.nameKey == "ShowFlag") { + m_ShowFlag->SetValue((bool)stoi(rd.strValue)); + } + + SendToClients(); //客户端更新后在发送给客户端 +} \ No newline at end of file diff --git a/PrintS/camera/HBDCamera.h b/PrintS/camera/HBDCamera.h index e2835cd..a923094 100644 --- a/PrintS/camera/HBDCamera.h +++ b/PrintS/camera/HBDCamera.h @@ -4,13 +4,32 @@ #include "turbojpeg.h" #include #include +#include "../Controller/Base.h" +enum CameraFunc { + SETDEMANDCATPURE=0, + SETEXPOSUREAUTOBYCFG, + SETGAINAUTOBYCFG, + SETEXPOSURETIMEBYCFG, + SETFRAMERATEENABLE, + SETFRAMERATE, + GETSHOWIMAGE, + GETSHOWIMAGES, + + TAKEPHOTOS, +}; class PointImageShowInfo { public: PointImageShowInfo() - :m_ShowTex(0) { - m_IsColor = false; + : m_ShowTex(0) + , m_Width(0) + , m_High(0) + , m_PixelRatio(0) + , m_ImageData(nullptr) + , m_IsColor(false) + { + } ~PointImageShowInfo(); @@ -23,9 +42,10 @@ public: public: int m_Width; int m_High; - float m_PixelRatio; - cv::Mat m_ImageMat; - bool m_IsColor; + float m_PixelRatio; //不传 + bool m_IsColor; //不传 + + cv::Mat m_ImageMat; //不传 private: unsigned char* m_ImageData; uint32_t m_ShowTex; @@ -42,7 +62,7 @@ public: virtual void StartUp(); - virtual bool IsConnect() { return false; } + virtual bool IsConnect() { return false; } //当参数传 void SetDemandCatpure(bool demand) { m_DemandFlag = demand; } bool GetDemandCatpure() { return m_DemandFlag; } virtual void SetExposureAutoByCfg() {} @@ -53,23 +73,23 @@ public: virtual unsigned int GetShowImage() = 0; virtual unsigned int GetShowImage(unsigned char * data, unsigned long size, int *width, int *height); - virtual bool GenLogImage(void) { return false; } + virtual bool GenLogImage(void) { return false; } //不传 - unsigned char * GetLogImage(void) { return m_LogImage; } - unsigned int GetLogImageSize(void) { return m_LogImageSize; } - float GetAspect() { return m_Aspect; } + unsigned char * GetLogImage(void) { return m_LogImage; } //不传 + unsigned int GetLogImageSize(void) { return m_LogImageSize; } //不传 + float GetAspect() { return m_Aspect; } //当参数传 //unsigned int GetLogImageWidth() { return m_ImgWidth; } //unsigned int GetLogImageHeight() { return m_ImgHeight; } - virtual bool GetRawImage(unsigned char* img); + virtual bool GetRawImage(unsigned char* img); //TakePhotos包含了 - void GetRemoteShowImageMat(cv::Mat& mat) + void GetRemoteShowImageMat(cv::Mat& mat) //不用传 { EnterCriticalSection(&m_OriginalDataCS); m_ShowImage.copyTo(mat); LeaveCriticalSection(&m_OriginalDataCS); } - void GetOriginSize(int& width, int& height, int &datasize) { + void GetOriginSize(int& width, int& height, int &datasize) { //TakePhotos包含了 EnterCriticalSection(&m_OriginalDataCS); width = m_OriginalWidth; height = m_OriginalHeight; @@ -77,6 +97,10 @@ public: LeaveCriticalSection(&m_OriginalDataCS); } + void TakePhotos(); //拍照 + void CallFunc(const ReadData& rd, ::stream::ResponseAny** response); + void SendToClients(WRITETYPE type = CAMERAPARAM, const std::string& addKey = ""); + void Update(const ReadData& rd, WRITETYPE type = CAMERAPARAM); protected: virtual bool ConnectCamera() { return false; } virtual void GenTex(uint32_t *tex, unsigned int w, unsigned int h, void * data) {} @@ -86,11 +110,15 @@ protected: virtual void CatpureRun() = 0; virtual void CreateTestImage() {} +private: + void GetImageSize(int rowindex, ::stream::ResponseAny** response); public: - bool m_ShowFlag; + BoolData* m_ShowFlag; //只有界面会修改 + IntData* m_LastMouRefImgPosX; //只有界面会修改 + IntData* m_LastMouRefImgPosY; //只有界面会修改 + PointImageShowInfo* m_PointImage; - int m_LastMouRefImgPosX; - int m_LastMouRefImgPosY; + protected: bool m_IsColor; bool m_DemandFlag; diff --git a/PrintS/camera/OPTCamera.cpp b/PrintS/camera/OPTCamera.cpp index fcc4315..0e45fcb 100644 --- a/PrintS/camera/OPTCamera.cpp +++ b/PrintS/camera/OPTCamera.cpp @@ -1,4 +1,4 @@ -#include "OPTCamera.h" +#include "OPTCamera.h" #include #include #include "../config/ConfigManager.h" @@ -204,7 +204,7 @@ void OPTCamera::OnDeviceLinkNotify(const GENICAM_SConnectArg* pConnectArg, void* cam->m_StreamSource->detachGrabbingEx(cam->m_StreamSource, OnGetFrame, (void*)cam); cam->m_StreamSource->stopGrabbing(cam->m_StreamSource); cam->SetConnect(false); - // עص + // 注销回调 } return; } @@ -214,7 +214,7 @@ void OPTCamera::OnGetFrame(GENICAM_Frame* pFrame, void* pUser) if (!pUser)return; OPTCamera* cam = (OPTCamera*)pUser; int rel = pFrame->valid(pFrame); - if ((rel == 0) && (cam->m_DemandFlag || cam->m_ShowFlag)) + if ((rel == 0) && (cam->m_DemandFlag || cam->m_ShowFlag->GetValue())) { uint32_t datasize = pFrame->getImageSize(pFrame); cam->m_OriginalWidth = pFrame->getImageWidth(pFrame); diff --git a/PrintS/output/Release/log/2024.hbd b/PrintS/output/Release/log/2024.hbd index aa525ef..b240560 100644 Binary files a/PrintS/output/Release/log/2024.hbd and b/PrintS/output/Release/log/2024.hbd differ diff --git a/PrintS/protobuf/stream.pb.cc b/PrintS/protobuf/stream.pb.cc index 4c765c5..ad77b52 100644 --- a/PrintS/protobuf/stream.pb.cc +++ b/PrintS/protobuf/stream.pb.cc @@ -215,8 +215,26 @@ struct RegResponceDefaultTypeInternal { PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RegResponceDefaultTypeInternal _RegResponce_default_instance_; + template +PROTOBUF_CONSTEXPR ImgInfoResponce::ImgInfoResponce(::_pbi::ConstantInitialized) + : _impl_{ + /*decltype(_impl_.levelimage_)*/ 0u, + /*decltype(_impl_.width_)*/ 0, + /*decltype(_impl_.height_)*/ 0, + /*decltype(_impl_._cached_size_)*/ {}, + } {} +struct ImgInfoResponceDefaultTypeInternal { + PROTOBUF_CONSTEXPR ImgInfoResponceDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} + ~ImgInfoResponceDefaultTypeInternal() {} + union { + ImgInfoResponce _instance; + }; +}; + +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ImgInfoResponceDefaultTypeInternal _ImgInfoResponce_default_instance_; } // namespace stream -static ::_pb::Metadata file_level_metadata_stream_2eproto[10]; +static ::_pb::Metadata file_level_metadata_stream_2eproto[11]; static const ::_pb::EnumDescriptor* file_level_enum_descriptors_stream_2eproto[1]; static constexpr const ::_pb::ServiceDescriptor** file_level_service_descriptors_stream_2eproto = nullptr; @@ -334,6 +352,17 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE ~0u, // no _split_ ~0u, // no sizeof(Split) PROTOBUF_FIELD_OFFSET(::stream::RegResponce, _impl_.data_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _split_ + ~0u, // no sizeof(Split) + PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.levelimage_), + PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.width_), + PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.height_), }; static const ::_pbi::MigrationSchema @@ -348,6 +377,7 @@ static const ::_pbi::MigrationSchema {83, -1, -1, sizeof(::stream::ChainDataBlock)}, {93, -1, -1, sizeof(::stream::Point)}, {103, -1, -1, sizeof(::stream::RegResponce)}, + {112, -1, -1, sizeof(::stream::ImgInfoResponce)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -361,6 +391,7 @@ static const ::_pb::Message* const file_default_instances[] = { &::stream::_ChainDataBlock_default_instance_._instance, &::stream::_Point_default_instance_._instance, &::stream::_RegResponce_default_instance_._instance, + &::stream::_ImgInfoResponce_default_instance_._instance, }; const char descriptor_table_protodef_stream_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { "\n\014stream.proto\022\006stream\032\031google/protobuf/" @@ -385,17 +416,19 @@ const char descriptor_table_protodef_stream_2eproto[] PROTOBUF_SECTION_VARIABLE( "dY\030\004 \001(\002\"A\n\016ChainDataBlock\022\016\n\006dotNum\030\001 \001" "(\r\022\037\n\010pointVec\030\002 \003(\0132\r.stream.Point\"#\n\005P" "oint\022\014\n\004xPos\030\001 \001(\002\022\014\n\004yPos\030\002 \001(\002\"\033\n\013RegR" - "esponce\022\014\n\004data\030\001 \001(\005*X\n\004TYPE\022\t\n\005iBOOL\020\000" - "\022\n\n\006iSHORT\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004iINT\020\003\022\t\n\005i" - "UINT\020\004\022\n\n\006iFLOAT\020\005\022\013\n\007iSTRING\020\0062\372\001\n\006Stre" - "am\0224\n\006Simple\022\023.stream.RequestInfo\032\023.stre" - "am.ResponseAny\"\000\022=\n\014ServerStream\022\023.strea" - "m.RequestInfo\032\024.stream.ResponseInfo\"\0000\001\022" - "=\n\014ClientStream\022\023.stream.RequestInfo\032\024.s" - "tream.ResponseInfo\"\000(\001\022<\n\tAllStream\022\023.st" - "ream.RequestInfo\032\024.stream.ResponseInfo\"\000" - "(\0010\001B-\n\027io.grpc.examples.streamB\013StreamP" - "rotoP\001\242\002\002STb\006proto3" + "esponce\022\014\n\004data\030\001 \001(\005\"D\n\017ImgInfoResponce" + "\022\022\n\nlevelImage\030\001 \001(\r\022\r\n\005width\030\002 \001(\005\022\016\n\006h" + "eight\030\003 \001(\005*X\n\004TYPE\022\t\n\005iBOOL\020\000\022\n\n\006iSHORT" + "\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004iINT\020\003\022\t\n\005iUINT\020\004\022\n\n\006" + "iFLOAT\020\005\022\013\n\007iSTRING\020\0062\372\001\n\006Stream\0224\n\006Simp" + "le\022\023.stream.RequestInfo\032\023.stream.Respons" + "eAny\"\000\022=\n\014ServerStream\022\023.stream.RequestI" + "nfo\032\024.stream.ResponseInfo\"\0000\001\022=\n\014ClientS" + "tream\022\023.stream.RequestInfo\032\024.stream.Resp" + "onseInfo\"\000(\001\022<\n\tAllStream\022\023.stream.Reque" + "stInfo\032\024.stream.ResponseInfo\"\000(\0010\001B-\n\027io" + ".grpc.examples.streamB\013StreamProtoP\001\242\002\002S" + "Tb\006proto3" }; static const ::_pbi::DescriptorTable* const descriptor_table_stream_2eproto_deps[1] = { @@ -405,13 +438,13 @@ static ::absl::once_flag descriptor_table_stream_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_stream_2eproto = { false, false, - 1299, + 1369, descriptor_table_protodef_stream_2eproto, "stream.proto", &descriptor_table_stream_2eproto_once, descriptor_table_stream_2eproto_deps, 1, - 10, + 11, schemas, file_default_instances, TableStruct_stream_2eproto::offsets, @@ -2946,6 +2979,226 @@ void RegResponce::InternalSwap(RegResponce* other) { &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, file_level_metadata_stream_2eproto[9]); } +// =================================================================== + +class ImgInfoResponce::_Internal { + public: +}; + +ImgInfoResponce::ImgInfoResponce(::google::protobuf::Arena* arena) + : ::google::protobuf::Message(arena) { + SharedCtor(arena); + // @@protoc_insertion_point(arena_constructor:stream.ImgInfoResponce) +} +ImgInfoResponce::ImgInfoResponce(const ImgInfoResponce& from) + : ::google::protobuf::Message(), _impl_(from._impl_) { + _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>( + from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:stream.ImgInfoResponce) +} +inline void ImgInfoResponce::SharedCtor(::_pb::Arena* arena) { + (void)arena; + new (&_impl_) Impl_{ + decltype(_impl_.levelimage_){0u}, + decltype(_impl_.width_){0}, + decltype(_impl_.height_){0}, + /*decltype(_impl_._cached_size_)*/ {}, + }; +} +ImgInfoResponce::~ImgInfoResponce() { + // @@protoc_insertion_point(destructor:stream.ImgInfoResponce) + _internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>(); + SharedDtor(); +} +inline void ImgInfoResponce::SharedDtor() { + ABSL_DCHECK(GetArenaForAllocation() == nullptr); +} +void ImgInfoResponce::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +PROTOBUF_NOINLINE void ImgInfoResponce::Clear() { +// @@protoc_insertion_point(message_clear_start:stream.ImgInfoResponce) + ::uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + ::memset(&_impl_.levelimage_, 0, static_cast<::size_t>( + reinterpret_cast(&_impl_.height_) - + reinterpret_cast(&_impl_.levelimage_)) + sizeof(_impl_.height_)); + _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); +} + +const char* ImgInfoResponce::_InternalParse( + const char* ptr, ::_pbi::ParseContext* ctx) { + ptr = ::_pbi::TcParser::ParseLoop(this, ptr, ctx, &_table_.header); + return ptr; +} + + +PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 +const ::_pbi::TcParseTable<2, 3, 0, 0, 2> ImgInfoResponce::_table_ = { + { + 0, // no _has_bits_ + 0, // no _extensions_ + 3, 24, // max_field_number, fast_idx_mask + offsetof(decltype(_table_), field_lookup_table), + 4294967288, // skipmap + offsetof(decltype(_table_), field_entries), + 3, // num_field_entries + 0, // num_aux_entries + offsetof(decltype(_table_), field_names), // no aux_entries + &_ImgInfoResponce_default_instance_._instance, + ::_pbi::TcParser::GenericFallback, // fallback + }, {{ + {::_pbi::TcParser::MiniParse, {}}, + // uint32 levelImage = 1; + {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.levelimage_), 63>(), + {8, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_)}}, + // int32 width = 2; + {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.width_), 63>(), + {16, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.width_)}}, + // int32 height = 3; + {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.height_), 63>(), + {24, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_)}}, + }}, {{ + 65535, 65535 + }}, {{ + // uint32 levelImage = 1; + {PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kUInt32)}, + // int32 width = 2; + {PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.width_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, + // int32 height = 3; + {PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, + }}, + // no aux_entries + {{ + }}, +}; + +::uint8_t* ImgInfoResponce::_InternalSerialize( + ::uint8_t* target, + ::google::protobuf::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:stream.ImgInfoResponce) + ::uint32_t cached_has_bits = 0; + (void)cached_has_bits; + + // uint32 levelImage = 1; + if (this->_internal_levelimage() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteUInt32ToArray( + 1, this->_internal_levelimage(), target); + } + + // int32 width = 2; + if (this->_internal_width() != 0) { + target = ::google::protobuf::internal::WireFormatLite:: + WriteInt32ToArrayWithField<2>( + stream, this->_internal_width(), target); + } + + // int32 height = 3; + if (this->_internal_height() != 0) { + target = ::google::protobuf::internal::WireFormatLite:: + WriteInt32ToArrayWithField<3>( + stream, this->_internal_height(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = + ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:stream.ImgInfoResponce) + return target; +} + +::size_t ImgInfoResponce::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:stream.ImgInfoResponce) + ::size_t total_size = 0; + + ::uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // uint32 levelImage = 1; + if (this->_internal_levelimage() != 0) { + total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne( + this->_internal_levelimage()); + } + + // int32 width = 2; + if (this->_internal_width() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( + this->_internal_width()); + } + + // int32 height = 3; + if (this->_internal_height() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( + this->_internal_height()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::google::protobuf::Message::ClassData ImgInfoResponce::_class_data_ = { + ::google::protobuf::Message::CopyWithSourceCheck, + ImgInfoResponce::MergeImpl +}; +const ::google::protobuf::Message::ClassData*ImgInfoResponce::GetClassData() const { return &_class_data_; } + + +void ImgInfoResponce::MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:stream.ImgInfoResponce) + ABSL_DCHECK_NE(&from, _this); + ::uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_levelimage() != 0) { + _this->_internal_set_levelimage(from._internal_levelimage()); + } + if (from._internal_width() != 0) { + _this->_internal_set_width(from._internal_width()); + } + if (from._internal_height() != 0) { + _this->_internal_set_height(from._internal_height()); + } + _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); +} + +void ImgInfoResponce::CopyFrom(const ImgInfoResponce& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:stream.ImgInfoResponce) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +PROTOBUF_NOINLINE bool ImgInfoResponce::IsInitialized() const { + return true; +} + +void ImgInfoResponce::InternalSwap(ImgInfoResponce* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::google::protobuf::internal::memswap< + PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_) + + sizeof(ImgInfoResponce::_impl_.height_) + - PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_)>( + reinterpret_cast(&_impl_.levelimage_), + reinterpret_cast(&other->_impl_.levelimage_)); +} + +::google::protobuf::Metadata ImgInfoResponce::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, + file_level_metadata_stream_2eproto[10]); +} // @@protoc_insertion_point(namespace_scope) } // namespace stream namespace google { diff --git a/PrintS/protobuf/stream.pb.h b/PrintS/protobuf/stream.pb.h index baf6347..49d210c 100644 --- a/PrintS/protobuf/stream.pb.h +++ b/PrintS/protobuf/stream.pb.h @@ -59,6 +59,9 @@ namespace stream { class ChainDataBlock; struct ChainDataBlockDefaultTypeInternal; extern ChainDataBlockDefaultTypeInternal _ChainDataBlock_default_instance_; +class ImgInfoResponce; +struct ImgInfoResponceDefaultTypeInternal; +extern ImgInfoResponceDefaultTypeInternal _ImgInfoResponce_default_instance_; class LayerData; struct LayerDataDefaultTypeInternal; extern LayerDataDefaultTypeInternal _LayerData_default_instance_; @@ -2036,6 +2039,188 @@ class RegResponce final : }; union { Impl_ _impl_; }; friend struct ::TableStruct_stream_2eproto; +};// ------------------------------------------------------------------- + +class ImgInfoResponce final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:stream.ImgInfoResponce) */ { + public: + inline ImgInfoResponce() : ImgInfoResponce(nullptr) {} + ~ImgInfoResponce() override; + template + explicit PROTOBUF_CONSTEXPR ImgInfoResponce(::google::protobuf::internal::ConstantInitialized); + + ImgInfoResponce(const ImgInfoResponce& from); + ImgInfoResponce(ImgInfoResponce&& from) noexcept + : ImgInfoResponce() { + *this = ::std::move(from); + } + + inline ImgInfoResponce& operator=(const ImgInfoResponce& from) { + CopyFrom(from); + return *this; + } + inline ImgInfoResponce& operator=(ImgInfoResponce&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const { + return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance); + } + inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() { + return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>(); + } + + static const ::google::protobuf::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::google::protobuf::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::google::protobuf::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ImgInfoResponce& default_instance() { + return *internal_default_instance(); + } + static inline const ImgInfoResponce* internal_default_instance() { + return reinterpret_cast( + &_ImgInfoResponce_default_instance_); + } + static constexpr int kIndexInFileMessages = + 10; + + friend void swap(ImgInfoResponce& a, ImgInfoResponce& b) { + a.Swap(&b); + } + inline void Swap(ImgInfoResponce* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::google::protobuf::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ImgInfoResponce* other) { + if (other == this) return; + ABSL_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ImgInfoResponce* New(::google::protobuf::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::google::protobuf::Message::CopyFrom; + void CopyFrom(const ImgInfoResponce& from); + using ::google::protobuf::Message::MergeFrom; + void MergeFrom( const ImgInfoResponce& from) { + ImgInfoResponce::MergeImpl(*this, from); + } + private: + static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + ::size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final; + ::uint8_t* _InternalSerialize( + ::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::google::protobuf::Arena* arena); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ImgInfoResponce* other); + + private: + friend class ::google::protobuf::internal::AnyMetadata; + static ::absl::string_view FullMessageName() { + return "stream.ImgInfoResponce"; + } + protected: + explicit ImgInfoResponce(::google::protobuf::Arena* arena); + public: + + static const ClassData _class_data_; + const ::google::protobuf::Message::ClassData*GetClassData() const final; + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kLevelImageFieldNumber = 1, + kWidthFieldNumber = 2, + kHeightFieldNumber = 3, + }; + // uint32 levelImage = 1; + void clear_levelimage() ; + ::uint32_t levelimage() const; + void set_levelimage(::uint32_t value); + + private: + ::uint32_t _internal_levelimage() const; + void _internal_set_levelimage(::uint32_t value); + + public: + // int32 width = 2; + void clear_width() ; + ::int32_t width() const; + void set_width(::int32_t value); + + private: + ::int32_t _internal_width() const; + void _internal_set_width(::int32_t value); + + public: + // int32 height = 3; + void clear_height() ; + ::int32_t height() const; + void set_height(::int32_t value); + + private: + ::int32_t _internal_height() const; + void _internal_set_height(::int32_t value); + + public: + // @@protoc_insertion_point(class_scope:stream.ImgInfoResponce) + private: + class _Internal; + + friend class ::google::protobuf::internal::TcParser; + static const ::google::protobuf::internal::TcParseTable<2, 3, 0, 0, 2> _table_; + template friend class ::google::protobuf::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::uint32_t levelimage_; + ::int32_t width_; + ::int32_t height_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + PROTOBUF_TSAN_DECLARE_MEMBER + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_stream_2eproto; }; // =================================================================== @@ -3078,6 +3263,76 @@ inline void RegResponce::_internal_set_data(::int32_t value) { _impl_.data_ = value; } +// ------------------------------------------------------------------- + +// ImgInfoResponce + +// uint32 levelImage = 1; +inline void ImgInfoResponce::clear_levelimage() { + _impl_.levelimage_ = 0u; +} +inline ::uint32_t ImgInfoResponce::levelimage() const { + // @@protoc_insertion_point(field_get:stream.ImgInfoResponce.levelImage) + return _internal_levelimage(); +} +inline void ImgInfoResponce::set_levelimage(::uint32_t value) { + _internal_set_levelimage(value); + // @@protoc_insertion_point(field_set:stream.ImgInfoResponce.levelImage) +} +inline ::uint32_t ImgInfoResponce::_internal_levelimage() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.levelimage_; +} +inline void ImgInfoResponce::_internal_set_levelimage(::uint32_t value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.levelimage_ = value; +} + +// int32 width = 2; +inline void ImgInfoResponce::clear_width() { + _impl_.width_ = 0; +} +inline ::int32_t ImgInfoResponce::width() const { + // @@protoc_insertion_point(field_get:stream.ImgInfoResponce.width) + return _internal_width(); +} +inline void ImgInfoResponce::set_width(::int32_t value) { + _internal_set_width(value); + // @@protoc_insertion_point(field_set:stream.ImgInfoResponce.width) +} +inline ::int32_t ImgInfoResponce::_internal_width() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.width_; +} +inline void ImgInfoResponce::_internal_set_width(::int32_t value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.width_ = value; +} + +// int32 height = 3; +inline void ImgInfoResponce::clear_height() { + _impl_.height_ = 0; +} +inline ::int32_t ImgInfoResponce::height() const { + // @@protoc_insertion_point(field_get:stream.ImgInfoResponce.height) + return _internal_height(); +} +inline void ImgInfoResponce::set_height(::int32_t value) { + _internal_set_height(value); + // @@protoc_insertion_point(field_set:stream.ImgInfoResponce.height) +} +inline ::int32_t ImgInfoResponce::_internal_height() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.height_; +} +inline void ImgInfoResponce::_internal_set_height(::int32_t value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.height_ = value; +} + #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ diff --git a/PrintS/protobuf/stream.proto b/PrintS/protobuf/stream.proto index 81941a8..a94d3bf 100644 --- a/PrintS/protobuf/stream.proto +++ b/PrintS/protobuf/stream.proto @@ -103,6 +103,11 @@ message RegResponce{ int32 data = 1; } +message ImgInfoResponce{ + uint32 levelImage = 1; + int32 width = 2; + int32 height = 3; +} service Stream { rpc Simple(RequestInfo) returns (ResponseAny) {} // 简单模式 diff --git a/PrintS/说明.txt b/PrintS/说明.txt index a6ecebf..aad5501 100644 --- a/PrintS/说明.txt +++ b/PrintS/说明.txt @@ -15,7 +15,6 @@ 服务端保存一份数据, plcparam 重复code: - ArmFrontLimit ArmBackLimit diff --git a/TestClient/DataManage/DataHandle.cpp b/TestClient/DataManage/DataHandle.cpp index a995703..3c621a0 100644 --- a/TestClient/DataManage/DataHandle.cpp +++ b/TestClient/DataManage/DataHandle.cpp @@ -109,6 +109,7 @@ void DataHandle::Usage() { printf(" 3: " COLOR_YELLOW "test axis move interface...\n" COLOR_RESET); printf(" 4: " COLOR_YELLOW "test scan control interface...\n" COLOR_RESET); printf(" 5: " COLOR_YELLOW "test registration interface...\n" COLOR_RESET); + printf(" 6: " COLOR_YELLOW "test camera interface...\n" COLOR_RESET); printf(" 100: " COLOR_YELLOW "start test recv param interface...\n" COLOR_RESET); } @@ -153,6 +154,7 @@ void DataHandle::ParamReadUsage() { printf(" 34: " COLOR_YELLOW "print scan ctrl state data...\n" COLOR_RESET); printf(" 35: " COLOR_YELLOW "print scan ctrl Param data...\n" COLOR_RESET); printf(" 36: " COLOR_YELLOW "print xy scan state data...\n" COLOR_RESET); + printf(" 37: " COLOR_YELLOW "print camera param data...\n" COLOR_RESET); } int DataHandle::Request(int index) { @@ -172,6 +174,8 @@ int DataHandle::Request(int index) { ScanCtrlTest(); break; case 5: RegistrationTest(); break; + case 6: + CameraTest(); break; case 100: ParamReadUsage(); while (printf("*请输入命令:") && std::getline(std::cin, userInput)) { @@ -199,6 +203,7 @@ void DataHandle::AllTest() { AxisMoveTest(); ScanCtrlTest(); RegistrationTest(); + CameraTest(); } @@ -247,10 +252,10 @@ void DataHandle::ScanCtrlTest() { int count = (int)SCANCTRLFUNC::END1; for (int i = 0; i < count; ++i) { - if (i == 6) { + if (i == REMOVESCANNER) { SetPushMsg(WRITETYPE::SCANCTRLFUNC, to_string(i), to_string(1),iINT); } - else if (i == 8) { + else if (i == STOPHEATINGMOTION) { SetPushMsg(WRITETYPE::SCANCTRLFUNC, to_string(i),to_string(0),iBOOL); } else { @@ -258,31 +263,24 @@ void DataHandle::ScanCtrlTest() { } printf("发送请求%d成功...\n", i); - Sleep(1000); + Sleep(500); } } void DataHandle::RegistrationTest(){ - ::stream::ResponseAny resp; - WriteData wdata; stream::RegResponce result; - wdata.valueType = iSTRING; - wdata.strValue = to_string(time(nullptr)); - wdata.nameKey = to_string(CHECKREG); - wdata.dataType = REGISTFUNC; + WriteData wdata{ REGISTFUNC ,to_string(CHECKREG),to_string(time(nullptr)) ,iSTRING }; m_streamClient->Request(wdata,&resp); - if (resp.data().Is()) { resp.data().UnpackTo(&result); printf("CHECKREG resp:%d\n", result.data()); } Sleep(100); - wdata.valueType = iSTRING; wdata.strValue = "123456789"; wdata.nameKey = to_string(GETSN); m_streamClient->Request(wdata, &resp); @@ -292,7 +290,6 @@ void DataHandle::RegistrationTest(){ } Sleep(100); - wdata.valueType = iSTRING; wdata.strValue = "regconfig"; wdata.nameKey = to_string(CHECKREGKEY); m_streamClient->Request(wdata, &resp); @@ -300,4 +297,44 @@ void DataHandle::RegistrationTest(){ resp.data().UnpackTo(&result); printf("CHECKREGKEY resp:%d\n", result.data()); } +} + +void DataHandle::CameraTest() { + + int count = (int)CAMERAFUNC::END2; + for (int i = 0; i < count; ++i) { + if (i == GETSHOWIMAGE || i == GETSHOWIMAGES) continue; + + if(i == SETDEMANDCATPURE) SetPushMsg(CAMERAFUNC, to_string(i),to_string(1),iBOOL); + else SetPushMsg(CAMERAFUNC, to_string(i)); + printf("发送请求%d成功...\n", i); + Sleep(100); + } + + ::stream::ResponseAny resp; + stream::ImgInfoResponce result; + WriteData wdata{ CAMERAFUNC ,to_string(GETSHOWIMAGE)}; + m_streamClient->Request(wdata, &resp); + if (resp.data().Is()) { + resp.data().UnpackTo(&result); + printf("GETSHOWIMAGE resp:%u\n", result.levelimage()); + } + Sleep(100); + + resp.Clear(); + wdata.nameKey = to_string(GETSHOWIMAGES); + wdata.strValue = to_string(5); //测试值 + wdata.valueType = iINT; //测试值 + m_streamClient->Request(wdata, &resp); + if (resp.data().Is()) { + resp.data().UnpackTo(&result); + printf("GETSHOWIMAGES resp levelimg:%u,height:%d,width:%d\n", result.levelimage(),result.width(),result.height()); + } + Sleep(100); + + //修改参数 + SetPushMsg(WRITETYPE::CAMERAPARAMUPDATE,"LastMouRefImgPosX", to_string(10),iINT); + SetPushMsg(WRITETYPE::CAMERAPARAMUPDATE,"LastMouRefImgPosY", to_string(100),iINT); + SetPushMsg(WRITETYPE::CAMERAPARAMUPDATE,"ShowFlag", to_string(1),iBOOL); + printf("CAMERAPARAMUPDATE update finish\n"); } \ No newline at end of file diff --git a/TestClient/DataManage/DataHandle.h b/TestClient/DataManage/DataHandle.h index 3d68de5..e2b5d50 100644 --- a/TestClient/DataManage/DataHandle.h +++ b/TestClient/DataManage/DataHandle.h @@ -29,6 +29,7 @@ public: void AxisMoveTest(); //轴运动测试 void ScanCtrlTest(); //扫描控制测试 void RegistrationTest(); //注册功能测试 + void CameraTest(); //相机功能测试 void Usage(); void ParamReadUsage(); diff --git a/TestClient/DataManage/FunC.h b/TestClient/DataManage/FunC.h index 624e38e..d000bdc 100644 --- a/TestClient/DataManage/FunC.h +++ b/TestClient/DataManage/FunC.h @@ -62,4 +62,18 @@ typedef enum { REG_SUCCESS = 0, REG_TRIAL, REG_FAIL, -} RegType; \ No newline at end of file +} RegType; + +enum CAMERAFUNC { + SETDEMANDCATPURE = 0, + SETEXPOSUREAUTOBYCFG, + SETGAINAUTOBYCFG, + SETEXPOSURETIMEBYCFG, + SETFRAMERATEENABLE, + SETFRAMERATE, + GETSHOWIMAGE, + GETSHOWIMAGES, + + TAKEPHOTOS, + END2, +}; \ No newline at end of file diff --git a/TestClient/DataManage/RWData.h b/TestClient/DataManage/RWData.h index 6c5f5e6..99dec3b 100644 --- a/TestClient/DataManage/RWData.h +++ b/TestClient/DataManage/RWData.h @@ -2,6 +2,8 @@ #include #include +//#define DELP(p) if(p){delete p; p = nullptr;} + enum READTYPE { ALARM = 0, //报警 VERSIONRSP, //返回版本信息 @@ -50,6 +52,7 @@ enum READTYPE { SCANCTRLSTATE, //BaseCtrl参数 SCANCTRLPARAM, //scanctrl参数 XYSCANSTATE, //XYScanState参数 在参数更新的时候才会发送到客户端 + CAMERAPARAM, //相机参数 TEST = 1000, //test @@ -87,9 +90,7 @@ struct ReadData { enum WRITETYPE { - GET = 0, - SET, - AXISMOVEFUNC, //轴运动函数 + AXISMOVEFUNC = 0, //轴运动函数 VERSIONREQ, //获取版本信息 @@ -97,7 +98,9 @@ enum WRITETYPE { RESETELEC, //PowerMeterClient PURIFIERPARAMW, //净化器参数写入 LAYERDATAREQ, //layer数据请求 - REGISTFUNC, //注册函数集 + REGISTFUNC, //注册函数集 一次请求,使用请求回复模式 + CAMERAFUNC, //相机功能函数调用 + CAMERAPARAMUPDATE, //相机参数更新 SETZEROPOS, //AxisState使用 AXISSTOPALL, //axis 运动急停 @@ -108,8 +111,6 @@ enum WRITETYPE { LOADPARAM, //装载参数 - - /********************振镜控制******************/ SCANCTRLFUNC, //振镜控制函数 REQUEST, //获取配置信息 test用 diff --git a/TestClient/DataManage/StreamClient.cpp b/TestClient/DataManage/StreamClient.cpp index 59c952d..7b7bbb2 100644 --- a/TestClient/DataManage/StreamClient.cpp +++ b/TestClient/DataManage/StreamClient.cpp @@ -107,7 +107,7 @@ void StreamClient::AllStream() { Status status = stream->Finish(); if (!status.ok()) { std::cout << "RPC failed: " << status.error_message() << std::endl; - exit(-1); + //exit(-1); } } @@ -135,10 +135,10 @@ int StreamClient::Request(const WriteData& writeData , ::stream::ResponseAny* re ClientContext context; ::stream::RequestInfo request; - request.set_datatype(REGISTFUNC); + request.set_datatype(writeData.dataType); request.set_namekey(writeData.nameKey); request.set_strvalue(writeData.strValue); - request.set_valuetype((stream::TYPE)iSTRING); + request.set_valuetype((stream::TYPE)writeData.valueType); Status status = _stub->Simple(&context, request, response); return status.ok(); diff --git a/TestClient/PrintC.vcxproj b/TestClient/PrintC.vcxproj index 135e319..015551f 100644 --- a/TestClient/PrintC.vcxproj +++ b/TestClient/PrintC.vcxproj @@ -182,9 +182,9 @@ + - diff --git a/TestClient/PrintC.vcxproj.filters b/TestClient/PrintC.vcxproj.filters index 4c379ec..c222b86 100644 --- a/TestClient/PrintC.vcxproj.filters +++ b/TestClient/PrintC.vcxproj.filters @@ -74,9 +74,6 @@ - - protobuf - DataManage @@ -260,14 +257,11 @@ protobuf + + protobuf + - - protobuf - - - protobuf - utils @@ -518,6 +512,12 @@ UI + + protobuf + + + protobuf + diff --git a/TestClient/main.cpp b/TestClient/main.cpp index b2cc40c..3090be4 100644 --- a/TestClient/main.cpp +++ b/TestClient/main.cpp @@ -8,6 +8,7 @@ #include "SystemInfo.h" #include "Logger.h" #include "Toast.h" +#include "stdafx.h" #include #include "LanguageManager.h" #include "../DataManage/DataHandle.h" @@ -82,8 +83,9 @@ int main(int argc, char** argv) { } - delete sys; - sys = nullptr; + DELP(dataHandle); + DELP(sys); + return 0; } diff --git a/TestClient/protobuf/stream.pb.cc b/TestClient/protobuf/stream.pb.cc index 4c765c5..ad77b52 100644 --- a/TestClient/protobuf/stream.pb.cc +++ b/TestClient/protobuf/stream.pb.cc @@ -215,8 +215,26 @@ struct RegResponceDefaultTypeInternal { PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RegResponceDefaultTypeInternal _RegResponce_default_instance_; + template +PROTOBUF_CONSTEXPR ImgInfoResponce::ImgInfoResponce(::_pbi::ConstantInitialized) + : _impl_{ + /*decltype(_impl_.levelimage_)*/ 0u, + /*decltype(_impl_.width_)*/ 0, + /*decltype(_impl_.height_)*/ 0, + /*decltype(_impl_._cached_size_)*/ {}, + } {} +struct ImgInfoResponceDefaultTypeInternal { + PROTOBUF_CONSTEXPR ImgInfoResponceDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} + ~ImgInfoResponceDefaultTypeInternal() {} + union { + ImgInfoResponce _instance; + }; +}; + +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ImgInfoResponceDefaultTypeInternal _ImgInfoResponce_default_instance_; } // namespace stream -static ::_pb::Metadata file_level_metadata_stream_2eproto[10]; +static ::_pb::Metadata file_level_metadata_stream_2eproto[11]; static const ::_pb::EnumDescriptor* file_level_enum_descriptors_stream_2eproto[1]; static constexpr const ::_pb::ServiceDescriptor** file_level_service_descriptors_stream_2eproto = nullptr; @@ -334,6 +352,17 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE ~0u, // no _split_ ~0u, // no sizeof(Split) PROTOBUF_FIELD_OFFSET(::stream::RegResponce, _impl_.data_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _split_ + ~0u, // no sizeof(Split) + PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.levelimage_), + PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.width_), + PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.height_), }; static const ::_pbi::MigrationSchema @@ -348,6 +377,7 @@ static const ::_pbi::MigrationSchema {83, -1, -1, sizeof(::stream::ChainDataBlock)}, {93, -1, -1, sizeof(::stream::Point)}, {103, -1, -1, sizeof(::stream::RegResponce)}, + {112, -1, -1, sizeof(::stream::ImgInfoResponce)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -361,6 +391,7 @@ static const ::_pb::Message* const file_default_instances[] = { &::stream::_ChainDataBlock_default_instance_._instance, &::stream::_Point_default_instance_._instance, &::stream::_RegResponce_default_instance_._instance, + &::stream::_ImgInfoResponce_default_instance_._instance, }; const char descriptor_table_protodef_stream_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { "\n\014stream.proto\022\006stream\032\031google/protobuf/" @@ -385,17 +416,19 @@ const char descriptor_table_protodef_stream_2eproto[] PROTOBUF_SECTION_VARIABLE( "dY\030\004 \001(\002\"A\n\016ChainDataBlock\022\016\n\006dotNum\030\001 \001" "(\r\022\037\n\010pointVec\030\002 \003(\0132\r.stream.Point\"#\n\005P" "oint\022\014\n\004xPos\030\001 \001(\002\022\014\n\004yPos\030\002 \001(\002\"\033\n\013RegR" - "esponce\022\014\n\004data\030\001 \001(\005*X\n\004TYPE\022\t\n\005iBOOL\020\000" - "\022\n\n\006iSHORT\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004iINT\020\003\022\t\n\005i" - "UINT\020\004\022\n\n\006iFLOAT\020\005\022\013\n\007iSTRING\020\0062\372\001\n\006Stre" - "am\0224\n\006Simple\022\023.stream.RequestInfo\032\023.stre" - "am.ResponseAny\"\000\022=\n\014ServerStream\022\023.strea" - "m.RequestInfo\032\024.stream.ResponseInfo\"\0000\001\022" - "=\n\014ClientStream\022\023.stream.RequestInfo\032\024.s" - "tream.ResponseInfo\"\000(\001\022<\n\tAllStream\022\023.st" - "ream.RequestInfo\032\024.stream.ResponseInfo\"\000" - "(\0010\001B-\n\027io.grpc.examples.streamB\013StreamP" - "rotoP\001\242\002\002STb\006proto3" + "esponce\022\014\n\004data\030\001 \001(\005\"D\n\017ImgInfoResponce" + "\022\022\n\nlevelImage\030\001 \001(\r\022\r\n\005width\030\002 \001(\005\022\016\n\006h" + "eight\030\003 \001(\005*X\n\004TYPE\022\t\n\005iBOOL\020\000\022\n\n\006iSHORT" + "\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004iINT\020\003\022\t\n\005iUINT\020\004\022\n\n\006" + "iFLOAT\020\005\022\013\n\007iSTRING\020\0062\372\001\n\006Stream\0224\n\006Simp" + "le\022\023.stream.RequestInfo\032\023.stream.Respons" + "eAny\"\000\022=\n\014ServerStream\022\023.stream.RequestI" + "nfo\032\024.stream.ResponseInfo\"\0000\001\022=\n\014ClientS" + "tream\022\023.stream.RequestInfo\032\024.stream.Resp" + "onseInfo\"\000(\001\022<\n\tAllStream\022\023.stream.Reque" + "stInfo\032\024.stream.ResponseInfo\"\000(\0010\001B-\n\027io" + ".grpc.examples.streamB\013StreamProtoP\001\242\002\002S" + "Tb\006proto3" }; static const ::_pbi::DescriptorTable* const descriptor_table_stream_2eproto_deps[1] = { @@ -405,13 +438,13 @@ static ::absl::once_flag descriptor_table_stream_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_stream_2eproto = { false, false, - 1299, + 1369, descriptor_table_protodef_stream_2eproto, "stream.proto", &descriptor_table_stream_2eproto_once, descriptor_table_stream_2eproto_deps, 1, - 10, + 11, schemas, file_default_instances, TableStruct_stream_2eproto::offsets, @@ -2946,6 +2979,226 @@ void RegResponce::InternalSwap(RegResponce* other) { &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, file_level_metadata_stream_2eproto[9]); } +// =================================================================== + +class ImgInfoResponce::_Internal { + public: +}; + +ImgInfoResponce::ImgInfoResponce(::google::protobuf::Arena* arena) + : ::google::protobuf::Message(arena) { + SharedCtor(arena); + // @@protoc_insertion_point(arena_constructor:stream.ImgInfoResponce) +} +ImgInfoResponce::ImgInfoResponce(const ImgInfoResponce& from) + : ::google::protobuf::Message(), _impl_(from._impl_) { + _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>( + from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:stream.ImgInfoResponce) +} +inline void ImgInfoResponce::SharedCtor(::_pb::Arena* arena) { + (void)arena; + new (&_impl_) Impl_{ + decltype(_impl_.levelimage_){0u}, + decltype(_impl_.width_){0}, + decltype(_impl_.height_){0}, + /*decltype(_impl_._cached_size_)*/ {}, + }; +} +ImgInfoResponce::~ImgInfoResponce() { + // @@protoc_insertion_point(destructor:stream.ImgInfoResponce) + _internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>(); + SharedDtor(); +} +inline void ImgInfoResponce::SharedDtor() { + ABSL_DCHECK(GetArenaForAllocation() == nullptr); +} +void ImgInfoResponce::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +PROTOBUF_NOINLINE void ImgInfoResponce::Clear() { +// @@protoc_insertion_point(message_clear_start:stream.ImgInfoResponce) + ::uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + ::memset(&_impl_.levelimage_, 0, static_cast<::size_t>( + reinterpret_cast(&_impl_.height_) - + reinterpret_cast(&_impl_.levelimage_)) + sizeof(_impl_.height_)); + _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); +} + +const char* ImgInfoResponce::_InternalParse( + const char* ptr, ::_pbi::ParseContext* ctx) { + ptr = ::_pbi::TcParser::ParseLoop(this, ptr, ctx, &_table_.header); + return ptr; +} + + +PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 +const ::_pbi::TcParseTable<2, 3, 0, 0, 2> ImgInfoResponce::_table_ = { + { + 0, // no _has_bits_ + 0, // no _extensions_ + 3, 24, // max_field_number, fast_idx_mask + offsetof(decltype(_table_), field_lookup_table), + 4294967288, // skipmap + offsetof(decltype(_table_), field_entries), + 3, // num_field_entries + 0, // num_aux_entries + offsetof(decltype(_table_), field_names), // no aux_entries + &_ImgInfoResponce_default_instance_._instance, + ::_pbi::TcParser::GenericFallback, // fallback + }, {{ + {::_pbi::TcParser::MiniParse, {}}, + // uint32 levelImage = 1; + {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.levelimage_), 63>(), + {8, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_)}}, + // int32 width = 2; + {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.width_), 63>(), + {16, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.width_)}}, + // int32 height = 3; + {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.height_), 63>(), + {24, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_)}}, + }}, {{ + 65535, 65535 + }}, {{ + // uint32 levelImage = 1; + {PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kUInt32)}, + // int32 width = 2; + {PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.width_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, + // int32 height = 3; + {PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_), 0, 0, + (0 | ::_fl::kFcSingular | ::_fl::kInt32)}, + }}, + // no aux_entries + {{ + }}, +}; + +::uint8_t* ImgInfoResponce::_InternalSerialize( + ::uint8_t* target, + ::google::protobuf::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:stream.ImgInfoResponce) + ::uint32_t cached_has_bits = 0; + (void)cached_has_bits; + + // uint32 levelImage = 1; + if (this->_internal_levelimage() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteUInt32ToArray( + 1, this->_internal_levelimage(), target); + } + + // int32 width = 2; + if (this->_internal_width() != 0) { + target = ::google::protobuf::internal::WireFormatLite:: + WriteInt32ToArrayWithField<2>( + stream, this->_internal_width(), target); + } + + // int32 height = 3; + if (this->_internal_height() != 0) { + target = ::google::protobuf::internal::WireFormatLite:: + WriteInt32ToArrayWithField<3>( + stream, this->_internal_height(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = + ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:stream.ImgInfoResponce) + return target; +} + +::size_t ImgInfoResponce::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:stream.ImgInfoResponce) + ::size_t total_size = 0; + + ::uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // uint32 levelImage = 1; + if (this->_internal_levelimage() != 0) { + total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne( + this->_internal_levelimage()); + } + + // int32 width = 2; + if (this->_internal_width() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( + this->_internal_width()); + } + + // int32 height = 3; + if (this->_internal_height() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( + this->_internal_height()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::google::protobuf::Message::ClassData ImgInfoResponce::_class_data_ = { + ::google::protobuf::Message::CopyWithSourceCheck, + ImgInfoResponce::MergeImpl +}; +const ::google::protobuf::Message::ClassData*ImgInfoResponce::GetClassData() const { return &_class_data_; } + + +void ImgInfoResponce::MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:stream.ImgInfoResponce) + ABSL_DCHECK_NE(&from, _this); + ::uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (from._internal_levelimage() != 0) { + _this->_internal_set_levelimage(from._internal_levelimage()); + } + if (from._internal_width() != 0) { + _this->_internal_set_width(from._internal_width()); + } + if (from._internal_height() != 0) { + _this->_internal_set_height(from._internal_height()); + } + _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); +} + +void ImgInfoResponce::CopyFrom(const ImgInfoResponce& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:stream.ImgInfoResponce) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +PROTOBUF_NOINLINE bool ImgInfoResponce::IsInitialized() const { + return true; +} + +void ImgInfoResponce::InternalSwap(ImgInfoResponce* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::google::protobuf::internal::memswap< + PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_) + + sizeof(ImgInfoResponce::_impl_.height_) + - PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_)>( + reinterpret_cast(&_impl_.levelimage_), + reinterpret_cast(&other->_impl_.levelimage_)); +} + +::google::protobuf::Metadata ImgInfoResponce::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once, + file_level_metadata_stream_2eproto[10]); +} // @@protoc_insertion_point(namespace_scope) } // namespace stream namespace google { diff --git a/TestClient/protobuf/stream.pb.h b/TestClient/protobuf/stream.pb.h index baf6347..49d210c 100644 --- a/TestClient/protobuf/stream.pb.h +++ b/TestClient/protobuf/stream.pb.h @@ -59,6 +59,9 @@ namespace stream { class ChainDataBlock; struct ChainDataBlockDefaultTypeInternal; extern ChainDataBlockDefaultTypeInternal _ChainDataBlock_default_instance_; +class ImgInfoResponce; +struct ImgInfoResponceDefaultTypeInternal; +extern ImgInfoResponceDefaultTypeInternal _ImgInfoResponce_default_instance_; class LayerData; struct LayerDataDefaultTypeInternal; extern LayerDataDefaultTypeInternal _LayerData_default_instance_; @@ -2036,6 +2039,188 @@ class RegResponce final : }; union { Impl_ _impl_; }; friend struct ::TableStruct_stream_2eproto; +};// ------------------------------------------------------------------- + +class ImgInfoResponce final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:stream.ImgInfoResponce) */ { + public: + inline ImgInfoResponce() : ImgInfoResponce(nullptr) {} + ~ImgInfoResponce() override; + template + explicit PROTOBUF_CONSTEXPR ImgInfoResponce(::google::protobuf::internal::ConstantInitialized); + + ImgInfoResponce(const ImgInfoResponce& from); + ImgInfoResponce(ImgInfoResponce&& from) noexcept + : ImgInfoResponce() { + *this = ::std::move(from); + } + + inline ImgInfoResponce& operator=(const ImgInfoResponce& from) { + CopyFrom(from); + return *this; + } + inline ImgInfoResponce& operator=(ImgInfoResponce&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const { + return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance); + } + inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() { + return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>(); + } + + static const ::google::protobuf::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::google::protobuf::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::google::protobuf::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const ImgInfoResponce& default_instance() { + return *internal_default_instance(); + } + static inline const ImgInfoResponce* internal_default_instance() { + return reinterpret_cast( + &_ImgInfoResponce_default_instance_); + } + static constexpr int kIndexInFileMessages = + 10; + + friend void swap(ImgInfoResponce& a, ImgInfoResponce& b) { + a.Swap(&b); + } + inline void Swap(ImgInfoResponce* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::google::protobuf::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(ImgInfoResponce* other) { + if (other == this) return; + ABSL_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + ImgInfoResponce* New(::google::protobuf::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::google::protobuf::Message::CopyFrom; + void CopyFrom(const ImgInfoResponce& from); + using ::google::protobuf::Message::MergeFrom; + void MergeFrom( const ImgInfoResponce& from) { + ImgInfoResponce::MergeImpl(*this, from); + } + private: + static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + ::size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final; + ::uint8_t* _InternalSerialize( + ::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::google::protobuf::Arena* arena); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ImgInfoResponce* other); + + private: + friend class ::google::protobuf::internal::AnyMetadata; + static ::absl::string_view FullMessageName() { + return "stream.ImgInfoResponce"; + } + protected: + explicit ImgInfoResponce(::google::protobuf::Arena* arena); + public: + + static const ClassData _class_data_; + const ::google::protobuf::Message::ClassData*GetClassData() const final; + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kLevelImageFieldNumber = 1, + kWidthFieldNumber = 2, + kHeightFieldNumber = 3, + }; + // uint32 levelImage = 1; + void clear_levelimage() ; + ::uint32_t levelimage() const; + void set_levelimage(::uint32_t value); + + private: + ::uint32_t _internal_levelimage() const; + void _internal_set_levelimage(::uint32_t value); + + public: + // int32 width = 2; + void clear_width() ; + ::int32_t width() const; + void set_width(::int32_t value); + + private: + ::int32_t _internal_width() const; + void _internal_set_width(::int32_t value); + + public: + // int32 height = 3; + void clear_height() ; + ::int32_t height() const; + void set_height(::int32_t value); + + private: + ::int32_t _internal_height() const; + void _internal_set_height(::int32_t value); + + public: + // @@protoc_insertion_point(class_scope:stream.ImgInfoResponce) + private: + class _Internal; + + friend class ::google::protobuf::internal::TcParser; + static const ::google::protobuf::internal::TcParseTable<2, 3, 0, 0, 2> _table_; + template friend class ::google::protobuf::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::uint32_t levelimage_; + ::int32_t width_; + ::int32_t height_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + PROTOBUF_TSAN_DECLARE_MEMBER + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_stream_2eproto; }; // =================================================================== @@ -3078,6 +3263,76 @@ inline void RegResponce::_internal_set_data(::int32_t value) { _impl_.data_ = value; } +// ------------------------------------------------------------------- + +// ImgInfoResponce + +// uint32 levelImage = 1; +inline void ImgInfoResponce::clear_levelimage() { + _impl_.levelimage_ = 0u; +} +inline ::uint32_t ImgInfoResponce::levelimage() const { + // @@protoc_insertion_point(field_get:stream.ImgInfoResponce.levelImage) + return _internal_levelimage(); +} +inline void ImgInfoResponce::set_levelimage(::uint32_t value) { + _internal_set_levelimage(value); + // @@protoc_insertion_point(field_set:stream.ImgInfoResponce.levelImage) +} +inline ::uint32_t ImgInfoResponce::_internal_levelimage() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.levelimage_; +} +inline void ImgInfoResponce::_internal_set_levelimage(::uint32_t value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.levelimage_ = value; +} + +// int32 width = 2; +inline void ImgInfoResponce::clear_width() { + _impl_.width_ = 0; +} +inline ::int32_t ImgInfoResponce::width() const { + // @@protoc_insertion_point(field_get:stream.ImgInfoResponce.width) + return _internal_width(); +} +inline void ImgInfoResponce::set_width(::int32_t value) { + _internal_set_width(value); + // @@protoc_insertion_point(field_set:stream.ImgInfoResponce.width) +} +inline ::int32_t ImgInfoResponce::_internal_width() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.width_; +} +inline void ImgInfoResponce::_internal_set_width(::int32_t value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.width_ = value; +} + +// int32 height = 3; +inline void ImgInfoResponce::clear_height() { + _impl_.height_ = 0; +} +inline ::int32_t ImgInfoResponce::height() const { + // @@protoc_insertion_point(field_get:stream.ImgInfoResponce.height) + return _internal_height(); +} +inline void ImgInfoResponce::set_height(::int32_t value) { + _internal_set_height(value); + // @@protoc_insertion_point(field_set:stream.ImgInfoResponce.height) +} +inline ::int32_t ImgInfoResponce::_internal_height() const { + PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race); + return _impl_.height_; +} +inline void ImgInfoResponce::_internal_set_height(::int32_t value) { + PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race); + ; + _impl_.height_ = value; +} + #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ diff --git a/TestClient/protobuf/stream.proto b/TestClient/protobuf/stream.proto index 81941a8..a94d3bf 100644 --- a/TestClient/protobuf/stream.proto +++ b/TestClient/protobuf/stream.proto @@ -103,6 +103,11 @@ message RegResponce{ int32 data = 1; } +message ImgInfoResponce{ + uint32 levelImage = 1; + int32 width = 2; + int32 height = 3; +} service Stream { rpc Simple(RequestInfo) returns (ResponseAny) {} // 简单模式