From 1a8376d7885e9d79ac4b88f1391f172b25209934 Mon Sep 17 00:00:00 2001 From: wangxx1809 Date: Fri, 17 May 2024 10:57:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B8=E6=9C=BA=E7=9B=B8=E5=85=B3=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PrintS/Communication/IPGLaserClient.cpp | 2 +- PrintS/Communication/OxygenClient.cpp | 1 - .../PowderSupplySimpleClient.cpp | 1 - PrintS/Controller/Base.h | 6 +- PrintS/Controller/Controller.cpp | 17 + PrintS/Controller/Controller.h | 2 + PrintS/DataManage/DataHandle.cpp | 14 +- PrintS/DataManage/RWData.h | 15 +- PrintS/Machine/HBD1200.cpp | 476 +++--- PrintS/Machine/HBD1200.h | 2 +- PrintS/Machine/HBD1200OLD.cpp | 1452 ++++++++--------- PrintS/Machine/HBD1200OLD.h | 6 +- PrintS/Machine/HBD1500.cpp | 542 +++--- PrintS/Machine/HBD1500.h | 2 +- PrintS/Machine/HBDE1000.cpp | 466 +++--- PrintS/Machine/HBDE1000.h | 2 +- PrintS/Machine/Machine.h | 2 +- PrintS/PLC/CoreCommunication.cpp | 6 +- PrintS/camera/GalaxyCamera.cpp | 2 +- PrintS/camera/HBDCamera.cpp | 134 +- PrintS/camera/HBDCamera.h | 60 +- PrintS/camera/OPTCamera.cpp | 6 +- PrintS/output/Release/log/2024.hbd | Bin 139264 -> 139264 bytes PrintS/protobuf/stream.pb.cc | 281 +++- PrintS/protobuf/stream.pb.h | 255 +++ PrintS/protobuf/stream.proto | 5 + PrintS/说明.txt | 1 - TestClient/DataManage/DataHandle.cpp | 61 +- TestClient/DataManage/DataHandle.h | 1 + TestClient/DataManage/FunC.h | 16 +- TestClient/DataManage/RWData.h | 13 +- TestClient/DataManage/StreamClient.cpp | 6 +- TestClient/PrintC.vcxproj | 2 +- TestClient/PrintC.vcxproj.filters | 18 +- TestClient/main.cpp | 6 +- TestClient/protobuf/stream.pb.cc | 281 +++- TestClient/protobuf/stream.pb.h | 255 +++ TestClient/protobuf/stream.proto | 5 + 38 files changed, 2833 insertions(+), 1589 deletions(-) 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 aa525ef1562a9ce397a6aeb0d87fcf1306bc3a2a..b240560c24bc43acb4e16c80052aa4dc0f925f98 100644 GIT binary patch delta 16530 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 h@O{Bh|^(RL2k=`7i$;BSAYCXq?U%0 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 J?iM|auJ1Wn@Javx delta 16530 zcmV(pK=8kSzzBfA2!DgvUJ)5ueeMuKv->swSxw3}r%4h=ObP2CpJcA4q2Z=6jHs{F zpCv*+lV{$Tt8&zVIL)C&*dJyz3X8p|l0>imV znR_#{^*t`+K$T=_b7P1`m-fgjVs`VKX$D0Hd80%0(VRIHN`~Jt+CGKR8nb`Nn9N)0 zNf=<%?>qc6z~alr5MvykYRPd?ArH4+N{`;-BsbFyI)4&ncQs48Q>jLqpS@HNn{Zp~ z-v)*L|DJZOeYE85OJ)D3!NOe73BuUMP)21#$r7^ig_e1t3Oi-nzzto-eylbf3C90g zEsp!fREPQETY7fxoga}b2gw4JR|7xsnLJV>V{ZTGf~(<#HFWH20g2weRKY?F)rN1& z*I#~H41Y})N1klom!65*0|CSIAS`M zA_vqCr#2t~d|6;{gS*+KpjMZE1j88a{%*&eg**HrD#Xz+y3oG29KHgYb_7%rQ}fxW8h;ii!&1|H*@VuL2m{QgmxBU4#8M{|Mqt3`6p9h{yFYh^qg?AHoQzoZY%0;Zn0pIxNu1W+3 zo!_L@9eI%@120p;+bb^S1hhGCA%rXRz*9)MuVjw^+)|wGSu9-S{=NO@LjPKW8^cWX zs(;?Xw<=51bz%d)N~P>aWn}nvjj}YHJzOhCXSe}E<9wV4ea2WA#hl!`3p7WJ(Ng{I|S(UQ8&rA<+$UO8_-+_@7OF{~50ujbjcd=I?p!)2i|y2hWIZLOXdc3Xn=QxQUIU``55Cu5UXSSKPw) zdl;dJ;Zkpi!wETmhkDWHH}w6(V<6=*@II-E4$};~aXAk#43RgZ($K`&Uy!k9-G4bF zBudka{kU9=DUh?)m!5QOpQwEFr@dg%CZt7ntLe0JGJPA36o5f(nQu2o zo_i6k^2+j4acq&FjoIITo#}Bq2#V6WIWz9s;&N}Pl45%_<^j9)S5-^(BYz7v_ijYF zpYKArz7+Mu%H0`B^}!5@SG66U0-yY7P|?PWij=C6g8Z|XW**M*=Nt)YiE@yXDfXNw zmhVOfujhp`Kz1~f2y2TecPXoe>r@ed3uas$nA*h?5%3e(KI-e=)@av;6ZVY?!Q(5W zd@|7B(5D!6YWWTHZnec|6n~UawO}$dyGj~@g>Cm~%@%!M4?w??vlm)Yk~6S_+Lj8E zhB&ZoZH>HkwhocEC;33M*?4SAZM=E+<@EjIBwCR+KZK>;nh+efhBh05e?0~Tgcs3= zNo&qdoV6J2XA9pNd6fQ5+ShcY-A$q@}}nTQ~wrgPHP^yMIYDxOuCby|_8Y z?8rY?mvM@aR4GyEFrOsvz?+p!PiAdfL=O4H3pIG|PnPvp3%&p2E+BBw;lX1RTz$l2*F=U@l!T>ly?2tu|EX%!U})(#eJ{ zSSdQ?lp}-Kde!`kQ^U&sB{@LxfONgfgzrU4u2PjsQ6~J5mmJ0_~ePf ziJ9Ij?!OxfhpYFH-vn2(v%Ob2&OfyiU!$i;{)|QmzB4=v{P)lK!>!AZM*5W^9X?%d zH;%_qyDnid;ReHnwMOTUgVb~us-rhnl?XDc?HrRv-AXuha|?7RD=ZF|^XW%9r|2vsxPUa58xj|^#|Ex7x$ zb)9fYnrN0@g-RyX#QZkbRQ)*ByyuOpI0)Unz`pDUj5$;^D*jO_@S(e&*!;KK!^?Dk zj=j|9(fM!lOw~XTr{|U6KbQ__p?FC%x=evLp{_0@V}GyD80LC#m%rzbQgubBQzrH0 zI6`Fqzl$VO$@KVLC?1Y(Qit@?5~oXv?x02mTZ;e_B z(S3&p(<*Y>-H}-^S>B#!LV`D<4XkFFg_GE`-P|hAJstf$dBqVhn*P4K5ECQ>iQe7P zD0}@;X@8>Q>c%qjpB`Owkxytz8jz>eSN}YPMAu}2MVm=QTOzXkN#+v5q&H$NtV^$*sC%A%8<$Zru$l!QqI5#$S-XF6=X+ZjlAG z_UW+51EH>jaQAa6vJ9@wU9q_P78QG@JIM8l8{*Y(nMvM}pXnv;lqvh6ll5bCuTRQt z1loU=&IlB6(TN}YN$-F(;Y*tS+QN!I0Wlodqhr7t|aq6=E$0A_6n?;O`@q0L{H%_ z$)gbbqh|$Wd{k!OT*-=mCN=m6L_b${2%w|HODp3l=DmKJoSkmz0fU%Inybfu_CCj6ELmYD$kro262KK4^qkm^r zFAh|Ja6r4$L!+vKC0~rHgE6vFY18=_eUOf*AK5t`z;5eeDrqBbp)MeTAKCPKI?Xu^ z?{Xf~jFXkeVHbgv$vEQ%_0@Zi9tu`w90{j`?mkpwIZa76bvzjv@iUerw84?0uOvlw zl{Q(g;h~%~eBs0n!bGWT2RL#lyMHqvF9HN>+A1>lCE3AY}N;-yMz9U5;o zyWGM}KB5EN^{)6hfj4RwF<(qkqBOR;S8I!F1vp=Qcd15=DnmoX*w_y*9#OJH(qP(z zZWX`H@85t-d}6y9!O6otXYxpbKEA5|7!1;4;5SleHT6R&);sXc&*yw2zkf=TubjT2 zWD@t?k|OSyr=17!t7NeaFbWM*BXB31?Tb9Tk7+hj7wF+xPeF)m7!`(bqXLXL6uyQX ziWh*X=759b)Ghqqkd5@ld2cno98|}g;EPxl0M{U^ObZw#xFMyB=22ugGKs=+Dp8aA z>rAsPb+Cx{xW9HW6N7O2qkkxh2@^C9rsc>-C6JNNC8-wRJoyR(kk09#Zwz>zHGQt; zswUlu!5sdB3YBMimEPWO%P}un46;IDAd?#dKn=)v!ZUT|J3sv5=TxbL$=${7b}Wqb zA9TZsSY zAzw@A?8mYHM*Kc;z<++;Hjnn5mpTUSyezj&Zsxnr>8VVyT4Pa&XUi$`4mEdDW!9`E z=g6V@wsC3jxq%iF6z#YkCfyQpfHKL~rd2#cW7_(U!d~LBs!rm5BK$dkA;U;2fHNEt z3V##>mZ$OS(m-^ZuvV2xVm9mX7}p%;LS#VH!|^&ft>zUpF@M`QuLdNDQJaJvQ-`dv z8Iks1D(6ki88uWWn2=NXqkfZ~xixxfH!>(cIRYqt^ z=Yu-UI_K5Epj#~soyS$8`o-21#FZe(D{M32@Z%Az>p9F4I2$4+^OjU+eo0Z4ZweHX zP3N02>)wjq{eShK+2e8?{^EfLq(V@|D2OGk(sC?;H4JmGAwrily-~+_sH7Be0vU%4 zqHx79r&d?f7_pZ7tj!+6yu8APM>h24Y^T;s-j40@^4Z9W8lv@7;JDJ3xAj);A7(^` zoj+t}U0n5;@k?aLdAn36z{)(b29f=S)mclHV_C}-@PC!9|E2zk2mme27ialEfPpHb z{ZE=Vm%u2q`pshPlVS$!E zp|u-0yc9ePPTB7X_xBaCa9P&O1@6ON^P*9jWAtwVSRIsDXK3gTn5kkGapmajY^I#F z9rDJ!_kSl7-BuLra_JR3a!iS;oj!EaHn~N{RN10WQ?x?-mX|`~Z!}NhYPFADhzc$8 z;4~QKssh!o)u&`3_jaXMOwnv7;>MEtT?ih7qUDhWCy(BoUp}U2<~^`pXa6HG5&NPe z=7*}Ciqp+xC$Fju@~xDd7u`x}R}MTY4El)}?SG^3XJk8zHWB#KuR)fR4>3b;gkgMH zPY9@E=nx6{(AoP(3gd?<$UE#_HLoHmD-AWmFVICV$C{S36&Tj|cJ!E_aWYY|_ZEeh zsI5zX2t{bE-5aMAz#sgDw@CFD2l?8hAH9-Wri7mo5ZHWGxN>C9*NZ zxga7m4y|?rL)!r3QmS6=-ltKHr{kF6Qe2#x2*pr!Kc1ox5PuVEzQ_oPx{v3;UpM0i z? zoq6&On4LsOm4E9lvP+&m@~JIkPkf+HsKhXA&*cP-{=gU9aBBdb4^ssvVjF1}B zL=&R90(-E1Rs*u8(xIt5i7LIAcyAe*DL_=hBPJIt6wK|j&AvY(@MqMMiZI8FNL=UV zP94>Ak3;t#KJgwCHNJ{ocWyWZZ~*FS2$w;c)nPUMxqqfI5@oD%pf+gBQJlor_o}+- zOaes@VM^Q@8N)Jc=DJpWMy*08z`w9xd;+QIk$9^To4cWjosb!F(M9_PX5)!&@eMR=Y8^ zODmxTB!92f5A%JJF;QwYg~bMHu3JnWzBMv3(VH-+EB*&^X?~mfWDW2k(u*;31H(s9 zq?S*xMhQssMA-AooK1a40kpJUke&;wbuuN4#AhwS+tE?Fs)4}DdTMv}Gn1N(_|+^~ z*Di@PY3z-KfH}CC0r)7-|6*{J3g>yvh$;WYs(%AIdZn6Iqs=vOuc-w@2+qtDS4y>% zdpp!L;0a(kB*i%Ed>SNURbL|)D=s5sj1j=$j?5|drzkU^_PRV`F}mI=-wjDr9-2Vr z!4^voAAKPb<7dYdzF}%irgXW6RcN!v-p)#23a^&9QZlltW+x3e#D;+!=l#?l(z#Iy zBY)-zoX!{P1q!#u0@)t}jr|XnN&R5g*6O80^lRKsq9{Z*FyQX}0_| ztZ!)gcB`LSsAoh1aub;@&uUt}C-2h=$A1P>lU|U4OzC4FoVR1+_YQjH+#_i|4F`+v zENXam9~RP;ar8MZdl!Yodcc#$x0maw$Z?0(Fb6qPfOSk+2}I&z?-F7t06V!4v%DG|3ml8I-vrNq_2q z#r;*{xr2^W-@opC2k}a}pTh(-L{ewg00E`=1w{4lMLGAdT`v%mtlxg)KwoD%W+(hc zhYp(A`a(mU{)8Y$#9w0Y`QXf3Y_6824sGCVy3Z;qcm#iOB(g`kt)jMx-u@(HttwFf^!u!cnns4%UWH|6uEJHc|(tlk!vo{9} z_X{HXt_QDZ;GZJ!IB?;M-K$-C84R_fH?l+D`Q9Pmpb4V;tnhUZO^D9jd2Sa!Z-g)P z!~!w!Dv>w`z<#9sCYU#zh?@INtN0vp6~R^S6>@~B zr?_hlBI#r&RVlFA(qe)Xo_}V_c!uj)ESFAFAdIoBh5unEEPNKt_j}~DZpvY!**&@N zQi%l9UIC~Si)KymP`cNwZU`s?RA;<7zY{tw!bpzfK)EQ`xoky|zUiV=mbRi*{}>^U zAcP@`d|SHFDDg%eXrF@!E67B$glw&qk+;bz7-~&^6HW`lM0z#R=zo6s7o?{azy;67 z#}pB>9|yb{+qV=)q^_8mLDa5X?Mz-HDa&w5;om9TEoiRgELT;EBrH!xhT?L2xb*0V|A`{I7re0 zyY9d*GxM>@nQ7~k`iTgRBXpZa9wg*uG` zab}VLko18Evwy|N@w0xpU#5J3y691yH$DI^R@?^=l;JvV`&$;vq>tAHE!uxtw+#m{ z|6fj_=eO778-IjJxaf&4wk=Om$K#b(2^S+>f4UB4K!S_0Uo$2-gvdqw#iOjs%1U)UX2%qHh&s1oXk=rD{=o&Iqi)j2|77% z5qLN?yVc7ueq>-SUR>Zj5Yt>H;eNx(hWQjj)UY3Ere~%sov}mP$veF!9aD>F7>Kpf zhD6X`XiEDwFg<}N&WoXsM`2DrF7u1PdW~|SYTMIgo(weBSr}kZBllw_7-knZkb(^V z@t3Zo=YQh+=4w$Nnniqyva|B_+WiGzm~AMf97n>TEC3Gdwn4MoWT-(s5L{oGgxB?_c-VA?;1sWwq{Frw%1Ie6*Tv6{`FRcLT ze^K`~)c7-3`c~kZcOucE>y-D(sV;47fgnBK<9{eLN;2g`b~{kV*l3f-9vKWdlxn#< zbN;(cz=n{zr5nL%o$o|lf_L@kkLNeWLw2GLsQwS3ks9bhnNH8prAys1#m%Z|+&vqL z1f_}d10NtWApYVtC`>~!Qp)z)z#`CTiX8CJRh2<4p4*}u29}h$0%CGvdsEOgo|fG7 z=zp=i2C|L5+nm`{!2*7pUn!7)Fn6Axq5dqv!mTO7y3MR%bm1viwn;4Qq4zE= z{M$1Sgmey+Bn1noqTpwj)A}@CL8k3S7Wuj$4X>yNH{{_XU~kNbm4I3P@-W0PY#6Vo zZ0IXhd{uo(-Lhktu~tgFZ%DR{fo7-w1QY2{xtBL5tM*yU zy^SenxOvA8;HKRplh231;q!}N>TRY>9i5Mw0@BYY@3dv3y}7#FF6iMsYZbs>XF8*F zwCNBD^Ud>JE}b<=G*HttUbLuCKKkg|UX1B`wqofmTI%N5^ZzXf{yGCD>BA=h|9|Zh z{JaOih9L;JCm_^L+%hR!;IU(+5+WCpOgM{uDvrLUc8E+hpoK0IHO)SEJLeq>)x^+X zxfPRo^{yHobT*1kM&!IWS~FJB{?d4~oPYCg<<91DFD71O_v6S?5B9;;iEYmy;~66x4qrWs z31+N%3aH!Mfe~2j4U&YbXZqfH87}bnYLzOh*nf-}AGxF#$CnG4b2!i#&nm$8?RnVcBrtl2-esAZUJG)n;nou_67Jsl$4-BoB;LjJ_r7wWQMg#8Sc5lIM(Aa}K4XX=@T71(< zDBtr=^ttvIsbG8<;pa^c%|pBf+Q?37QA~8Ivdkb3!hm(rDJ6=k)BCpM*Tuhz%#jg5 zqadw`^7^YWs+k^-$r37$K1-TkDy5Dx$*~f68&Z>VM3GwO?U}VHLTx z(w*OT*wA^{!w07tN#1KPF;DB1W5K)pstbQ6R+aK?8LpIgSje>>(t3OZhV-R7*56VH zJ@%KENnkLGEHEAqi9&&+maPp=i0c2J_#l|El_fdg-Mrx?tTDm7%!By zKNz(02)f6^U%*55LpX5p^7~;a6c=)r&n*U3DNP>pP=Hpneb|v`PW{&9nHZBQAj(5YRhQX=p#5-j^0t=#7^WfMvVXwWk#~_*^-N+yiI<7+ ziUk*R%-Pg*wx3fSc|IzE^(UxFfH;{Z)wt5n(Y-3wJ|pAWkj&p2CS}afO?zxz2{`}_(prJ3fVDjm0(D4JJ6u*3 z6lH|PYf7PvX@Af8ZF`*RE$~~x=Kgl-sBtA0@)f+tl$TQB(zhoRI+7!MkJ=@!Vh;Y0 z7pd}^JxDO7;t?j5BaMHJmbz^SY{bl61JGeFcmN-DrZ+S5*IHrU{I;zJV`F^O_RVSnhrI$<*Xg0y0c#g!~cDy)#9 zqh^D0y;sfy0bwX56TRnesPy%{61I+r|2yq5!3i1#`^F(+yvFuauRMG*lN1A9=5A^Qy?hr%oGUb@%EHpg7F z2Bkp{*?)7KP#+*``M$R+F`COV0xaN&U99c=MVCL4ucsHjbQ-P`MuvGfCAHh`Yeu)CexMYbh;=p1B^TVUXRQ=q|W1~t)3x6CZaV( z+#R*d4M!Jtx}wqPk>-=?qOWf%>1e8khnWt(dH#I6ldyUinBx4kS>%slmR4HCSTR!a z02Qy4UerH4wJ<_{r;sigJn?nQt19WI(UG@y2qAy}Y~5OM0R~T$Bgl1VAH@cbF>ICz zbbs@_R_<}?N!?~Kz}np@h_hX*Meu-ZeC-mMN{h4`Gjx^s8E>R+`6Eg&gSJD?bPDx| zG;oazsoju0!Ut%nhsWWzWub<41dCHaQZva6n>$gT&8=a_gS%L=Vt99 z!6j5JT|~cRNDJWsCrjl{jOu{V*GOM|oPR~!IjA9h%R~?8G5qVV}lR@rBMR>;rBDBF% z-E^n#W7EX^8%06}64gg`G5kT4q3wsDI~Yi(HAA;x$7_MQ%$OjcG*hpbZ-2rTv6Ac^aj<^{!5^02Mr&eIRzgYx1a2?1ri7PFPiK61-{vI z$rTp^<^7(l|5NBY)*a}&*;{Ksau$%(sQL4BW5x?C7*bBpDP`($e`;sFTiO0nBqvR@ z0uQ&9q3ohe(nxtQf5?6TOn*T}q+@xx)p}i6em}y0W^&3B!IgK;T4BF@=E3)S-=F9w z%@R{^Hg-0`x@FC)0Gij<<7 z5K+PiepL;kGSBsRk`f305E8HxJY4p?Eb`E ztK39u>ULc+c5j*Fm5u@WvGXi~;tkG{A8k`AW+RQs3;e8qi+gvk%{ETz5QK{3Ox?iP zagk%$#V%RGPK>#i!kO0gk+71LDnk*DRlpI_@NF)Ow ze__mtS%21>lpV0C*HrdZlYtNC0dkvAEC#oV%`XTOFzga|etljkVNz<=qdN=b;=rnw zO3GG6WvgA`e~9s{SSKJnh6%RZ;qGgpV@`cr|Gjnqea}>02$=Q!rmJLBRin*|{Cd_d zvr*umxjs9=OK))hJ$I#ob<-?YJc}k3q<0D`t48-pR;DcOafZgL^?Rj zHh{8qEDy%v_?tb8f;Uu@DOiF%G$U`Ly;Bt^(s^3N$9i2`p$sbssBw#=L+Lmp5C?Vn z&QPw|S;72@-Myn;VGmUZHWfly^3Wbp84O0`MYI^}{7O%<9Lg=3*;Ub))p?m&GkJYr zNPj5N^WW!o+)H=pB~*e1xoAz~snI{b|AZ}$iAozSH%el0D0dnZC^~^Ut$*ZkiLfZp zfZ7=x30Qs+*6>UqNS(rnMIy<4aY92+V0%m|)E6IyVxFle&Xj4?v#tJHaHD^$nQO(* zLmiZ-%;~vIDHy_cGV5jY_l!n@-*EmbBY*x~t6JiU{`*+RTPfFH=VNr2VcRKhN*PtXmkmLJ8pcTatdIlR+^9GeMz_fGUAoK%xf0 zbqALVbg18u`z}x${dvWJ)<=Bry??n}mod(M<<2&;?rM(sFk5aisY?ZX{s=#7Q_CI|ktR)I_I3U%f^}k2*5MNL$*CbY%-AmobB7fz@&Z zArGi41riNj+W<;a-(&zzQSjbC9~@~B;tcoJJ)b`_L4tE=d)jQvrH+1=$bX*fOw^C$ z?3pC?LUH50#4c=idKY@~mQnkkDP$tKznC9eto!PZ%bxLC+ms_Uc8Ro&Zh@Pz;?>2L zd|8{Kv~>ilm}XV)Ky><4BLA3(Mq9l4%6!so6(l=te`aOk^rVzY-eps`?>iqwzLF~y z8?I@fVF0_{vPSC7M}B|cJb!cv1HVqNHrCEiSxoDCP%$9oE5E=Rx#wu~@FJJASSXlq zG8{{7&NY{f5U?uF8HfA`{is-ghY<-%Qg3jaBgjE_TUYf6HJ(@xULq=c_hPL4P!Gn?w}|({%4} zFGPM9_y!o|r3+D3XHva&9<};oL1q9E_9ZbQQ#rpbVMmf&R&Sn7c}+s1Wcn39SH8cs z==-wfUSP>ap7sAciasU$01 z{dRKMq)LT4G))J2SASczaF7$kTVL+N=sAWECl~LJqj!O6q9-)25@@!b?MonlbEua7 z3prK|LWXp13k;@$FU;0Q!A@F5&R0k|x+LW+XPzhV_XUp*4!SZJ&b=YWbHk(@wrO35 zhq)GFg7GD=z(0$;R&jShqOOGt$@+5y6bwJBwr&?SLmK&T3V-Id^}12hl7jxN&X9X6 z5JEnpZ^XvJJb{g99hHZ^zY#yC%54?(57D!y!@-{Op?cj7Kdv)P7mnSMs3TQTF)5HO zRfVyAbn~2J4SRMX1uzQQs;cU|_hvM4s!zp2UoMlmW5bKxfRlZYSDN7;R1V)ULZz^Hg!BAu ziUBgo&q(WQ(p?B?jJIQck&gfPT#M0=5BcouViJeqvP2u8VgBshdo|7CYK7R{ZCf#( z);bEq&eR8SLZz-CD&xq!rf-BAS;i*NrsL!EXHj@Cg9!mZ z5`25Z?nC1w8-%v>qB=z3CZC7XqLg6B;iBr=@k}{iBdhxnkafQ z6uiqLH>*GotaOq4avt2Y3mT@|ETW|ufA1VoIl>FCGu( zUAa>B9os?;>!Rx11&$=_!!p9yk*&Y-Ab;OAemY(H?*kZkB(pKoB1es|O9LpOqd2*> z=QvpuOW%8c3e~Xp>A*LDbyy`N&v9+PoQ~ zHDSO2L`D=fa&kIX%;N4aluEn0=O&A8@%8*?YdRaS(U0gFJzj&=;TV$Fjtr8)Gr;e*7w&lH^)w_0uzSBNikD7(#;@AL!G`8ze zZ#Xjt_0ZGokSLfbSH`Tln?ouTTz^E5FeI^XKvGkxTrDf%F60xuMt3Qa&&bfAs_Tor zrLqu*;nuEax9Hdd(!(Ze-u_RIJ1O@BmNtQgI`=DI%=cGM`yv|^FjWRzvG74LC#&;# zUeT-1Nm`(Orvcr=S=&e6q?%!@4jsT!WNvH99Cjtx%1Q~jm?Wgb>=zxpkbh7LNe2@j+2*-TlcRaH zi`P?ky&5vu>-dNGN}qx`Urz4rY5q@%h!3nn9r%TIF29B!k`yj z*9;28qE<^!r@|4!hh+2&lAL4i)f$sDQ%x_u_q>`mnL zv!lrFjXrGzWvfw-HJeOxtVS84{TKi%QG!(9tcWUF@xr95~A;Ui25k zznYPGf7a`MIIbV@hs?9I)-PcO*Cm9eJL>LEw(65$k20pQ*#W#rv9fUD8|n>2$c0?$ zbI26}CmIH&3Mgx2aIL_Djxdwpl8p>!=985e0s^lI&}PylfC^& zH4=V6w=i`0v#|Rl6%(8G;4tOLtpgB>CrRv}f0O^hyKJ6#^36tNN`T^}b+Nkp+f>4gS^QR^r-sJvw$4(lM(+6vE< zuEnrrO@#enTwT+xw^w1Y`|44N!j(Fb4NxLk3oUm!<9U+z4H3e67R8+NtBFe|ts{>*c!+gFw zu3|XW0dR_uG+w* zfLZgKP)dOd{V;UUo^X}eVH88Xe^p-04E_qv`sK1Cag_D`R4ni93C=jTl1JhT!0Cj& zf5isx0=Zyg-tGx1${a$>b3<8`Vnug|*Xzqrh=ZL>i^2p2D{M|<8jJB+=a z=d%##Fjr)Q$7{^tBdiZq-VcKjX1fdViYF@w@f8K4>T=#0nfEivkkq={e^HQYk3*Sg zvo7z{X>JlAesYrz7f4A+PoG!}LF4ey$4U`& ze?FU6Oxronw`l2{xe=_kYxa;(A%M+{z)8Kfp92dfF@Qpo{vUfF8BA$VI021n& z2{@3+t+o7{PKpmPRsKd-o`7-#-WcD;U+OdV|(QEHHi7gW1V_>KMgH^=o8n{mh9w*-cjB z!_eB*kEDLdyra5pe}`*kwuKdm+jad^Z*L1b-`KxLJ+zHV(Jxp?iWqZIKmQ4w z_T8{|xucPIhXbuXQ+BY`Ca{$zlImS>*!%oIsdWm3s2+uofB1A5N`C?@j-a2)BR>3D zFK3b9dOu0YhqUO|-_x=7tJ23=jhCqpVE+`|)LuA4S!&EOkJ0(*bxE`%Du+Cz#9rHW zmpA}G``1f0Mar<4SR_Ix=N!WI*QOY#UQRX^IAsj)GGSfi%DA6!86K(d@fi#yy)y0p9*RPb+2go=OI8}(a(^F{n9 zlSOt_{ND(E<|p4?fmAhF7>NDIk?myFTNXdn34;TXiEV&xyJt?;~ZRqf3nw@$+1M5TiuyDJX&z1)weS5 z`_FWFrzi#|`*71Zyc(Jhc{=6Ctj`~8O4tainr|D0G0@ju9c@NsG$i2@!f%GGEmbew z!B)K4E#z`!5rELMBUM3?tqukjPAs!w(qW~`MP$0T!Bw!hbPMZG;>zl2D9Y$fBU?Z{ znV`-qe=W3WjE9TE$S;^WS&UXd9I-RC5)WuV6O)$Jb=rDGS`{YO*GWE`Omz|asyDk82igU0{S-QIvxxjs>$ecPGegY0{1$_ z(h-|q{AG$^s%Yb+nUBt;(854;4YVI~>tE>jC-ewA$46btin|D_y;7}7cNk1*yd%2= ze|kd|nPZoe7~$})yQ~gdvqX2i&$M?fO{C5ly4{wCLnhram5ne3!?#q4{8R7 zVK1!q-xeujg1_8+hz*IcYF%q)-j-KAe-v%4C#&?Ol`)DO;La9Qd%u9*^H~DBamH2k z23K*)GXBTDgfZHrqeBL~3# z9C@Dhu*=DnoEx&U6nJ0_03k4c4{ zk&}DTkLmpPWe7d(8+HbW7DQA%G2otwe^V(6RtNP(5ZT_bnz6~uvKtQ!c!`+EC_eM) zr-xoZb-R|X`)bVqKV~F*Uv~-CfS6FWNNV}eJcqR2v1vp`7&hWQ=&Ih~%%C)Gd_J7s zQ*KOG=5ykDh5VAM9_;3w8eo znAGmt8I*zqJKtj)#!uuee{efaoHH3069WlT$e~fT_L?NMOmIx11ZWJQQsT2pmTFgG zP>4hTW7X^A0UD=8!a*K{i8^dAgEmehG_E%H>)A44Jzz#k!)L?mB%<6gSUBuOp+2_u zD0gr%-G}A%QPvb=@2V@0L-zm#E)@6jdvtGThzmloIwi#_Opc%jf9w=JwE@GE{*A#K zgcv?%nmUMCFq?_PncjT$_yTfZVX~&Cm2xPkts-TGbFH+fofeTRl}YGRgmF8HwV-X6dvkee}i{aoz>Ig@=fvGm7jEWE(SW5Iu6*H)N~zc|NoY2>r;$rWxWsTpE)k7!eLSNG%#POVS(^;>|YYsqNH}0+HLrUKt!3 zgpR*Q!_0L-Q3^RFqh(WLV_bNV7f`Tse0Zi+o2p($dGCE~f9W_7?Vuz$W{vMJ0)3Z@ zgd@X_>xPWGL6NQzLmIHhWG9MV%bj~G5Y4*atxM;7m#rRUqxQ=I{>r$4kfmr~bQH&c z9nRx}E%oUZNfu~uu86Em)QQum55J--=9BY#^iBUUev(i*3l<|~kAp_Ph*o`ruzZ93 z>dblF8TwKnfBve+i)V0D4Eun7bp(&nxIDAI23|e(J?NWHmLO7k2gzd%$wrAZ4(L-0IK;Yt5^p$$JFMYGyLU4_FjH~YI*<2l`r%~W zvd1VMB5S!)^H3HOGWOC5R|#hlFD%lad!| zA@Yd{Mo_`2>5_0+GeaXX=GDE~(H@^Qw@P$M!3Q_xg+po*1KCWNf1s#!-l46)!<^iG zU^$Y%e-wqAveA-G=v-YZ?A=Toa2B)9@_X93a%CqA&}K`7b zyRefOX|?Ss_vv?$6heP?&~Z3JMbcO2V-{Uvf8)FNMHV&{-!$0?AJq(Im1HemjC_PN zF=F!e$;$qEwvYz{F-OTJ#JHG9Bz8WF(3@!_nNch`8+jPBSiG47@iSaIq47Br*kv@) z%gBppBwNU-weBs;!ud<}-oSqd9akBfUUBj5p6hgJ9+dSkSQ=pvW}Nz0?49_!!BK+|NC< ziLwIpU_oH=;u`u*# zS%I0#=!Dp)>pyd6Zs}su%D>*l8QSqrX6k4KCzp^k0DS){Jr7<0IBRFk9LULPpf&GVBiJ88 z(J9#p8-An{c!Mz&a(?9(oeV3Bd0oT+H?rY8T_^EAVr)uQ#qw4H7|MzfH`GDwAJ$2O zlstcTtI?uU^tYXbOC%|rSn|%4@tWRw{UBHDv6^y?urF9=sz?$*SW)~uI-j^lvTsaC JfUB(4?sKeTDnbAN 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) {} // 简单模式