#include "IOCfg.h" #include "../../utils/StringHelper.h" #include "SystemBase.h" #include "../../LanguageManager.h" #include "../../SystemInfo.h" #include "../../Toast.h" #include "../../global.h" #include #include #include "../../Machine/HBD1000.h" #include "../../Machine/HBD1500.h" #include "../../Machine/HBD1200OLD.h" #include "../../Machine/HBD1200.h" #include "../../Machine/HBDE1000.h" #include "../../Logger.h" #include "../../DataManage/DataHandle.h" #include "../ConfigManager.h" IOCfg::IOCfg() { } IOCfg::~IOCfg() { } IOCfg::IOCfg(int machineType, int statusaddr, int ctrladdr, bool isoutput, string code, string content, int authLess) :m_MachineType(machineType) ,m_StatusAddr(statusaddr) ,m_CtrlAddr(ctrladdr) ,m_IsOutput(isoutput) ,m_Code(code) ,m_Content(content) //,m_cc(nullptr) , m_AuthLess(authLess) { SetOutput(isoutput); } void IOCfg::SetActive(bool isa) { if (g_isDebug) { m_IsActive = isa; return; } if (!m_IsOutput)return; if (IsActive() == isa)return; DataHandle::Instance()->SetPushMsg(IOSIGNAL, m_Code,isa?"1":"0",iBOOL); //if (m_cc == nullptr) return; //bool* pv =(bool*) m_CtrlCommand->getDataItems()[0].pdata; //*pv = isa; //m_cc->AddCmd(m_CtrlCommand); } void IOCfg::SetOutput(bool output) { if (!output) { m_IsOutput = false; } else { m_IsOutput = true; //m_CtrlCommand= new S7Command(S7_COMMAND_WRITE, 1); //TS7DataItem* pItem = m_CtrlCommand->getDataItems(); //pItem[0].Area = S7AreaDB; //pItem[0].DBNumber = 1; //pItem[0].Start = m_CtrlAddr; //pItem[0].WordLen = S7WLBit; //pItem[0].Amount = 1; //bool* tempv = new bool[1]; //pItem[0].pdata = tempv; //m_CtrlCommand->m_Ref = this; //m_CtrlCommand->isNeedDel = false; } } bool IOCfg::IsActive() { bool rel = false; EnterCriticalSection(m_CS); rel = m_IsActive; LeaveCriticalSection(m_CS); return rel; } string IOCfg::GetUpdateSql() { char buffer[512]; sprintf_s(buffer, sizeof(buffer), "UPDATE %s set %s=%d,%s=%d,%s='%s',%s='%s',%s=%d WHERE %s=%d", TABLE_NAME.c_str(), FIELD_STATUS_ADDR.c_str(), m_StatusAddr, FIELD_CTRL_ADDR.c_str(), m_CtrlAddr, FIELD_CODE.c_str(),m_Code.c_str(), FIELD_CONTENT.c_str(), m_Content.c_str(), FIELD_AUTH_LESS.c_str(),m_AuthLess, FIELD_ID.c_str(), m_Id ); return string(buffer); } const string IOCfg::TABLE_NAME = "IO_Config"; const string IOCfg::FIELD_ID = "id"; const string IOCfg::FIELD_MACHINE_TYPE = "machine_type"; const string IOCfg::FIELD_STATUS_ADDR = "status_addr"; const string IOCfg::FIELD_CTRL_ADDR = "ctrl_addr"; const string IOCfg::FIELD_IS_OUTPUT = "is_output"; const string IOCfg::FIELD_CODE = "code"; const string IOCfg::FIELD_CONTENT = "content"; const string IOCfg::FIELD_AUTH_LESS = "auth_less"; IOCfgWrapper::IOCfgWrapper() { m_RunCfg = ConfigManager::Instance()->GetRunCfg(); m_AutoCtrlHeating = false; m_AutoCtrlHeatingLastTime = time(0); m_IsSystemCtrlPressure = true; MachineCfg* mcfg = ConfigManager::Instance()->GetMachineCfg(); m_IOCtrlIndex = mcfg->m_MachineType * 1000 + mcfg->m_IOVersion; m_IoVMap[MachineTypeCfg::HBD_1000 * 1000 + HBD1000::IO_V0] = &m_1000v0; m_IoVMap[MachineTypeCfg::HBD_1000 * 1000 + HBD1000::IO_V1] = &m_1000v1; m_IoVMap[MachineTypeCfg::HBD_1000 * 1000 + HBD1000::IO_V2] = &m_1000v2; m_IoVMap[MachineTypeCfg::HBD_1000 * 1000 + HBD1000::IO_V3] = &m_1000v3; m_IoVMap[MachineTypeCfg::HBD_1000 * 1000 + HBD1000::IO_V4] = &m_1000v4; m_IoVMap[MachineTypeCfg::HBD_1500 * 1000 + HBD1500::IO_V0] = &m_1500v0; m_IoVMap[MachineTypeCfg::HBD_1200_OLD * 1000 + HBD1200OLD::IO_V0] = &m_1500v1; m_IoVMap[MachineTypeCfg::HBD_1200 * 1000 + HBD1200::IO_V0] = &m_1200v0; InitializeCriticalSection(&m_CS); } IOCfgWrapper::~IOCfgWrapper() { for (map::iterator it = m_IOCfgMap.begin(); it != m_IOCfgMap.end(); it++) { IOCfg* pcfg = it->second; delete pcfg; pcfg = NULL; } m_IOCfgMap.clear(); DeleteCriticalSection(&m_CS); } void IOCfgWrapper::Init() { m_ServoMotor = m_IOCfgMap["ServoMotor"]; //伺服电源 m_Laser = m_IOCfgMap["Laser"]; //激光器 m_Laser1Enable = m_IOCfgMap["Laser1Enable"]; //激光1使能 m_Laser1Start = m_IOCfgMap["Laser1Start"]; //激光1启动 m_Laser1Red = m_IOCfgMap["Laser1Red"]; //激光1红光 m_Laser2Enable = m_IOCfgMap["Laser2Enable"]; //激光2使能 m_Laser2Start = m_IOCfgMap["Laser2Start"]; //激光2启动 m_Laser2Red = m_IOCfgMap["Laser2Red"]; //激光2红光 m_Laser3Enable = m_IOCfgMap["Laser3Enable"]; //激光3使能 m_Laser3Start = m_IOCfgMap["Laser3Start"]; //激光3启动 m_Laser3Red = m_IOCfgMap["Laser3Red"]; //激光3红光 m_Laser4Enable = m_IOCfgMap["Laser4Enable"]; //激光4使能 m_Laser4Start = m_IOCfgMap["Laser4Start"]; //激光4启动 m_Laser4Red = m_IOCfgMap["Laser4Red"]; //激光4红光 m_PrintDoorLock = m_IOCfgMap["PrintDoorLock"]; //打印舱门电锁 m_LightOn = m_IOCfgMap["LightOn"]; //照明 m_YellowLamp = m_IOCfgMap["YellowLamp"]; //黄灯 m_GreenLamp = m_IOCfgMap["GreenLamp"]; //绿灯 m_RedLamp = m_IOCfgMap["RedLamp"]; //红灯 m_Buzzer = m_IOCfgMap["Buzzer"]; //蜂鸣器 m_PrintAssistGas = m_IOCfgMap["PrintAssistGas"]; //辅助气 m_PrintAirEvacuation = m_IOCfgMap["PrintAirEvacuation"]; //排气阀 m_PressureRelease = m_IOCfgMap["PressureRelease"]; //压力释放 m_ScannerCool = m_IOCfgMap["ScannerCool"]; //振镜冷却 m_Heating = m_IOCfgMap["Heating"]; //加热 m_StorageCarDropPowderValve = m_IOCfgMap["StorageCarDropPowderValve"]; //存粉小车下粉阀 m_PrintStorageCar1DropPowderValve = m_IOCfgMap["PrintStorageCar1DropPowderValve"]; //存粉小车下粉阀1 m_StorageCarAirHammer = m_IOCfgMap["StorageCarAirHammer"]; //存粉小车气锤 m_PrintSlot1PipeValve = m_IOCfgMap["PrintSlot1PipeValve"]; //存粉小车气锤1 m_PrintPress = m_IOCfgMap["PrintPress"]; //打印位压紧 m_PrintUnpress = m_IOCfgMap["PrintUnpress"]; //打印位放松 m_PrintJackUp = m_IOCfgMap["PrintJackUp"]; //打印顶升气缸上升 m_PrintJackDown = m_IOCfgMap["PrintJackDown"]; //打印顶升气缸下降 m_SupportCylinderEnable = m_IOCfgMap["SupportCylinderEnable"]; //打印支撑撑起 m_ChillerPower = m_IOCfgMap["ChillerPower"]; //冷水机电源 m_CarbinBackLock = m_IOCfgMap["CarbinBackLock"]; //打印舱后锁 m_SupportCylinderDisable = m_IOCfgMap["SupportCylinderDisable"]; //打印支撑避让 m_PrintHorizontalExtend = m_IOCfgMap["PrintHorizontalExtend"]; //打印位左右定位气缸伸出 m_PrintHorizontalRetract = m_IOCfgMap["PrintHorizontalRetract"]; //打印位左右定位气缸缩回 m_PrintCylindFixed = m_IOCfgMap["PrintCylindFixed"]; //打印位缸体固定 1500 m_PrintCylindRelease = m_IOCfgMap["PrintCylindRelease"]; //打印位缸体松开 1500 m_PrintVerticalExtend = m_IOCfgMap["PrintVerticalExtend"]; //打印位前后定位气缸伸出 m_PrintVerticalRetract = m_IOCfgMap["PrintVerticalRetract"]; //打印位前后定位气缸缩回 m_MainDoorElecOpen = m_IOCfgMap["MainDoorElecOpen"]; //主机箱门电打开 1500 m_HandrailDoorOpen = m_IOCfgMap["HandrailDoorOpen"]; //栏杆门打开 1500 m_HandrailDoorLock = m_IOCfgMap["HandrailDoorLock"]; //栏杆门电磁锁 1500 m_Print3RRelease = m_IOCfgMap["Print3RRelease"]; //打印3R夹具松开 m_PrintMainAxisBrake = m_IOCfgMap["PrintMainAxisBrake"]; //打印主轴刹车 m_PrintSlaveAxisBrake = m_IOCfgMap["PrintSlaveAxisBrake"]; //打印从轴刹车 m_Print3RDeoxygenSalve = m_IOCfgMap["Print3RDeoxygenSalve"]; //打印3R除氧进气阀 m_Print3RStablePressureSalve = m_IOCfgMap["Print3RStablePressureSalve"]; //打印3R稳压气阀 m_Print3RAirEvacuation = m_IOCfgMap["Print3RAirEvacuation"]; //打印3R除氧排气阀 m_PowderCleanerUpOpenGap = m_IOCfgMap["PowderCleanerUpOpenGap"]; //清粉箱上盖打开阀 m_PowderCleanerUpCloseGap = m_IOCfgMap["PowderCleanerUpCloseGap"]; //清粉箱上盖关闭阀 m_PowderCleannerSupportCylinderEnable = m_IOCfgMap["PowderCleannerSupportCylinderEnable"]; //清粉箱支撑气缸撑起 m_PowderCleannerSupportCylinderDisEnable = m_IOCfgMap["PowderCleannerSupportCylinderDisEnable"]; //清粉箱支撑气缸避让 m_PowderCleannerPressRelease = m_IOCfgMap["PowderCleannerPressRelease"]; //清粉箱压紧气缸松开 m_CleanCylinderPressing = m_IOCfgMap["CleanCylinderPressing"]; //清粉箱缸体压紧 1500 m_CleanCylinderRelease = m_IOCfgMap["CleanCylinderRelease"]; //清粉箱缸体松开 1500 m_UpLayerAccessDoorUnlock = m_IOCfgMap["UpLayerAccessDoorUnlock"]; //上层维护门解锁 m_DownLayerAccessDoorUnlock = m_IOCfgMap["DownLayerAccessDoorUnlock"]; //下层维护门解锁 m_CylinderLinerSealChargeValve = m_IOCfgMap["CylinderLinerSealChargeValve"];//缸体密封圈充气阀 m_CylinderLinerSealReleaseValve = m_IOCfgMap["CylinderLinerSealReleaseValve"]; //缸体密封圈泄压阀 m_CleanBoxFoldUp = m_IOCfgMap["CleanBoxFoldUp"]; //清粉箱折叠升高 m_CleanBoxFoldDown = m_IOCfgMap["CleanBoxFoldDown"]; //清粉箱折叠降低 m_LaserErrorReset = m_IOCfgMap["LaserErrorReset"]; //激光错误复位 m_Laser5Enable = m_IOCfgMap["Laser5Enable"]; //激光5使能 m_Laser5Start = m_IOCfgMap["Laser5Start"]; //激光5启动 m_Laser5Red = m_IOCfgMap["Laser5Red"]; //激光5红光 m_Laser6Enable = m_IOCfgMap["Laser6Enable"]; //激光6使能 m_Laser6Start = m_IOCfgMap["Laser6Start"]; //激光6启动 m_Laser6Red = m_IOCfgMap["Laser6Red "]; //激光6红光 m_Laser7Enable = m_IOCfgMap["Laser7Enable"]; //激光7使能 m_Laser7Start = m_IOCfgMap["Laser7Start"]; //激光7启动 m_Laser7Red = m_IOCfgMap["Laser7Red"]; //激光7红光 m_Laser8Enable = m_IOCfgMap["Laser8Enable"]; //激光8使能 m_Laser8Start = m_IOCfgMap["Laser8Start"]; //激光8启动 m_Laser8Red = m_IOCfgMap["Laser8Red"]; //激光8红光 m_StairsLock = m_IOCfgMap["StairsLock"]; //楼梯电磁锁 m_PowderCleannerLiftLock = m_IOCfgMap["PowderCleannerLiftLock"]; //清粉升降电磁锁 m_PowderCleannerBoxLock = m_IOCfgMap["PowderCleannerBoxLock"]; //清粉箱缸体锁紧气缸锁紧 m_PowderCleannerBoxRelease = m_IOCfgMap["PowderCleannerBoxRelease"]; //清粉箱缸体锁紧气缸放松 m_CleanBoxDeoxygenValve = m_IOCfgMap["CleanBoxDeoxygenValve"]; //清粉箱除氧进气阀 1500 m_CleanBoxEvacuationValve = m_IOCfgMap["CleanBoxEvacuationValve"]; //清粉箱除氧排气阀 1500 m_CleanPosStopOn = m_IOCfgMap["CleanPosStopOn"]; //清粉位阻挡升起 1500 m_CleanPosStopOff = m_IOCfgMap["CleanPosStopOff"]; //清粉位阻挡避让 1500 m_CleanBoxUpHorOpen = m_IOCfgMap["CleanBoxUpHorOpen"]; //清粉箱上盖横移打开 m_CleanBoxUpHorClose = m_IOCfgMap["CleanBoxUpHorClose"]; //清粉箱上盖横移关闭 m_PowderCleannerBoxPress = m_IOCfgMap["PowderCleannerBoxPress"]; //清粉位压紧气缸压紧 m_PowderCleannerBoxUnpress = m_IOCfgMap["PowderCleannerBoxUnpress"]; //清粉位压紧气缸放松 m_PrintAirRenewalInOutValve = m_IOCfgMap["PrintAirRenewalInOutValve"]; //打印室换气进出阀 1500 m_AssistPushExtend = m_IOCfgMap["AssistPushExtend"]; //辅助推动气缸伸出 m_Clean3RRelease = m_IOCfgMap["Clean3RRelease"]; //清粉3R夹具松开 m_CleanMainAxisBrake = m_IOCfgMap["CleanMainAxisBrake"]; //清粉主轴刹车 m_CleanSlaveAxisBrake = m_IOCfgMap["CleanSlaveAxisBrake"]; //清粉从轴刹车 m_PrintAirRenewalPresRelValve = m_IOCfgMap["PrintAirRenewalPresRelValve"]; //打印室换气泄压阀 1500 m_CleanCabinArriveLamp = m_IOCfgMap["CleanCabinArriveLamp"]; //清粉舱体到位指示灯 m_SeparateCabinArriveLamp = m_IOCfgMap["SeparateCabinArriveLamp"]; m_LoadPinInserOn = m_IOCfgMap["LoadPinInserOn"]; //移载插销气缸插紧 m_LoadElectromagnet = m_IOCfgMap["LoadElectromagnet"]; //移载电磁铁 m_PrintVacuumEnterSlave = m_IOCfgMap["PrintVacuumEnterSlave"]; //打印室吸尘进气阀 m_StorageCarDeoxygenSlave = m_IOCfgMap["StorageCarDeoxygenSlave"]; //存粉小车除氧进气阀 m_StorageCarEvacuationSlave = m_IOCfgMap["StorageCarEvacuationSlave"]; //存粉小车除氧排气阀 m_PrintStorageCar1DeoxygenValve = m_IOCfgMap["PrintStorageCar1DeoxygenValve"]; //打印存粉小车1除氧进气阀 m_PrintStorageCar1EvacuationValve = m_IOCfgMap["PrintStorageCar1EvacuationValve"]; //打印存粉小车1除氧排气阀 m_PurifierCoolerPower = m_IOCfgMap["PurifierCoolerPower"]; //净化器冷水机电源 //1500 m_PrintStorageCar2DropPowderValve = m_IOCfgMap["PrintStorageCar2DropPowderValve"]; //打印存粉小车2下粉阀 m_PrintStorageCar2DeoxygenValve = m_IOCfgMap["PrintStorageCar2DeoxygenValve"]; //打印存粉小车2除氧进气阀 m_PrintStorageCar2EvacuationValve = m_IOCfgMap["PrintStorageCar2EvacuationValve"]; //打印存粉小车2除氧排气阀 m_PrintSlot2PipeValve = m_IOCfgMap["PrintSlot2PipeValve"]; //打印槽2管道阀 m_CleanStorageCar1DropPowderValve = m_IOCfgMap["CleanStorageCar1DropPowderValve"]; //清粉存粉小车1下粉阀 m_CleanStorageCar1DeoxygenValve = m_IOCfgMap["CleanStorageCar1DeoxygenValve"]; //清粉存粉小车1除氧进气阀 m_CleanStorageCar1EvacuationValve = m_IOCfgMap["CleanStorageCar1EvacuationValve"]; //清粉存粉小车1除氧排气阀 m_CleanSlot1PipeValve = m_IOCfgMap["CleanSlot1PipeValve"]; //清粉槽1管道阀 m_CleanStorageCar2DropPowderValve = m_IOCfgMap["CleanStorageCar2DropPowderValve"]; //清粉存粉小车2下粉阀 m_CleanStorageCar2DeoxygenValve = m_IOCfgMap["CleanStorageCar2DeoxygenValve"]; //清粉存粉小车2除氧进气阀 m_CleanStorageCar2EvacuationValve = m_IOCfgMap["CleanStorageCar2EvacuationValve"]; //清粉存粉小车2除氧排气阀 m_CleanSlot2PipeValve = m_IOCfgMap["CleanSlot2PipeValve"]; //清粉槽2管道阀 m_CylinderHandPlateOpenValve = m_IOCfgMap["CylinderHandPlateOpenValve"]; //缸体吊装盖板打开阀 m_CylinderHandPlateCloseValve = m_IOCfgMap["CylinderHandPlateCloseValve"]; //缸体吊装盖板关闭阀 m_CylinderHandLockOpen = m_IOCfgMap["CylinderHandLockOpen"]; //缸体吊装门锁打开 m_EleCylinderMainBrake = m_IOCfgMap["EleCylinderMainBrake"]; //电缸主轴刹车 m_EleCylinderSlaveBrake = m_IOCfgMap["EleCylinderSlaveBrake"]; //电缸从轴刹车 m_LoadAxisBrake = m_IOCfgMap["LoadAxisBrake"]; //移载轴刹车 m_CleanLeftVacuumValve = m_IOCfgMap["CleanLeftVacuumValve"]; //清粉左吸尘阀 m_CleanRightVacuumValve = m_IOCfgMap["CleanRightVacuumValve"]; //清粉右吸尘阀 m_CleanVacuumReairValve = m_IOCfgMap["CleanVacuumReairValve"]; //清粉吸尘回气阀 m_CleanBlowSrcSelect = m_IOCfgMap["CleanBlowSrcSelect"]; //清粉吹气源选择 m_CleanLightOn = m_IOCfgMap["CleanLightOn"]; //清粉照明 m_CleanBoxTopDoorRise = m_IOCfgMap["CleanBoxTopDoorRise"]; //清粉箱顶门升高 m_CleanBoxTopDoorFall = m_IOCfgMap["CleanBoxTopDoorFall"]; //清粉箱顶门降低 m_LaserPowerActive = m_IOCfgMap["LaserPowerActive"]; //激光电源激活 m_SystemStop = m_IOCfgMap["SystemStop"]; //系统急停 m_HighPressureCheck = m_IOCfgMap["HighPressureCheck"]; //高压报警 m_ProtectGasCheck = m_IOCfgMap["ProtectGasCheck"]; //低压报警 m_PowerDown = m_IOCfgMap["PowerDown"]; //外部断电 m_CarbinDoorClose = m_IOCfgMap["CarbinDoorClose"]; // m_PowerOK = m_IOCfgMap["PowerOK"]; //电源正常 m_OutDoorOxygenAlarm = m_IOCfgMap["OutDoorOxygenAlarm"]; //室外测氧报警 m_LaserChillerAlarm = m_IOCfgMap["LaserChillerAlarm"]; //激光器冷水机报警 m_BusAirSwitchClose = m_IOCfgMap["BusAirSwitchClose"]; //总空开触点 m_ExtMachineAirSwitchClose = m_IOCfgMap["ExtMachineAirSwitchClose"]; //外部设备空开触点 m_HeattingAirSwitchClose = m_IOCfgMap["HeattingAirSwitchClose"]; //加热空开触点 m_LaserAirSwitchClose = m_IOCfgMap["LaserAirSwitchClose"]; //激光空开触点 m_ServoAirSwitchClose = m_IOCfgMap["ServoAirSwitchClose"]; //伺服空开触点 m_Laser1Alarm = m_IOCfgMap["Laser1Alarm"]; //激光器1报警 m_Laser2Alarm = m_IOCfgMap["Laser2Alarm"]; //激光器2报警 m_Laser3Alarm = m_IOCfgMap["Laser3Alarm"]; //激光器3报警 m_Laser4Alarm = m_IOCfgMap["Laser4Alarm"]; //激光器4报警 m_StorageCarUpLimit = m_IOCfgMap["StorageCarUpLimit"]; //存粉小车上限 m_StorageCarDownLimit = m_IOCfgMap["StorageCarDownLimit"]; //存粉小车下限 m_StorageCarConnect = m_IOCfgMap["StorageCarConnect"]; //存粉小车连接 m_StorageCarJarConnect = m_IOCfgMap["StorageCarJarConnect"]; //存粉小车粉罐连接 m_StorageCarJarUpLimit = m_IOCfgMap["StorageCarJarUpLimit"]; //存粉小车粉罐上限 m_PrintStorageCar1UpLimit = m_IOCfgMap["PrintStorageCar1UpLimit"]; //打印存粉小车1上限 1500 m_PrintStorageCar1DownLimit = m_IOCfgMap["PrintStorageCar1DownLimit"]; //打印存粉小车1下限 1500 m_PrintStorageCar1Connect = m_IOCfgMap["PrintStorageCar1Connect"]; //打印存粉小车1连接 1500 m_PrintStorageCar1Block = m_IOCfgMap["PrintStorageCar1Block"]; //打印存粉小车1堵塞 1500 m_PrintStorageCar1PressureHigh = m_IOCfgMap["PrintStorageCar1PressureHigh"]; //打印存粉小车1压力高 1500 m_SSRInput = m_IOCfgMap["SSRInput"]; //加热输入检测 m_SSROutput = m_IOCfgMap["SSROutput"]; //加热输出检测 m_PrintMainAxisUpLimit = m_IOCfgMap["PrintMainAxisUpLimit"]; //打印主轴上限位 m_PrintMainAxisDownLimit = m_IOCfgMap["PrintMainAxisDownLimit"]; //打印主轴下限位 m_PrintMainHomeIndex = m_IOCfgMap["PrintMainHomeIndex"]; //打印主轴原点 m_PrintSlaveAxisUpLimit = m_IOCfgMap["PrintSlaveAxisUpLimit"]; //打印从轴上限位 m_PrintSlaveAxisDownLimit = m_IOCfgMap["PrintSlaveAxisDownLimit"]; //打印从轴下限位 m_PrintSlaveHomeIndex = m_IOCfgMap["PrintSlaveHomeIndex"]; //打印从轴原点 m_PrintStorageCar2PressureHigh = m_IOCfgMap["PrintStorageCar2PressureHigh"]; //打印存粉小车2压力高 1500 m_CleanStorageCar1PressureHigh = m_IOCfgMap["CleanStorageCar1PressureHigh"]; //清粉存粉小车1压力高 1500 m_CleanStorageCar2PressureHigh = m_IOCfgMap["CleanStorageCar2PressureHigh"]; //清粉存粉小车2压力高 1500 m_Print3RHookOffPos = m_IOCfgMap["Print3RHookOffPos"]; //打印3R脱离位 m_Print3RCylinderContact = m_IOCfgMap["Print3RCylinderContact"]; //打印3R与缸体接触感应 m_Print3RLeakOn = m_IOCfgMap["Print3RLeakOn"]; //打印3R漏气检测 m_PrintUpDownSeparatePos = m_IOCfgMap["PrintUpDownSeparatePos"]; //打印升降脱离位 1500 m_PrintPressOn = m_IOCfgMap["PrintPressOn"]; //打印位压紧气缸压紧位 m_PrintPressOff = m_IOCfgMap["PrintPressOff"]; //打印位压紧气缸松开位 m_PrintJackUpOn = m_IOCfgMap["PrintJackUpOn"]; //打印位顶升气缸顶起位 m_PrintJackUpOff = m_IOCfgMap["PrintJackUpOff"]; //打印位顶升气缸下降位 m_PrintSupportCylinderOn = m_IOCfgMap["PrintSupportCylinderOn"]; //打印位支撑气缸支撑位 m_PrintSupportCylinderOff = m_IOCfgMap["PrintSupportCylinderOff"]; //打印位支撑气缸避让位 m_PrintHorizontalExtendOn = m_IOCfgMap["PrintHorizontalExtendOn"]; //打印位左右定位气缸伸出位 m_PrintHorizontalExtendOff = m_IOCfgMap["PrintHorizontalExtendOff"]; //打印位左右定位气缸缩回位 m_PrintVerticalExtendOn = m_IOCfgMap["PrintVerticalExtendOn"]; //打印位前后定位气缸伸出位 m_PrintVerticalExtendOff = m_IOCfgMap["PrintVerticalExtendOff"]; //打印位前后定位气缸缩回位 m_CylinderFixExtendOn = m_IOCfgMap["CylinderFixExtendOn"]; //缸体固定气缸伸出位 m_CylinderFixExtendOff = m_IOCfgMap["CylinderFixExtendOff"]; //缸体固定气缸缩回位 m_PrintCylinderJackupReachSensor = m_IOCfgMap["PrintCylinderJackupReachSensor"]; //打印缸体顶升到位感应器 m_EleCylinderHomeIndex = m_IOCfgMap["EleCylinderHomeIndex"]; //电缸原点 m_TrackPrintPos = m_IOCfgMap["TrackPrintPos"]; //轨道打印位 m_EleCylinderUpLimit = m_IOCfgMap["EleCylinderUpLimit"]; //电缸上限 m_EleCylinderDownLimit = m_IOCfgMap["EleCylinderDownLimit"]; //电缸下限 m_MainDoorClose = m_IOCfgMap["MainDoorClose"]; //主机箱门关位 1500 m_PrintCylinderOn = m_IOCfgMap["PrintCylinderOn"]; //打印位缸体检测 m_CleannerMainAxisUpLimit = m_IOCfgMap["CleannerMainAxisUpLimit"]; //清粉主轴上限位 m_CleannerMainAxisDownLimit = m_IOCfgMap["CleannerMainAxisDownLimit"]; //清粉主轴下限位 m_CleannerMainHomeIndex = m_IOCfgMap["CleannerMainHomeIndex"]; //清粉主轴原点 m_CleannerSlaveAxisUpLimit = m_IOCfgMap["CleannerSlaveAxisUpLimit"]; //清粉从轴上限位 m_CleannerAxisUpLimit = m_IOCfgMap["CleannerAxisUpLimit"]; //清粉上限位 1500 m_CleannerAxisDownLimit = m_IOCfgMap["CleannerAxisDownLimit"]; //清粉下限位 1500 m_CleannerHomeIndex = m_IOCfgMap["CleannerHomeIndex"]; //清粉原点 1500 m_Cleanner3R = m_IOCfgMap["Cleanner3R"]; //清粉3R 1500 m_CleannerSlaveAxisDownLimit = m_IOCfgMap["CleannerSlaveAxisDownLimit"]; //清粉从轴下限位 m_CleannerSlaveAxisHomeIndex = m_IOCfgMap["CleannerSlaveAxisHomeIndex"]; //清粉从轴原点 m_CleanPowderStopOn = m_IOCfgMap["CleanPowderStopOn"]; //清粉档块气缸阻挡位 1500 m_CleanPowderStopOff = m_IOCfgMap["CleanPowderStopOff"]; //清粉挡块气缸避让位 1500 m_CleannerLiftTrackContact = m_IOCfgMap["CleannerLiftTrackContact"]; //清粉升降与轨道对接位 m_TrackCleanPos = m_IOCfgMap["TrackCleanPos"]; //轨道清粉位 m_CleannerUpButton = m_IOCfgMap["CleannerUpButton"]; //清粉上升按钮 m_CleannerDownButton = m_IOCfgMap["CleannerDownButton"]; //清粉下降按钮 m_CleannerBackButton = m_IOCfgMap["CleannerBackButton"]; //背部按钮 m_CleannerMotionStop = m_IOCfgMap["CleannerMotionStop"]; //清粉升降急停 m_CleanBoxDoorClose = m_IOCfgMap["CleanBoxDoorClose"]; //清粉箱门关闭 m_UpperLidButton = m_IOCfgMap["UpperLidButton"]; //上盖开关按钮 m_VacuumStartup = m_IOCfgMap["VacuumStartup"]; //吸尘启动按钮 m_LeftVacuumButton = m_IOCfgMap["LeftVacuumButton"]; //左吸尘按钮 1500 m_RightVacuumButton = m_IOCfgMap["RightVacuumButton"]; //右吸尘按钮 1500 m_CleannerCarbinDoorClose = m_IOCfgMap["CleannerCarbinDoorClose"]; //清粉舱门感应 m_UpperLidOpen = m_IOCfgMap["UpperLidOpen"]; //上盖气缸开位 m_UpperLidClose = m_IOCfgMap["UpperLidClose"]; //上盖气缸关位 m_CleanBoxUpHorOpenPos = m_IOCfgMap["CleanBoxUpHorOpenPos"]; //清粉箱上盖横移开位 m_CleanBoxUpHorClosePos = m_IOCfgMap["CleanBoxUpHorClosePos"]; //清粉箱上盖横移关位 m_CleannerBoxSupportOn = m_IOCfgMap["CleannerBoxSupportOn"]; //清粉箱支持气缸支持位 m_CleannerBoxSupportOff = m_IOCfgMap["CleannerBoxSupportOff"]; //清粉箱支持气缸避让位 m_CleannerBoxCylinderPressOn = m_IOCfgMap["CleannerBoxCylinderPressOn"]; //清粉箱压紧气缸压紧位 m_CleannerBoxPressOn = m_IOCfgMap["CleannerBoxPressOn"]; //清粉箱压紧位 m_CleannerBoxPressOff = m_IOCfgMap["CleannerBoxPressOff"]; //清粉箱放松位 m_CleanBoxTopDoorOpenPos = m_IOCfgMap["CleanBoxTopDoorOpenPos"]; //清粉箱顶门气缸开位 m_CleanBoxTopDoorClosePos = m_IOCfgMap["CleanBoxTopDoorClosePos"]; //清粉箱顶门气缸关位 m_CleannerBoxCylinderPressOff = m_IOCfgMap["CleannerBoxCylinderPressOff"]; //清粉箱压紧气缸放松位 m_StairsLockOn = m_IOCfgMap["StairsLockOn"]; //楼梯电磁锁按钮 m_CleannerLiftLockOn = m_IOCfgMap["CleannerLiftLockOn"]; //清粉升降电磁锁按钮 m_CleannerBoxLockOn = m_IOCfgMap["CleannerBoxLockOn"]; //清粉箱缸体锁紧气缸锁紧位 m_CleannerBoxLockOff = m_IOCfgMap["CleannerBoxLockOff"]; //清粉箱缸体锁紧气缸放松位 m_CleannerBoxOn = m_IOCfgMap["CleannerBoxOn"]; //清粉箱缸体接触感应 m_CleannerPressOn = m_IOCfgMap["CleannerPressOn"]; //清粉位压紧气缸压紧位 m_CleannerPressOff = m_IOCfgMap["CleannerPressOff"]; //清粉位压紧气缸放松位 m_AssistPushExtendOn = m_IOCfgMap["AssistPushExtendOn"]; //辅助推动气缸伸出位 m_AssistPushExtendOff = m_IOCfgMap["AssistPushExtendOff"]; //辅助推动气缸缩回位 m_Clean3RContact = m_IOCfgMap["Clean3RContact"]; //清粉3R对接位 m_Clean3RCylinderContact = m_IOCfgMap["Clean3RCylinderContact"]; //清粉3R与缸体接触感应 m_Clean3RLeakOn = m_IOCfgMap["Clean3RLeakOn"]; //清粉3R漏气检测 m_ArmFrontLimit = m_IOCfgMap["ArmFrontLimit"]; //铺粉轴前限位 m_ArmBackLimit = m_IOCfgMap["ArmBackLimit"]; //铺粉轴后限位 m_ArmHomeIndex = m_IOCfgMap["ArmHomeIndex"]; //铺粉轴原点 m_PrintStorageCar2UpLimit = m_IOCfgMap["PrintStorageCar2UpLimit"]; //打印存粉小车2上限 m_PrintStorageCar2DownLimit = m_IOCfgMap["PrintStorageCar2DownLimit"]; //打印存粉小车2下限 m_PrintStorageCar2Connect = m_IOCfgMap["PrintStorageCar2Connect"]; //打印存粉小车2连接 m_PrintStorageCar2Block = m_IOCfgMap["PrintStorageCar2Block"]; //打印存粉小车2堵塞 m_CylinderHandLockSensor = m_IOCfgMap["CylinderHandLockSensor"]; //缸体吊装门锁感应 m_CleanBoxTopDoorRisePos = m_IOCfgMap["CleanBoxTopDoorRisePos"]; //清粉箱顶门升高位 m_CleanBoxTopDoorFallPos = m_IOCfgMap["CleanBoxTopDoorFallPos"]; //清粉箱顶门降低位 m_CoverAcceptPowderPos = m_IOCfgMap["CoverAcceptPowderPos"]; //铺粉轴接粉位 m_CoverDropPowderPos1 = m_IOCfgMap["CoverDropPowderPos1"]; //铺粉轴下粉位1 m_CoverDropPowderPos2 = m_IOCfgMap["CoverDropPowderPos2"]; //铺粉轴下粉位2 m_LoadLeftLimit = m_IOCfgMap["LoadLeftLimit"]; //移载轴左限位 m_LoadRgithLimit = m_IOCfgMap["LoadRgithLimit"]; //移载轴右限位 m_LoadHomeIndex = m_IOCfgMap["LoadHomeIndex"]; //移载轴原点 m_LoadCylinderCheck = m_IOCfgMap["LoadCylinderCheck"]; //移载缸体检测 1500 m_LoadSearchEdgeOn = m_IOCfgMap["LoadSearchEdgeOn"]; //移载轴寻边感应 m_LoadHandPos= m_IOCfgMap["LoadHandPos"]; m_LoadCylinderOn = m_IOCfgMap["LoadCylinderOn"]; //移载插销气缸插紧位 m_LoadCylinderOff = m_IOCfgMap["LoadCylinderOff"]; //移载插销气缸松开位 m_PowderPosition1 = m_IOCfgMap["PowderPosition1"]; //粉仓粉位1 m_PowderPosition2 = m_IOCfgMap["PowderPosition2"]; //粉仓粉位2 m_PowderPosition3 = m_IOCfgMap["PowderPosition3"]; //粉仓粉位3 m_PowderPosition4 = m_IOCfgMap["PowderPosition4"]; //粉仓粉位4 m_PowderPosition5 = m_IOCfgMap["PowderPosition5"]; //粉仓粉位5 m_PowderSupplyHomeIndex = m_IOCfgMap["PowderSupplyHomeIndex"]; //供粉转轴原点 m_SafeDoorClose1 = m_IOCfgMap["SafeDoorClose1"]; //安全门锁信号1 m_SafeDoorClose2 = m_IOCfgMap["SafeDoorClose2"]; //安全门锁信号2 m_SafeDoorClose3 = m_IOCfgMap["SafeDoorClose3"]; //安全门锁信号3 m_PrintableSignal = m_IOCfgMap["PrintableSignal"]; //允许打印信号 m_FanRunSignal = m_IOCfgMap["FanRunSignal"]; //风机运行信号 m_PrintAirRenewalPressure = m_IOCfgMap["PrintAirRenewalPressure"]; //打印室换气源压力 m_SupplyPipeBlock = m_IOCfgMap["SupplyPipeBlock"]; //吸筛送管道堵塞感应 m_LightPathChillerAlarm = m_IOCfgMap["LightPathChillerAlarm"]; //光路冷水机报警 m_PurifierChillerAlarm = m_IOCfgMap["PurifierChillerAlarm"]; //净化器冷水机报警 m_CleanStorageCar1UpLimit = m_IOCfgMap["CleanStorageCar1UpLimit"]; //打印存粉小车1上限 m_CleanStorageCar1DownLimit = m_IOCfgMap["CleanStorageCar1DownLimit"]; //打印存粉小车1下限 m_CleanStorageCar1Connect = m_IOCfgMap["CleanStorageCar1Connect"]; //打印存粉小车1连接 m_CleanStorageCar1Block = m_IOCfgMap["CleanStorageCar1Block"]; //打印存粉小车1堵塞 m_CleanStorageCar2UpLimit = m_IOCfgMap["CleanStorageCar2UpLimit"]; //打印存粉小车2上限 m_CleanStorageCar2DownLimit = m_IOCfgMap["CleanStorageCar2DownLimit"]; //打印存粉小车2下限 m_CleanStorageCar2Connect = m_IOCfgMap["CleanStorageCar2Connect"]; //打印存粉小车2连接 m_CleanStorageCar2Block = m_IOCfgMap["CleanStorageCar2Block"]; //打印存粉小车2堵塞 m_CylinderHandPlateOpen = m_IOCfgMap["CylinderHandPlateOpen"]; //缸体吊装盖板开位 m_CylinderHandPlateOff = m_IOCfgMap["CylinderHandPlateOff"]; //缸体吊装盖板关位 m_CylinderHandDoorOpen = m_IOCfgMap["CylinderHandDoorOpen"]; //缸体吊装门开位 m_CylinderHandDoorClose = m_IOCfgMap["CylinderHandDoorClose"]; //缸体吊装门关位 m_UPSException = m_IOCfgMap["UPSException"]; //UPS异常 m_Laser5Alarm = m_IOCfgMap["Laser5Alarm"]; //激光器5报警 m_Laser6Alarm = m_IOCfgMap["Laser6Alarm"]; //激光器6报警 m_Laser7Alarm = m_IOCfgMap["Laser7Alarm"]; //激光器7报警 m_Laser8Alarm = m_IOCfgMap["Laser8Alarm"]; //激光器8报警 m_ScannerPowerAssistContact = m_IOCfgMap["ScannerPowerAssistContact"]; //振镜电源辅助触点 m_ScannerBranchAirSwitch = m_IOCfgMap["ScannerBranchAirSwitch"]; //激光器支路空开 m_UpServoAirSwitchContact = m_IOCfgMap["UpServoAirSwitchContact"]; //上层伺服空开触点 m_DownServoAirSwitchContact = m_IOCfgMap["DownServoAirSwitchContact"]; //下层伺服空开触点 m_RailCloseSensor = m_IOCfgMap["RailCloseSensor"]; //栏杆关闭感应 m_RailOpenSensor = m_IOCfgMap["RailOpenSensor"]; //栏杆打开感应 m_CoverAcceptStirPos = m_IOCfgMap["CoverAcceptStirPos"]; //铺粉接粉拨板位 m_CoverDropStirPos = m_IOCfgMap["CoverDropStirPos"]; //铺粉下粉拨板位 m_CleanBoxFoldUpPos = m_IOCfgMap["CleanBoxFoldUpPos"]; //清粉箱折叠升高位 m_CleanBoxFoldDownPos = m_IOCfgMap["CleanBoxFoldDownPos"]; //清粉箱折叠降低位 m_SecurityCarpet = m_IOCfgMap["SecurityCarpet"]; //安全地毯 m_PowderUpestPos = m_IOCfgMap["PowderUpestPos"]; //粉仓料位最高 m_PowderDownestPos = m_IOCfgMap["PowderDownestPos"]; //粉仓料位最低 m_PrintCarbinDoorLockPos = m_IOCfgMap["PrintCarbinDoorLockPos"]; //打印舱门锁关闭位 m_UpServiceDoorClosePos = m_IOCfgMap["UpServiceDoorClosePos"]; //上层维修门关闭位 m_DownServiceDoorClosePos = m_IOCfgMap["DownServiceDoorClosePos"]; //下层维修门关闭位 m_TotalWaterCoolerAlarm = m_IOCfgMap["TotalWaterCoolerAlarm"]; //总水冷机报警 for (auto io : m_IOCfgMap) { if(io.second)io.second->SetCS(&m_CS); } if (m_IoVMap.find(m_IOCtrlIndex) != m_IoVMap.end()) { m_IoVMap[m_IOCtrlIndex]->Init(m_IOCfgMap); } g_LngManager->VarIOTrans(); //PowderEstimateCfg* pec = ConfigManager::GetInstance()->GetPowderEstimateCfg(); //wxxtest vector powderPosIOs; if (m_PowderDownestPos)powderPosIOs.push_back(m_PowderDownestPos); if (m_PowderPosition1)powderPosIOs.push_back(m_PowderPosition1); if (m_PowderPosition2)powderPosIOs.push_back(m_PowderPosition2); if (m_PowderPosition3)powderPosIOs.push_back(m_PowderPosition3); if (m_PowderPosition4)powderPosIOs.push_back(m_PowderPosition4); if (m_PowderPosition5)powderPosIOs.push_back(m_PowderPosition5); if (m_PowderUpestPos)powderPosIOs.push_back(m_PowderUpestPos); //pec->Init(powderPosIOs.size()); //for (size_t i = 0; i < pec->m_PEVec.size(); i++) { // pec->m_PEVec[i]->m_PosSensor = powderPosIOs[i]; // pec->m_TotalGrids += (pec->m_PEVec[i]->m_SpaceGrid); //} } void IOCfgWrapper::SetAutoCtrlHeating(bool enable) { if (!m_Heating || !m_Heating->IsActive())return; if (enable) { m_AutoCtrlHeatingLastTime = time(0); m_AutoCtrlHeating = true; } else { m_AutoCtrlHeating = false; } } //void IOCfgWrapper::AutoCtrlHeating( TempCtrlClient* client) //{ // if (m_Heating) { // time_t now = time(0); // bool isActive = m_Heating->IsActive(); // if (m_AutoCtrlHeating) { // if (isActive) { // m_AutoCtrlHeatingRemainTime = (int)((m_RunCfg->m_HeatingDeleyDisableMinute * 60) - (now - m_AutoCtrlHeatingLastTime)); // if (m_AutoCtrlHeatingRemainTime<=0) { // if (isActive) { // m_Heating->SetActive(false); // } // m_AutoCtrlHeating = false; // m_AutoCtrlHeatingLastTime = now; // } // } // // if (m_LastHeatingActive) { // if (!isActive) { // m_AutoCtrlHeating = false; // m_AutoCtrlHeatingLastTime = now; // } // } // // } // else // { // m_AutoCtrlHeatingLastTime = now; // } // // if (!m_LastHeatingActive && isActive) { // bool isLow = false; // // EnterCriticalSection(&g_SystemInfo->m_InfoCs); // if (g_SystemInfo->m_ComPrintOxygen1 m_AlarmOxygen && g_SystemInfo->m_ComPrintOxygen2m_AlarmOxygen) { // isLow = true; // } // // LeaveCriticalSection(&g_SystemInfo->m_InfoCs); // if (isLow) { // if (client&& client->IsComConnected()) { // client->SetTargeValue(m_RunCfg->m_LowOxygenHeatingTemp); // } // } // else { // if (client&& client->IsComConnected()) { // client->SetTargeValue(m_RunCfg->m_HighOxygenHeatingTemp); // } // else { // m_Heating->SetActive(false); // g_Toast->AddToast(new ToastBean(_(u8"预热关闭:氧含量超过安全值并且温控未连接,预热关闭").c_str(), 3000, Toast::COLOR_ORANGE)); // g_log->TraceInfo(_(u8"预热关闭:氧含量超过安全值并且温控未连接,预热关闭").c_str()); // } // } // } // // m_LastHeatingActive = isActive; // } //} void IOCfgWrapper::SetSystemCtrlPressure(bool isp) { m_IsSystemCtrlPressure = isp; } bool IOCfgWrapper::IsAutoCtrlHeating() { return m_AutoCtrlHeating; } void IO_1000_V0::Init(map& ioCfgMap) { m_ServoMotor = ioCfgMap["ServoMotor"]; //伺服电源 m_Laser = ioCfgMap["Laser"]; //激光器 m_Laser1Enable = ioCfgMap["Laser1Enable"]; //激光1使能 m_Laser1Start = ioCfgMap["Laser1Start"]; //激光1启动 m_Laser1Red = ioCfgMap["Laser1Red"]; //激光1红光 m_Laser2Enable = ioCfgMap["Laser2Enable"]; //激光2使能 m_Laser2Start = ioCfgMap["Laser2Start"]; //激光2启动 m_Laser2Red = ioCfgMap["Laser2Red"]; //激光2红光 m_Laser3Enable = ioCfgMap["Laser3Enable"]; //激光3使能 m_Laser3Start = ioCfgMap["Laser3Start"]; //激光3启动 m_Laser3Red = ioCfgMap["Laser3Red"]; //激光3红光 m_Laser4Enable = ioCfgMap["Laser4Enable"]; //激光4使能 m_Laser4Start = ioCfgMap["Laser4Start"]; //激光4启动 m_Laser4Red = ioCfgMap["Laser4Red"]; //激光4红光 m_PrintDoorLock = ioCfgMap["PrintDoorLock"]; //打印舱门电锁 m_LightOn = ioCfgMap["LightOn"]; //照明 m_YellowLamp = ioCfgMap["YellowLamp"]; //黄灯 m_GreenLamp = ioCfgMap["GreenLamp"]; //绿灯 m_RedLamp = ioCfgMap["RedLamp"]; //红灯 m_Buzzer = ioCfgMap["Buzzer"]; //蜂鸣器 m_PrintAssistGas = ioCfgMap["PrintAssistGas"]; //辅助气 m_PrintAirEvacuation = ioCfgMap["PrintAirEvacuation"]; //排气阀 m_PressureRelease = ioCfgMap["PressureRelease"]; //压力释放 m_ScannerCool = ioCfgMap["ScannerCool"]; //振镜冷却 m_Heating = ioCfgMap["Heating"]; //加热 m_StorageCarDropPowderValve = ioCfgMap["StorageCarDropPowderValve"]; //存粉小车下粉阀 m_StorageCarAirHammer = ioCfgMap["StorageCarAirHammer"]; //存粉小车气锤 m_PrintPress = ioCfgMap["PrintPress"]; //打印位压紧 m_PrintUnpress = ioCfgMap["PrintUnpress"]; //打印位放松 m_PrintJackUp = ioCfgMap["PrintJackUp"]; //打印顶升气缸上升 m_PrintJackDown = ioCfgMap["PrintJackDown"]; //打印顶升气缸下降 m_SupportCylinderEnable = ioCfgMap["SupportCylinderEnable"]; //打印支撑撑起 m_SupportCylinderDisable = ioCfgMap["SupportCylinderDisable"]; //打印支撑避让 m_PrintHorizontalExtend = ioCfgMap["PrintHorizontalExtend"]; //打印位左右定位气缸伸出 m_PrintHorizontalRetract = ioCfgMap["PrintHorizontalRetract"]; //打印位左右定位气缸缩回 m_PrintVerticalExtend = ioCfgMap["PrintVerticalExtend"]; //打印位前后定位气缸伸出 m_PrintVerticalRetract = ioCfgMap["PrintVerticalRetract"]; //打印位前后定位气缸缩回 m_Print3RRelease = ioCfgMap["Print3RRelease"]; //打印3R夹具松开 m_PrintMainAxisBrake = ioCfgMap["PrintMainAxisBrake"]; //打印主轴刹车 m_PrintSlaveAxisBrake = ioCfgMap["PrintSlaveAxisBrake"]; //打印从轴刹车 m_Print3RDeoxygenSalve = ioCfgMap["Print3RDeoxygenSalve"]; //打印3R除氧进气阀 m_Print3RStablePressureSalve = ioCfgMap["Print3RStablePressureSalve"]; //打印3R稳压气阀 m_Print3RAirEvacuation = ioCfgMap["Print3RAirEvacuation"]; //打印3R除氧排气阀 m_PowderCleanerUpOpenGap = ioCfgMap["PowderCleanerUpOpenGap"]; //清粉箱上盖打开阀 m_PowderCleanerUpCloseGap = ioCfgMap["PowderCleanerUpCloseGap"]; //清粉箱上盖关闭阀 m_PowderCleannerSupportCylinderEnable = ioCfgMap["PowderCleannerSupportCylinderEnable"]; //清粉箱支撑气缸撑起 m_PowderCleannerSupportCylinderDisEnable = ioCfgMap["PowderCleannerSupportCylinderDisEnable"]; //清粉箱支撑气缸避让 m_PowderCleannerPressRelease = ioCfgMap["PowderCleannerPressRelease"]; //清粉箱压紧气缸松开 m_StairsLock = ioCfgMap["StairsLock"]; //楼梯电磁锁 m_PowderCleannerLiftLock = ioCfgMap["PowderCleannerLiftLock"]; //清粉升降电磁锁 m_PowderCleannerBoxLock = ioCfgMap["PowderCleannerBoxLock"]; //清粉箱缸体锁紧气缸锁紧 m_PowderCleannerBoxRelease = ioCfgMap["PowderCleannerBoxRelease"]; //清粉箱缸体锁紧气缸放松 m_PowderCleannerBoxPress = ioCfgMap["PowderCleannerBoxPress"]; //清粉位压紧气缸压紧 m_PowderCleannerBoxUnpress = ioCfgMap["PowderCleannerBoxUnpress"]; //清粉位压紧气缸放松 m_AssistPushExtend = ioCfgMap["AssistPushExtend"]; //辅助推动气缸伸出 m_Clean3RRelease = ioCfgMap["Clean3RRelease"]; //清粉3R夹具松开 m_CleanMainAxisBrake = ioCfgMap["CleanMainAxisBrake"]; //清粉主轴刹车 m_CleanSlaveAxisBrake = ioCfgMap["CleanSlaveAxisBrake"]; //清粉从轴刹车 m_CleanCabinArriveLamp = ioCfgMap["CleanCabinArriveLamp"]; //清粉舱体到位指示灯 m_LoadPinInserOn = ioCfgMap["LoadPinInserOn"]; //移载插销气缸插紧 m_PrintVacuumEnterSlave = ioCfgMap["PrintVacuumEnterSlave"]; //打印室吸尘进气阀 m_StorageCarDeoxygenSlave = ioCfgMap["StorageCarDeoxygenSlave"]; //存粉小车除氧进气阀 m_StorageCarEvacuationSlave = ioCfgMap["StorageCarEvacuationSlave"]; //存粉小车除氧排气阀 m_PurifierCoolerPower = ioCfgMap["PurifierCoolerPower"]; //净化器冷水机电源 m_SystemStop = ioCfgMap["SystemStop"]; //系统急停 m_HighPressureCheck = ioCfgMap["HighPressureCheck"]; //高压报警 m_ProtectGasCheck = ioCfgMap["ProtectGasCheck"]; //低压报警 m_PowerDown = ioCfgMap["PowerDown"]; //外部断电 m_CarbinDoorClose = ioCfgMap["CarbinDoorClose"]; // m_OutDoorOxygenAlarm = ioCfgMap["OutDoorOxygenAlarm"]; //室外测氧报警 m_LaserChillerAlarm = ioCfgMap["LaserChillerAlarm"]; //激光器冷水机报警 m_BusAirSwitchClose = ioCfgMap["BusAirSwitchClose"]; //总空开触点 m_ExtMachineAirSwitchClose = ioCfgMap["ExtMachineAirSwitchClose"]; //外部设备空开触点 m_HeattingAirSwitchClose = ioCfgMap["HeattingAirSwitchClose"]; //加热空开触点 m_LaserAirSwitchClose = ioCfgMap["LaserAirSwitchClose"]; //激光空开触点 m_ServoAirSwitchClose = ioCfgMap["ServoAirSwitchClose"]; //伺服空开触点 m_Laser1Alarm = ioCfgMap["Laser1Alarm"]; //激光器1报警 m_Laser2Alarm = ioCfgMap["Laser2Alarm"]; //激光器2报警 m_Laser3Alarm = ioCfgMap["Laser3Alarm"]; //激光器3报警 m_Laser4Alarm = ioCfgMap["Laser4Alarm"]; //激光器4报警 m_StorageCarUpLimit = ioCfgMap["StorageCarUpLimit"]; //存粉小车上限 m_StorageCarDownLimit = ioCfgMap["StorageCarDownLimit"]; //存粉小车下限 m_StorageCarConnect = ioCfgMap["StorageCarConnect"]; //存粉小车连接 m_StorageCarJarConnect = ioCfgMap["StorageCarJarConnect"]; //存粉小车粉罐连接 m_StorageCarJarUpLimit = ioCfgMap["StorageCarJarUpLimit"]; //存粉小车粉罐上限 m_SSRInput = ioCfgMap["SSRInput"]; //加热输入检测 m_SSROutput = ioCfgMap["SSROutput"]; //加热输出检测 m_PrintMainAxisUpLimit = ioCfgMap["PrintMainAxisUpLimit"]; //打印主轴上限位 m_PrintMainAxisDownLimit = ioCfgMap["PrintMainAxisDownLimit"]; //打印主轴下限位 m_PrintMainHomeIndex = ioCfgMap["PrintMainHomeIndex"]; //打印主轴原点 m_PrintSlaveAxisUpLimit = ioCfgMap["PrintSlaveAxisUpLimit"]; //打印从轴上限位 m_PrintSlaveAxisDownLimit = ioCfgMap["PrintSlaveAxisDownLimit"]; //打印从轴下限位 m_PrintSlaveHomeIndex = ioCfgMap["PrintSlaveHomeIndex"]; //打印从轴原点 m_Print3RHookOffPos = ioCfgMap["Print3RHookOffPos"]; //打印3R脱离位 m_Print3RCylinderContact = ioCfgMap["Print3RCylinderContact"]; //打印3R与缸体接触感应 m_Print3RLeakOn = ioCfgMap["Print3RLeakOn"]; //打印3R漏气检测 m_PrintPressOn = ioCfgMap["PrintPressOn"]; //打印位压紧气缸压紧位 m_PrintPressOff = ioCfgMap["PrintPressOff"]; //打印位压紧气缸松开位 m_PrintJackUpOn = ioCfgMap["PrintJackUpOn"]; //打印位顶升气缸顶起位 m_PrintJackUpOff = ioCfgMap["PrintJackUpOff"]; //打印位顶升气缸下降位 m_PrintSupportCylinderOn = ioCfgMap["PrintSupportCylinderOn"]; //打印位支撑气缸支撑位 m_PrintSupportCylinderOff = ioCfgMap["PrintSupportCylinderOff"]; //打印位支撑气缸避让位 m_PrintHorizontalExtendOn = ioCfgMap["PrintHorizontalExtendOn"]; //打印位左右定位气缸伸出位 m_PrintHorizontalExtendOff = ioCfgMap["PrintHorizontalExtendOff"]; //打印位左右定位气缸缩回位 m_PrintVerticalExtendOn = ioCfgMap["PrintVerticalExtendOn"]; //打印位前后定位气缸伸出位 m_PrintVerticalExtendOff = ioCfgMap["PrintVerticalExtendOff"]; //打印位前后定位气缸缩回位 m_TrackPrintPos = ioCfgMap["TrackPrintPos"]; //轨道打印位 m_PrintCylinderOn = ioCfgMap["PrintCylinderOn"]; //打印位缸体检测 m_CleannerMainAxisUpLimit = ioCfgMap["CleannerMainAxisUpLimit"]; //清粉主轴上限位 m_CleannerMainAxisDownLimit = ioCfgMap["CleannerMainAxisDownLimit"]; //清粉主轴下限位 m_CleannerMainHomeIndex = ioCfgMap["CleannerMainHomeIndex"]; //清粉主轴原点 m_CleannerSlaveAxisUpLimit = ioCfgMap["CleannerSlaveAxisUpLimit"]; //清粉从轴上限位 m_CleannerSlaveAxisDownLimit = ioCfgMap["CleannerSlaveAxisDownLimit"]; //清粉从轴下限位 m_CleannerSlaveAxisHomeIndex = ioCfgMap["CleannerSlaveAxisHomeIndex"]; //清粉从轴原点 m_CleannerLiftTrackContact = ioCfgMap["CleannerLiftTrackContact"]; //清粉升降与轨道对接位 m_TrackCleanPos = ioCfgMap["TrackCleanPos"]; //轨道清粉位 m_CleannerUpButton = ioCfgMap["CleannerUpButton"]; //清粉上升按钮 m_CleannerDownButton = ioCfgMap["CleannerDownButton"]; //清粉下降按钮 m_CleannerBackButton = ioCfgMap["CleannerBackButton"]; //背部按钮 m_CleannerMotionStop = ioCfgMap["CleannerMotionStop"]; //清粉升降急停 m_UpperLidButton = ioCfgMap["UpperLidButton"]; //上盖开关按钮 m_VacuumStartup = ioCfgMap["VacuumStartup"]; //吸尘启动按钮 m_CleannerCarbinDoorClose = ioCfgMap["CleannerCarbinDoorClose"]; //清粉舱门感应 m_UpperLidOpen = ioCfgMap["UpperLidOpen"]; //上盖气缸开位 m_UpperLidClose = ioCfgMap["UpperLidClose"]; //上盖气缸关位 m_CleannerBoxSupportOn = ioCfgMap["CleannerBoxSupportOn"]; //清粉箱支持气缸支持位 m_CleannerBoxSupportOff = ioCfgMap["CleannerBoxSupportOff"]; //清粉箱支持气缸避让位 m_CleannerBoxCylinderPressOn = ioCfgMap["CleannerBoxCylinderPressOn"]; //清粉箱压紧气缸压紧位 m_CleannerBoxCylinderPressOff = ioCfgMap["CleannerBoxCylinderPressOff"]; //清粉箱压紧气缸放松位 m_StairsLockOn = ioCfgMap["StairsLockOn"]; //楼梯电磁锁按钮 m_CleannerLiftLockOn = ioCfgMap["CleannerLiftLockOn"]; //清粉升降电磁锁按钮 m_CleannerBoxLockOn = ioCfgMap["CleannerBoxLockOn"]; //清粉箱缸体锁紧气缸锁紧位 m_CleannerBoxLockOff = ioCfgMap["CleannerBoxLockOff"]; //清粉箱缸体锁紧气缸放松位 m_CleannerBoxOn = ioCfgMap["CleannerBoxOn"]; //清粉箱缸体接触感应 m_CleannerPressOn = ioCfgMap["CleannerPressOn"]; //清粉位压紧气缸压紧位 m_CleannerPressOff = ioCfgMap["CleannerPressOff"]; //清粉位压紧气缸放松位 m_AssistPushExtendOn = ioCfgMap["AssistPushExtendOn"]; //辅助推动气缸伸出位 m_AssistPushExtendOff = ioCfgMap["AssistPushExtendOff"]; //辅助推动气缸缩回位 m_Clean3RContact = ioCfgMap["Clean3RContact"]; //清粉3R对接位 m_Clean3RCylinderContact = ioCfgMap["Clean3RCylinderContact"]; //清粉3R与缸体接触感应 m_Clean3RLeakOn = ioCfgMap["Clean3RLeakOn"]; //清粉3R漏气检测 m_ArmFrontLimit = ioCfgMap["ArmFrontLimit"]; //铺粉轴前限位 m_ArmBackLimit = ioCfgMap["ArmBackLimit"]; //铺粉轴后限位 m_ArmHomeIndex = ioCfgMap["ArmHomeIndex"]; //铺粉轴原点 m_LoadLeftLimit = ioCfgMap["LoadLeftLimit"]; //移载轴左限位 m_LoadRgithLimit = ioCfgMap["LoadRgithLimit"]; //移载轴右限位 m_LoadHomeIndex = ioCfgMap["LoadHomeIndex"]; //移载轴原点 m_LoadSearchEdgeOn = ioCfgMap["LoadSearchEdgeOn"]; //移载轴寻边感应 m_LoadCylinderOn = ioCfgMap["LoadCylinderOn"]; //移载插销气缸插紧位 m_LoadCylinderOff = ioCfgMap["LoadCylinderOff"]; //移载插销气缸松开位 m_PowderPosition1 = ioCfgMap["PowderPosition1"]; //粉仓粉位1 m_PowderPosition2 = ioCfgMap["PowderPosition2"]; //粉仓粉位2 m_PowderPosition3 = ioCfgMap["PowderPosition3"]; //粉仓粉位3 m_PowderPosition4 = ioCfgMap["PowderPosition4"]; //粉仓粉位4 m_PowderPosition5 = ioCfgMap["PowderPosition5"]; //粉仓粉位5 m_PowderSupplyHomeIndex = ioCfgMap["PowderSupplyHomeIndex"]; //供粉转轴原点 m_SafeDoorClose1 = ioCfgMap["SafeDoorClose1"]; //安全门锁信号1 m_SafeDoorClose2 = ioCfgMap["SafeDoorClose2"]; //安全门锁信号2 m_SafeDoorClose3 = ioCfgMap["SafeDoorClose3"]; //安全门锁信号3 m_PrintableSignal = ioCfgMap["PrintableSignal"]; //允许打印信号 m_FanRunSignal = ioCfgMap["FanRunSignal"]; //风机运行信号 m_SupplyPipeBlock = ioCfgMap["SupplyPipeBlock"]; //吸筛送管道堵塞感应 m_LightPathChillerAlarm = ioCfgMap["LightPathChillerAlarm"]; //光路冷水机报警 m_PurifierChillerAlarm = ioCfgMap["PurifierChillerAlarm"]; //净化器冷水机报警 } void IO_1000_V0::Update(unsigned char* arr) { m_SystemStop->m_IsActive = !((arr[0] & 0x1) > 0 ? true : false); m_HighPressureCheck->m_IsActive = ((arr[0] & 0x2) > 0 ? true : false); m_ProtectGasCheck->m_IsActive = ((arr[0] & 0x4) > 0 ? true : false); m_PowerDown->m_IsActive = ((arr[0] & 0x8) > 0 ? true : false); if (m_CarbinDoorClose)m_CarbinDoorClose->m_IsActive = ((arr[0] & 0x10) > 0 ? true : false); m_OutDoorOxygenAlarm->m_IsActive = ((arr[0] & 0x20) > 0 ? true : false); m_LaserChillerAlarm->m_IsActive = ((arr[0] & 0x40) > 0 ? true : false); m_BusAirSwitchClose->m_IsActive = ((arr[0] & 0x80) > 0 ? true : false); m_ExtMachineAirSwitchClose->m_IsActive = ((arr[1] & 0x1) > 0 ? true : false); m_HeattingAirSwitchClose->m_IsActive = ((arr[1] & 0x2) > 0 ? true : false); m_LaserAirSwitchClose->m_IsActive = ((arr[1] & 0x4) > 0 ? true : false); m_ServoAirSwitchClose->m_IsActive = ((arr[1] & 0x8) > 0 ? true : false); m_Laser1Alarm->m_IsActive = ((arr[1] & 0x10) > 0 ? true : false); m_Laser2Alarm->m_IsActive = ((arr[1] & 0x20) > 0 ? true : false); m_Laser3Alarm->m_IsActive = ((arr[1] & 0x40) > 0 ? true : false); m_Laser4Alarm->m_IsActive = ((arr[1] & 0x80) > 0 ? true : false); m_StorageCarUpLimit->m_IsActive = ((arr[2] & 0x1) > 0 ? true : false); m_StorageCarDownLimit->m_IsActive = ((arr[2] & 0x2) > 0 ? true : false); m_StorageCarConnect->m_IsActive = ((arr[2] & 0x4) > 0 ? true : false); m_StorageCarJarConnect->m_IsActive = ((arr[2] & 0x8) > 0 ? true : false); m_StorageCarJarUpLimit->m_IsActive = ((arr[2] & 0x10) > 0 ? true : false); m_SSRInput->m_IsActive = ((arr[2] & 0x20) > 0 ? true : false); m_SSROutput->m_IsActive = ((arr[2] & 0x40) > 0 ? true : false); m_PrintMainAxisUpLimit->m_IsActive = !((arr[2] & 0x80) > 0 ? true : false); m_PrintMainAxisDownLimit->m_IsActive = !((arr[3] & 0x1) > 0 ? true : false); m_PrintMainHomeIndex->m_IsActive = ((arr[3] & 0x2) > 0 ? true : false); m_PrintSlaveAxisUpLimit->m_IsActive = !((arr[3] & 0x4) > 0 ? true : false); m_PrintSlaveAxisDownLimit->m_IsActive = !((arr[3] & 0x8) > 0 ? true : false); m_PrintSlaveHomeIndex->m_IsActive = ((arr[3] & 0x10) > 0 ? true : false); m_Print3RHookOffPos->m_IsActive = ((arr[3] & 0x20) > 0 ? true : false); m_Print3RCylinderContact->m_IsActive = ((arr[3] & 0x40) > 0 ? true : false); m_Print3RLeakOn->m_IsActive = ((arr[3] & 0x80) > 0 ? true : false); m_PrintPressOn->m_IsActive = ((arr[4] & 0x1) > 0 ? true : false); m_PrintPressOff->m_IsActive = ((arr[4] & 0x2) > 0 ? true : false); m_PrintJackUpOn->m_IsActive = ((arr[4] & 0x4) > 0 ? true : false); m_PrintJackUpOff->m_IsActive = ((arr[4] & 0x8) > 0 ? true : false); m_PrintSupportCylinderOn->m_IsActive = ((arr[4] & 0x10) > 0 ? true : false); m_PrintSupportCylinderOff->m_IsActive = ((arr[4] & 0x20) > 0 ? true : false); m_PrintHorizontalExtendOn->m_IsActive = ((arr[4] & 0x40) > 0 ? true : false); m_PrintHorizontalExtendOff->m_IsActive = ((arr[4] & 0x80) > 0 ? true : false); m_PrintVerticalExtendOn->m_IsActive = ((arr[5] & 0x1) > 0 ? true : false); m_PrintVerticalExtendOff->m_IsActive = ((arr[5] & 0x2) > 0 ? true : false); m_TrackPrintPos->m_IsActive = ((arr[5] & 0x4) > 0 ? true : false); m_PrintCylinderOn->m_IsActive = ((arr[5] & 0x8) > 0 ? true : false); m_CleannerMainAxisUpLimit->m_IsActive = !((arr[5] & 0x10) > 0 ? true : false); m_CleannerMainAxisDownLimit->m_IsActive = !((arr[5] & 0x20) > 0 ? true : false); m_CleannerMainHomeIndex->m_IsActive = ((arr[5] & 0x40) > 0 ? true : false); m_CleannerSlaveAxisUpLimit->m_IsActive = !((arr[5] & 0x80) > 0 ? true : false); m_CleannerSlaveAxisDownLimit->m_IsActive = !((arr[6] & 0x1) > 0 ? true : false); m_CleannerSlaveAxisHomeIndex->m_IsActive = ((arr[6] & 0x2) > 0 ? true : false); m_CleannerLiftTrackContact->m_IsActive = ((arr[6] & 0x4) > 0 ? true : false); m_TrackCleanPos->m_IsActive = ((arr[6] & 0x8) > 0 ? true : false); m_CleannerUpButton->m_IsActive = ((arr[6] & 0x10) > 0 ? true : false); m_CleannerDownButton->m_IsActive = ((arr[6] & 0x20) > 0 ? true : false); m_CleannerBackButton->m_IsActive = ((arr[6] & 0x40) > 0 ? true : false); m_CleannerMotionStop->m_IsActive = !((arr[6] & 0x80) > 0 ? true : false); m_UpperLidButton->m_IsActive = ((arr[7] & 0x1) > 0 ? true : false); m_VacuumStartup->m_IsActive = ((arr[7] & 0x2) > 0 ? true : false); m_CleannerCarbinDoorClose->m_IsActive = ((arr[7] & 0x4) > 0 ? true : false); m_UpperLidOpen->m_IsActive = ((arr[7] & 0x8) > 0 ? true : false); m_UpperLidClose->m_IsActive = ((arr[7] & 0x10) > 0 ? true : false); m_CleannerBoxSupportOn->m_IsActive = ((arr[7] & 0x20) > 0 ? true : false); m_CleannerBoxSupportOff->m_IsActive = ((arr[7] & 0x40) > 0 ? true : false); m_CleannerBoxCylinderPressOn->m_IsActive = ((arr[7] & 0x80) > 0 ? true : false); m_CleannerBoxCylinderPressOff->m_IsActive = ((arr[8] & 0x1) > 0 ? true : false); m_StairsLockOn->m_IsActive = ((arr[8] & 0x2) > 0 ? true : false); m_CleannerLiftLockOn->m_IsActive = ((arr[8] & 0x4) > 0 ? true : false); m_CleannerBoxLockOn->m_IsActive = ((arr[8] & 0x8) > 0 ? true : false); m_CleannerBoxLockOff->m_IsActive = ((arr[8] & 0x10) > 0 ? true : false); m_CleannerBoxOn->m_IsActive = ((arr[8] & 0x20) > 0 ? true : false); m_CleannerPressOn->m_IsActive = ((arr[8] & 0x40) > 0 ? true : false); m_CleannerPressOff->m_IsActive = ((arr[8] & 0x80) > 0 ? true : false); m_AssistPushExtendOn->m_IsActive = ((arr[9] & 0x1) > 0 ? true : false); m_AssistPushExtendOff->m_IsActive = ((arr[9] & 0x2) > 0 ? true : false); m_Clean3RContact->m_IsActive = ((arr[9] & 0x4) > 0 ? true : false); m_Clean3RCylinderContact->m_IsActive = ((arr[9] & 0x8) > 0 ? true : false); m_Clean3RLeakOn->m_IsActive = ((arr[9] & 0x10) > 0 ? true : false); m_ArmFrontLimit->m_IsActive = !((arr[9] & 0x20) > 0 ? true : false); m_ArmBackLimit->m_IsActive = !((arr[9] & 0x40) > 0 ? true : false); m_ArmHomeIndex->m_IsActive = ((arr[9] & 0x80) > 0 ? true : false); m_LoadLeftLimit->m_IsActive = !((arr[10] & 0x1) > 0 ? true : false); m_LoadRgithLimit->m_IsActive = !((arr[10] & 0x2) > 0 ? true : false); m_LoadHomeIndex->m_IsActive = ((arr[10] & 0x4) > 0 ? true : false); m_LoadSearchEdgeOn->m_IsActive = ((arr[10] & 0x8) > 0 ? true : false); if (m_LoadCylinderOn)m_LoadCylinderOn->m_IsActive = ((arr[10] & 0x10) > 0 ? true : false); if (m_LoadCylinderOff)m_LoadCylinderOff->m_IsActive = ((arr[10] & 0x20) > 0 ? true : false); m_PowderPosition5->m_IsActive = ((arr[10] & 0x40) > 0 ? true : false); m_PowderPosition4->m_IsActive = ((arr[10] & 0x80) > 0 ? true : false); m_PowderPosition3->m_IsActive = ((arr[11] & 0x1) > 0 ? true : false); m_PowderPosition2->m_IsActive = ((arr[11] & 0x2) > 0 ? true : false); m_PowderPosition1->m_IsActive = ((arr[11] & 0x4) > 0 ? true : false); m_PowderSupplyHomeIndex->m_IsActive = ((arr[11] & 0x8) > 0 ? true : false); m_SafeDoorClose1->m_IsActive = ((arr[11] & 0x10) > 0 ? true : false); m_SafeDoorClose2->m_IsActive = ((arr[11] & 0x20) > 0 ? true : false); m_SafeDoorClose3->m_IsActive = ((arr[11] & 0x40) > 0 ? true : false); m_PrintableSignal->m_IsActive = ((arr[11] & 0x80) > 0 ? true : false); m_FanRunSignal->m_IsActive = ((arr[12] & 0x1) > 0 ? true : false); m_SupplyPipeBlock->m_IsActive = ((arr[12] & 0x2) > 0 ? true : false); m_LightPathChillerAlarm->m_IsActive = ((arr[12] & 0x4) > 0 ? true : false); m_PurifierChillerAlarm->m_IsActive = ((arr[12] & 0x8) > 0 ? true : false); int outputStartAddr = 24; m_ServoMotor->m_IsActive = ((arr[outputStartAddr] & 0x1) > 0 ? true : false); m_Laser->m_IsActive = ((arr[outputStartAddr] & 0x2) > 0 ? true : false); m_Laser1Enable->m_IsActive = ((arr[outputStartAddr] & 0x4) > 0 ? true : false); m_Laser1Start->m_IsActive = ((arr[outputStartAddr] & 0x8) > 0 ? true : false); m_Laser1Red->m_IsActive = ((arr[outputStartAddr] & 0x10) > 0 ? true : false); m_Laser2Enable->m_IsActive = ((arr[outputStartAddr] & 0x20) > 0 ? true : false); m_Laser2Start->m_IsActive = ((arr[outputStartAddr] & 0x40) > 0 ? true : false); m_Laser2Red->m_IsActive = ((arr[outputStartAddr] & 0x80) > 0 ? true : false); m_Laser3Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x1) > 0 ? true : false); m_Laser3Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x2) > 0 ? true : false); m_Laser3Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x4) > 0 ? true : false); m_Laser4Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x8) > 0 ? true : false); m_Laser4Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x10) > 0 ? true : false); m_Laser4Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x20) > 0 ? true : false); m_PrintDoorLock->m_IsActive = ((arr[outputStartAddr + 1] & 0x40) > 0 ? true : false); m_LightOn->m_IsActive = ((arr[outputStartAddr + 1] & 0x80) > 0 ? true : false); m_YellowLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x1) > 0 ? true : false); m_GreenLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x2) > 0 ? true : false); m_RedLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x4) > 0 ? true : false); m_Buzzer->m_IsActive = ((arr[outputStartAddr + 2] & 0x8) > 0 ? true : false); m_PrintAssistGas->m_IsActive = ((arr[outputStartAddr + 2] & 0x10) > 0 ? true : false); m_PrintAirEvacuation->m_IsActive = ((arr[outputStartAddr + 2] & 0x20) > 0 ? true : false); m_PressureRelease->m_IsActive = ((arr[outputStartAddr + 2] & 0x40) > 0 ? true : false); m_ScannerCool->m_IsActive = ((arr[outputStartAddr + 2] & 0x80) > 0 ? true : false); m_Heating->m_IsActive = ((arr[outputStartAddr + 3] & 0x1) > 0 ? true : false); m_StorageCarDropPowderValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x2) > 0 ? true : false); m_StorageCarAirHammer->m_IsActive = ((arr[outputStartAddr + 3] & 0x4) > 0 ? true : false); m_PrintPress->m_IsActive = ((arr[outputStartAddr + 3] & 0x8) > 0 ? true : false); m_PrintUnpress->m_IsActive = ((arr[outputStartAddr + 3] & 0x10) > 0 ? true : false); m_PrintJackUp->m_IsActive = ((arr[outputStartAddr + 3] & 0x20) > 0 ? true : false); m_PrintJackDown->m_IsActive = ((arr[outputStartAddr + 3] & 0x40) > 0 ? true : false); m_SupportCylinderEnable->m_IsActive = ((arr[outputStartAddr + 3] & 0x80) > 0 ? true : false); m_SupportCylinderDisable->m_IsActive = ((arr[outputStartAddr + 4] & 0x1) > 0 ? true : false); m_PrintHorizontalExtend->m_IsActive = ((arr[outputStartAddr + 4] & 0x2) > 0 ? true : false); m_PrintHorizontalRetract->m_IsActive = ((arr[outputStartAddr + 4] & 0x4) > 0 ? true : false); m_PrintVerticalExtend->m_IsActive = ((arr[outputStartAddr + 4] & 0x8) > 0 ? true : false); m_PrintVerticalRetract->m_IsActive = ((arr[outputStartAddr + 4] & 0x10) > 0 ? true : false); m_Print3RRelease->m_IsActive = ((arr[outputStartAddr + 4] & 0x20) > 0 ? true : false); m_PrintMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x40) > 0 ? true : false); m_PrintSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x80) > 0 ? true : false); m_Print3RDeoxygenSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x1) > 0 ? true : false); m_Print3RStablePressureSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x2) > 0 ? true : false); m_Print3RAirEvacuation->m_IsActive = ((arr[outputStartAddr + 5] & 0x4) > 0 ? true : false); m_PowderCleanerUpOpenGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x8) > 0 ? true : false); m_PowderCleanerUpCloseGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x10) > 0 ? true : false); m_PowderCleannerSupportCylinderEnable->m_IsActive = ((arr[outputStartAddr + 5] & 0x20) > 0 ? true : false); m_PowderCleannerSupportCylinderDisEnable->m_IsActive = ((arr[outputStartAddr + 5] & 0x40) > 0 ? true : false); m_PowderCleannerPressRelease->m_IsActive = ((arr[outputStartAddr + 5] & 0x80) > 0 ? true : false); m_StairsLock->m_IsActive = ((arr[outputStartAddr + 6] & 0x1) > 0 ? true : false); m_PowderCleannerLiftLock->m_IsActive = ((arr[outputStartAddr + 6] & 0x2) > 0 ? true : false); m_PowderCleannerBoxLock->m_IsActive = ((arr[outputStartAddr + 6] & 0x4) > 0 ? true : false); m_PowderCleannerBoxRelease->m_IsActive = ((arr[outputStartAddr + 6] & 0x8) > 0 ? true : false); m_PowderCleannerBoxPress->m_IsActive = ((arr[outputStartAddr + 6] & 0x10) > 0 ? true : false); m_PowderCleannerBoxUnpress->m_IsActive = ((arr[outputStartAddr + 6] & 0x20) > 0 ? true : false); m_AssistPushExtend->m_IsActive = ((arr[outputStartAddr + 6] & 0x40) > 0 ? true : false); m_Clean3RRelease->m_IsActive = ((arr[outputStartAddr + 6] & 0x80) > 0 ? true : false); m_CleanMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x1) > 0 ? true : false); m_CleanSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x2) > 0 ? true : false); m_CleanCabinArriveLamp->m_IsActive = ((arr[outputStartAddr + 7] & 0x4) > 0 ? true : false); m_LoadPinInserOn->m_IsActive = ((arr[outputStartAddr + 7] & 0x8) > 0 ? true : false); m_PrintVacuumEnterSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x10) > 0 ? true : false); m_StorageCarDeoxygenSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x20) > 0 ? true : false); m_StorageCarEvacuationSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x40) > 0 ? true : false); m_PurifierCoolerPower->m_IsActive = ((arr[outputStartAddr + 7] & 0x80) > 0 ? true : false); bitset<8> doorState; doorState.reset(); doorState[0] = m_SafeDoorClose1->m_IsActive; doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; m_SafeDoorState = doorState.to_ulong(); } void IO_1000_V1::Init(map& ioCfgMap) { m_ServoMotor = ioCfgMap["ServoMotor"]; //伺服电源 m_Laser = ioCfgMap["Laser"]; //激光器 m_Laser1Enable = ioCfgMap["Laser1Enable"]; //激光1使能 m_Laser1Start = ioCfgMap["Laser1Start"]; //激光1启动 m_Laser1Red = ioCfgMap["Laser1Red"]; //激光1红光 m_Laser2Enable = ioCfgMap["Laser2Enable"]; //激光2使能 m_Laser2Start = ioCfgMap["Laser2Start"]; //激光2启动 m_Laser2Red = ioCfgMap["Laser2Red"]; //激光2红光 m_Laser3Enable = ioCfgMap["Laser3Enable"]; //激光3使能 m_Laser3Start = ioCfgMap["Laser3Start"]; //激光3启动 m_Laser3Red = ioCfgMap["Laser3Red"]; //激光3红光 m_Laser4Enable = ioCfgMap["Laser4Enable"]; //激光4使能 m_Laser4Start = ioCfgMap["Laser4Start"]; //激光4启动 m_Laser4Red = ioCfgMap["Laser4Red"]; //激光4红光 m_PrintDoorLock = ioCfgMap["PrintDoorLock"]; //打印舱门电锁 m_LightOn = ioCfgMap["LightOn"]; //照明 m_YellowLamp = ioCfgMap["YellowLamp"]; //黄灯 m_GreenLamp = ioCfgMap["GreenLamp"]; //绿灯 m_RedLamp = ioCfgMap["RedLamp"]; //红灯 m_Buzzer = ioCfgMap["Buzzer"]; //蜂鸣器 m_PrintAssistGas = ioCfgMap["PrintAssistGas"]; //辅助气 m_PrintAirEvacuation = ioCfgMap["PrintAirEvacuation"]; //排气阀 m_PressureRelease = ioCfgMap["PressureRelease"]; //压力释放 m_ScannerCool = ioCfgMap["ScannerCool"]; //振镜冷却 m_Heating = ioCfgMap["Heating"]; //加热 m_StorageCarDropPowderValve = ioCfgMap["StorageCarDropPowderValve"]; //存粉小车下粉阀 m_StorageCarAirHammer = ioCfgMap["StorageCarAirHammer"]; //存粉小车气锤 m_PrintPress = ioCfgMap["PrintPress"]; //打印位压紧 m_PrintUnpress = ioCfgMap["PrintUnpress"]; //打印位放松 m_PrintJackUp = ioCfgMap["PrintJackUp"]; //打印顶升气缸上升 m_PrintJackDown = ioCfgMap["PrintJackDown"]; //打印顶升气缸下降 m_SupportCylinderEnable = ioCfgMap["SupportCylinderEnable"]; //打印支撑撑起 m_SupportCylinderDisable = ioCfgMap["SupportCylinderDisable"]; //打印支撑避让 m_PrintHorizontalExtend = ioCfgMap["PrintHorizontalExtend"]; //打印位左右定位气缸伸出 m_PrintHorizontalRetract = ioCfgMap["PrintHorizontalRetract"]; //打印位左右定位气缸缩回 m_PrintVerticalExtend = ioCfgMap["PrintVerticalExtend"]; //打印位前后定位气缸伸出 m_PrintVerticalRetract = ioCfgMap["PrintVerticalRetract"]; //打印位前后定位气缸缩回 m_Print3RRelease = ioCfgMap["Print3RRelease"]; //打印3R夹具松开 m_PrintMainAxisBrake = ioCfgMap["PrintMainAxisBrake"]; //打印主轴刹车 m_PrintSlaveAxisBrake = ioCfgMap["PrintSlaveAxisBrake"]; //打印从轴刹车 m_Print3RDeoxygenSalve = ioCfgMap["Print3RDeoxygenSalve"]; //打印3R除氧进气阀 m_Print3RStablePressureSalve = ioCfgMap["Print3RStablePressureSalve"]; //打印3R稳压气阀 m_Print3RAirEvacuation = ioCfgMap["Print3RAirEvacuation"]; //打印3R除氧排气阀 m_PowderCleanerUpOpenGap = ioCfgMap["PowderCleanerUpOpenGap"]; //清粉箱上盖打开阀 m_PowderCleanerUpCloseGap = ioCfgMap["PowderCleanerUpCloseGap"]; //清粉箱上盖关闭阀 m_PowderCleannerSupportCylinderEnable = ioCfgMap["PowderCleannerSupportCylinderEnable"]; //清粉箱支撑气缸撑起 m_PowderCleannerSupportCylinderDisEnable = ioCfgMap["PowderCleannerSupportCylinderDisEnable"]; //清粉箱支撑气缸避让 m_PowderCleannerPressRelease = ioCfgMap["PowderCleannerPressRelease"]; //清粉箱压紧气缸松开 m_StairsLock = ioCfgMap["StairsLock"]; //楼梯电磁锁 m_PowderCleannerLiftLock = ioCfgMap["PowderCleannerLiftLock"]; //清粉升降电磁锁 m_PowderCleannerBoxLock = ioCfgMap["PowderCleannerBoxLock"]; //清粉箱缸体锁紧气缸锁紧 m_PowderCleannerBoxRelease = ioCfgMap["PowderCleannerBoxRelease"]; //清粉箱缸体锁紧气缸放松 m_PowderCleannerBoxPress = ioCfgMap["PowderCleannerBoxPress"]; //清粉位压紧气缸压紧 m_PowderCleannerBoxUnpress = ioCfgMap["PowderCleannerBoxUnpress"]; //清粉位压紧气缸放松 m_AssistPushExtend = ioCfgMap["AssistPushExtend"]; //辅助推动气缸伸出 m_Clean3RRelease = ioCfgMap["Clean3RRelease"]; //清粉3R夹具松开 m_CleanMainAxisBrake = ioCfgMap["CleanMainAxisBrake"]; //清粉主轴刹车 m_CleanSlaveAxisBrake = ioCfgMap["CleanSlaveAxisBrake"]; //清粉从轴刹车 m_CleanCabinArriveLamp = ioCfgMap["CleanCabinArriveLamp"]; //清粉舱体到位指示灯 m_LoadElectromagnet = ioCfgMap["LoadElectromagnet"]; //移载电磁铁 m_PrintVacuumEnterSlave = ioCfgMap["PrintVacuumEnterSlave"]; //打印室吸尘进气阀 m_StorageCarDeoxygenSlave = ioCfgMap["StorageCarDeoxygenSlave"]; //存粉小车除氧进气阀 m_StorageCarEvacuationSlave = ioCfgMap["StorageCarEvacuationSlave"]; //存粉小车除氧排气阀 m_PurifierCoolerPower = ioCfgMap["PurifierCoolerPower"]; //净化器冷水机电源 m_SystemStop = ioCfgMap["SystemStop"]; //系统急停 m_HighPressureCheck = ioCfgMap["HighPressureCheck"]; //高压报警 m_ProtectGasCheck = ioCfgMap["ProtectGasCheck"]; //低压报警 m_PowerDown = ioCfgMap["PowerDown"]; //外部断电 m_PowerOK = ioCfgMap["PowerOK"]; //电源正常 m_OutDoorOxygenAlarm = ioCfgMap["OutDoorOxygenAlarm"]; //室外测氧报警 m_LaserChillerAlarm = ioCfgMap["LaserChillerAlarm"]; //激光器冷水机报警 m_BusAirSwitchClose = ioCfgMap["BusAirSwitchClose"]; //总空开触点 m_ExtMachineAirSwitchClose = ioCfgMap["ExtMachineAirSwitchClose"]; //外部设备空开触点 m_HeattingAirSwitchClose = ioCfgMap["HeattingAirSwitchClose"]; //加热空开触点 m_LaserAirSwitchClose = ioCfgMap["LaserAirSwitchClose"]; //激光空开触点 m_ServoAirSwitchClose = ioCfgMap["ServoAirSwitchClose"]; //伺服空开触点 m_Laser1Alarm = ioCfgMap["Laser1Alarm"]; //激光器1报警 m_Laser2Alarm = ioCfgMap["Laser2Alarm"]; //激光器2报警 m_Laser3Alarm = ioCfgMap["Laser3Alarm"]; //激光器3报警 m_Laser4Alarm = ioCfgMap["Laser4Alarm"]; //激光器4报警 m_StorageCarUpLimit = ioCfgMap["StorageCarUpLimit"]; //存粉小车上限 m_StorageCarDownLimit = ioCfgMap["StorageCarDownLimit"]; //存粉小车下限 m_StorageCarConnect = ioCfgMap["StorageCarConnect"]; //存粉小车连接 m_StorageCarJarConnect = ioCfgMap["StorageCarJarConnect"]; //存粉小车粉罐连接 m_StorageCarJarUpLimit = ioCfgMap["StorageCarJarUpLimit"]; //存粉小车粉罐上限 m_SSRInput = ioCfgMap["SSRInput"]; //加热输入检测 m_SSROutput = ioCfgMap["SSROutput"]; //加热输出检测 m_PrintMainAxisUpLimit = ioCfgMap["PrintMainAxisUpLimit"]; //打印主轴上限位 m_PrintMainAxisDownLimit = ioCfgMap["PrintMainAxisDownLimit"]; //打印主轴下限位 m_PrintMainHomeIndex = ioCfgMap["PrintMainHomeIndex"]; //打印主轴原点 m_PrintSlaveAxisUpLimit = ioCfgMap["PrintSlaveAxisUpLimit"]; //打印从轴上限位 m_PrintSlaveAxisDownLimit = ioCfgMap["PrintSlaveAxisDownLimit"]; //打印从轴下限位 m_PrintSlaveHomeIndex = ioCfgMap["PrintSlaveHomeIndex"]; //打印从轴原点 m_Print3RHookOffPos = ioCfgMap["Print3RHookOffPos"]; //打印3R脱离位 m_Print3RCylinderContact = ioCfgMap["Print3RCylinderContact"]; //打印3R与缸体接触感应 m_Print3RLeakOn = ioCfgMap["Print3RLeakOn"]; //打印3R漏气检测 m_PrintPressOn = ioCfgMap["PrintPressOn"]; //打印位压紧气缸压紧位 m_PrintPressOff = ioCfgMap["PrintPressOff"]; //打印位压紧气缸松开位 m_PrintJackUpOn = ioCfgMap["PrintJackUpOn"]; //打印位顶升气缸顶起位 m_PrintJackUpOff = ioCfgMap["PrintJackUpOff"]; //打印位顶升气缸下降位 m_PrintSupportCylinderOn = ioCfgMap["PrintSupportCylinderOn"]; //打印位支撑气缸支撑位 m_PrintSupportCylinderOff = ioCfgMap["PrintSupportCylinderOff"]; //打印位支撑气缸避让位 m_PrintHorizontalExtendOn = ioCfgMap["PrintHorizontalExtendOn"]; //打印位左右定位气缸伸出位 m_PrintHorizontalExtendOff = ioCfgMap["PrintHorizontalExtendOff"]; //打印位左右定位气缸缩回位 m_PrintVerticalExtendOn = ioCfgMap["PrintVerticalExtendOn"]; //打印位前后定位气缸伸出位 m_PrintVerticalExtendOff = ioCfgMap["PrintVerticalExtendOff"]; //打印位前后定位气缸缩回位 m_TrackPrintPos = ioCfgMap["TrackPrintPos"]; //轨道打印位 m_PrintCylinderOn = ioCfgMap["PrintCylinderOn"]; //打印位缸体检测 m_CleannerMainAxisUpLimit = ioCfgMap["CleannerMainAxisUpLimit"]; //清粉主轴上限位 m_CleannerMainAxisDownLimit = ioCfgMap["CleannerMainAxisDownLimit"]; //清粉主轴下限位 m_CleannerMainHomeIndex = ioCfgMap["CleannerMainHomeIndex"]; //清粉主轴原点 m_CleannerSlaveAxisUpLimit = ioCfgMap["CleannerSlaveAxisUpLimit"]; //清粉从轴上限位 m_CleannerSlaveAxisDownLimit = ioCfgMap["CleannerSlaveAxisDownLimit"]; //清粉从轴下限位 m_CleannerSlaveAxisHomeIndex = ioCfgMap["CleannerSlaveAxisHomeIndex"]; //清粉从轴原点 m_CleannerLiftTrackContact = ioCfgMap["CleannerLiftTrackContact"]; //清粉升降与轨道对接位 m_TrackCleanPos = ioCfgMap["TrackCleanPos"]; //轨道清粉位 m_CleannerUpButton = ioCfgMap["CleannerUpButton"]; //清粉上升按钮 m_CleannerDownButton = ioCfgMap["CleannerDownButton"]; //清粉下降按钮 m_CleannerMotionStop = ioCfgMap["CleannerMotionStop"]; //清粉升降急停 m_UpperLidButton = ioCfgMap["UpperLidButton"]; //上盖开关按钮 m_VacuumStartup = ioCfgMap["VacuumStartup"]; //吸尘启动按钮 m_CleannerCarbinDoorClose = ioCfgMap["CleannerCarbinDoorClose"]; //清粉舱门感应 m_UpperLidOpen = ioCfgMap["UpperLidOpen"]; //上盖气缸开位 m_UpperLidClose = ioCfgMap["UpperLidClose"]; //上盖气缸关位 m_CleannerBoxSupportOn = ioCfgMap["CleannerBoxSupportOn"]; //清粉箱支持气缸支持位 m_CleannerBoxSupportOff = ioCfgMap["CleannerBoxSupportOff"]; //清粉箱支持气缸避让位 m_CleannerBoxCylinderPressOn = ioCfgMap["CleannerBoxCylinderPressOn"]; //清粉箱压紧气缸压紧位 m_CleannerBoxCylinderPressOff = ioCfgMap["CleannerBoxCylinderPressOff"]; //清粉箱压紧气缸放松位 m_StairsLockOn = ioCfgMap["StairsLockOn"]; //楼梯电磁锁按钮 m_CleannerLiftLockOn = ioCfgMap["CleannerLiftLockOn"]; //清粉升降电磁锁按钮 m_CleannerBoxLockOn = ioCfgMap["CleannerBoxLockOn"]; //清粉箱缸体锁紧气缸锁紧位 m_CleannerBoxLockOff = ioCfgMap["CleannerBoxLockOff"]; //清粉箱缸体锁紧气缸放松位 m_CleannerBoxOn = ioCfgMap["CleannerBoxOn"]; //清粉箱缸体接触感应 m_CleannerPressOn = ioCfgMap["CleannerPressOn"]; //清粉位压紧气缸压紧位 m_CleannerPressOff = ioCfgMap["CleannerPressOff"]; //清粉位压紧气缸放松位 m_AssistPushExtendOn = ioCfgMap["AssistPushExtendOn"]; //辅助推动气缸伸出位 m_AssistPushExtendOff = ioCfgMap["AssistPushExtendOff"]; //辅助推动气缸缩回位 m_Clean3RContact = ioCfgMap["Clean3RContact"]; //清粉3R对接位 m_Clean3RCylinderContact = ioCfgMap["Clean3RCylinderContact"]; //清粉3R与缸体接触感应 m_Clean3RLeakOn = ioCfgMap["Clean3RLeakOn"]; //清粉3R漏气检测 m_ArmFrontLimit = ioCfgMap["ArmFrontLimit"]; //铺粉轴前限位 m_ArmBackLimit = ioCfgMap["ArmBackLimit"]; //铺粉轴后限位 m_ArmHomeIndex = ioCfgMap["ArmHomeIndex"]; //铺粉轴原点 m_LoadLeftLimit = ioCfgMap["LoadLeftLimit"]; //移载轴左限位 m_LoadRgithLimit = ioCfgMap["LoadRgithLimit"]; //移载轴右限位 m_LoadHomeIndex = ioCfgMap["LoadHomeIndex"]; //移载轴原点 m_LoadSearchEdgeOn = ioCfgMap["LoadSearchEdgeOn"]; //移载轴寻边感应 m_PowderPosition1 = ioCfgMap["PowderPosition1"]; //粉仓粉位1 m_PowderPosition2 = ioCfgMap["PowderPosition2"]; //粉仓粉位2 m_PowderPosition3 = ioCfgMap["PowderPosition3"]; //粉仓粉位3 m_PowderPosition4 = ioCfgMap["PowderPosition4"]; //粉仓粉位4 m_PowderPosition5 = ioCfgMap["PowderPosition5"]; //粉仓粉位5 m_PowderSupplyHomeIndex = ioCfgMap["PowderSupplyHomeIndex"]; //供粉转轴原点 m_SafeDoorClose1 = ioCfgMap["SafeDoorClose1"]; //安全门锁信号1 m_SafeDoorClose2 = ioCfgMap["SafeDoorClose2"]; //安全门锁信号2 m_SafeDoorClose3 = ioCfgMap["SafeDoorClose3"]; //安全门锁信号3 m_PrintableSignal = ioCfgMap["PrintableSignal"]; //允许打印信号 m_FanRunSignal = ioCfgMap["FanRunSignal"]; //风机运行信号 m_SupplyPipeBlock = ioCfgMap["SupplyPipeBlock"]; //吸筛送管道堵塞感应 m_LightPathChillerAlarm = ioCfgMap["LightPathChillerAlarm"]; //光路冷水机报警 m_PurifierChillerAlarm = ioCfgMap["PurifierChillerAlarm"]; //净化器冷水机报警 } void IO_1000_V1::Update(unsigned char* arr) { m_SystemStop->m_IsActive = !((arr[0] & 0x1) > 0 ? true : false); m_HighPressureCheck->m_IsActive = ((arr[0] & 0x2) > 0 ? true : false); m_ProtectGasCheck->m_IsActive = ((arr[0] & 0x4) > 0 ? true : false); m_PowerDown->m_IsActive = ((arr[0] & 0x8) > 0 ? true : false); m_PowerOK->m_IsActive = ((arr[0] & 0x10) > 0 ? true : false); m_OutDoorOxygenAlarm->m_IsActive = ((arr[0] & 0x20) > 0 ? true : false); m_LaserChillerAlarm->m_IsActive = ((arr[0] & 0x40) > 0 ? true : false); m_BusAirSwitchClose->m_IsActive = ((arr[0] & 0x80) > 0 ? true : false); m_ExtMachineAirSwitchClose->m_IsActive = ((arr[1] & 0x1) > 0 ? true : false); m_HeattingAirSwitchClose->m_IsActive = ((arr[1] & 0x2) > 0 ? true : false); m_LaserAirSwitchClose->m_IsActive = ((arr[1] & 0x4) > 0 ? true : false); m_ServoAirSwitchClose->m_IsActive = ((arr[1] & 0x8) > 0 ? true : false); m_Laser1Alarm->m_IsActive = ((arr[1] & 0x10) > 0 ? true : false); m_Laser2Alarm->m_IsActive = ((arr[1] & 0x20) > 0 ? true : false); m_Laser3Alarm->m_IsActive = ((arr[1] & 0x40) > 0 ? true : false); m_Laser4Alarm->m_IsActive = ((arr[1] & 0x80) > 0 ? true : false); m_StorageCarUpLimit->m_IsActive = ((arr[2] & 0x1) > 0 ? true : false); m_StorageCarDownLimit->m_IsActive = ((arr[2] & 0x2) > 0 ? true : false); m_StorageCarConnect->m_IsActive = ((arr[2] & 0x4) > 0 ? true : false); m_StorageCarJarConnect->m_IsActive = ((arr[2] & 0x8) > 0 ? true : false); m_StorageCarJarUpLimit->m_IsActive = ((arr[2] & 0x10) > 0 ? true : false); m_SSRInput->m_IsActive = ((arr[2] & 0x20) > 0 ? true : false); m_SSROutput->m_IsActive = ((arr[2] & 0x40) > 0 ? true : false); m_PrintMainAxisUpLimit->m_IsActive = !((arr[2] & 0x80) > 0 ? true : false); m_PrintMainAxisDownLimit->m_IsActive = !((arr[3] & 0x1) > 0 ? true : false); m_PrintMainHomeIndex->m_IsActive = ((arr[3] & 0x2) > 0 ? true : false); m_PrintSlaveAxisUpLimit->m_IsActive = !((arr[3] & 0x4) > 0 ? true : false); m_PrintSlaveAxisDownLimit->m_IsActive = !((arr[3] & 0x8) > 0 ? true : false); m_PrintSlaveHomeIndex->m_IsActive = ((arr[3] & 0x10) > 0 ? true : false); m_Print3RHookOffPos->m_IsActive = ((arr[3] & 0x20) > 0 ? true : false); m_Print3RCylinderContact->m_IsActive = ((arr[3] & 0x40) > 0 ? true : false); m_Print3RLeakOn->m_IsActive = ((arr[3] & 0x80) > 0 ? true : false); m_PrintPressOn->m_IsActive = ((arr[4] & 0x1) > 0 ? true : false); m_PrintPressOff->m_IsActive = ((arr[4] & 0x2) > 0 ? true : false); m_PrintJackUpOn->m_IsActive = ((arr[4] & 0x4) > 0 ? true : false); m_PrintJackUpOff->m_IsActive = ((arr[4] & 0x8) > 0 ? true : false); m_PrintSupportCylinderOn->m_IsActive = ((arr[4] & 0x10) > 0 ? true : false); m_PrintSupportCylinderOff->m_IsActive = ((arr[4] & 0x20) > 0 ? true : false); m_PrintHorizontalExtendOn->m_IsActive = ((arr[4] & 0x40) > 0 ? true : false); m_PrintHorizontalExtendOff->m_IsActive = ((arr[4] & 0x80) > 0 ? true : false); m_PrintVerticalExtendOn->m_IsActive = ((arr[5] & 0x1) > 0 ? true : false); m_PrintVerticalExtendOff->m_IsActive = ((arr[5] & 0x2) > 0 ? true : false); m_TrackPrintPos->m_IsActive = ((arr[5] & 0x4) > 0 ? true : false); m_PrintCylinderOn->m_IsActive = ((arr[5] & 0x8) > 0 ? true : false); m_CleannerMainAxisUpLimit->m_IsActive = !((arr[5] & 0x10) > 0 ? true : false); m_CleannerMainAxisDownLimit->m_IsActive = !((arr[5] & 0x20) > 0 ? true : false); m_CleannerMainHomeIndex->m_IsActive = ((arr[5] & 0x40) > 0 ? true : false); m_CleannerSlaveAxisUpLimit->m_IsActive = !((arr[5] & 0x80) > 0 ? true : false); m_CleannerSlaveAxisDownLimit->m_IsActive = !((arr[6] & 0x1) > 0 ? true : false); m_CleannerSlaveAxisHomeIndex->m_IsActive = ((arr[6] & 0x2) > 0 ? true : false); m_CleannerLiftTrackContact->m_IsActive = ((arr[6] & 0x4) > 0 ? true : false); m_TrackCleanPos->m_IsActive = ((arr[6] & 0x8) > 0 ? true : false); m_CleannerUpButton->m_IsActive = ((arr[6] & 0x10) > 0 ? true : false); m_CleannerDownButton->m_IsActive = ((arr[6] & 0x20) > 0 ? true : false); m_CleannerMotionStop->m_IsActive = !((arr[6] & 0x80) > 0 ? true : false); m_UpperLidButton->m_IsActive = ((arr[7] & 0x1) > 0 ? true : false); m_VacuumStartup->m_IsActive = ((arr[7] & 0x2) > 0 ? true : false); m_CleannerCarbinDoorClose->m_IsActive = ((arr[7] & 0x4) > 0 ? true : false); m_UpperLidOpen->m_IsActive = ((arr[7] & 0x8) > 0 ? true : false); m_UpperLidClose->m_IsActive = ((arr[7] & 0x10) > 0 ? true : false); m_CleannerBoxSupportOn->m_IsActive = ((arr[7] & 0x20) > 0 ? true : false); m_CleannerBoxSupportOff->m_IsActive = ((arr[7] & 0x40) > 0 ? true : false); m_CleannerBoxCylinderPressOn->m_IsActive = ((arr[7] & 0x80) > 0 ? true : false); m_CleannerBoxCylinderPressOff->m_IsActive = ((arr[8] & 0x1) > 0 ? true : false); m_StairsLockOn->m_IsActive = ((arr[8] & 0x2) > 0 ? true : false); m_CleannerLiftLockOn->m_IsActive = ((arr[8] & 0x4) > 0 ? true : false); m_CleannerBoxLockOn->m_IsActive = ((arr[8] & 0x8) > 0 ? true : false); m_CleannerBoxLockOff->m_IsActive = ((arr[8] & 0x10) > 0 ? true : false); m_CleannerBoxOn->m_IsActive = ((arr[8] & 0x20) > 0 ? true : false); m_CleannerPressOn->m_IsActive = ((arr[8] & 0x40) > 0 ? true : false); m_CleannerPressOff->m_IsActive = ((arr[8] & 0x80) > 0 ? true : false); m_AssistPushExtendOn->m_IsActive = ((arr[9] & 0x1) > 0 ? true : false); m_AssistPushExtendOff->m_IsActive = ((arr[9] & 0x2) > 0 ? true : false); m_Clean3RContact->m_IsActive = ((arr[9] & 0x4) > 0 ? true : false); m_Clean3RCylinderContact->m_IsActive = ((arr[9] & 0x8) > 0 ? true : false); m_Clean3RLeakOn->m_IsActive = ((arr[9] & 0x10) > 0 ? true : false); m_ArmFrontLimit->m_IsActive = !((arr[9] & 0x20) > 0 ? true : false); m_ArmBackLimit->m_IsActive = !((arr[9] & 0x40) > 0 ? true : false); m_ArmHomeIndex->m_IsActive = ((arr[9] & 0x80) > 0 ? true : false); m_LoadLeftLimit->m_IsActive = !((arr[10] & 0x1) > 0 ? true : false); m_LoadRgithLimit->m_IsActive = !((arr[10] & 0x2) > 0 ? true : false); m_LoadHomeIndex->m_IsActive = ((arr[10] & 0x4) > 0 ? true : false); m_LoadSearchEdgeOn->m_IsActive = ((arr[10] & 0x8) > 0 ? true : false); m_PowderPosition5->m_IsActive = ((arr[10] & 0x40) > 0 ? true : false); m_PowderPosition4->m_IsActive = ((arr[10] & 0x80) > 0 ? true : false); m_PowderPosition3->m_IsActive = ((arr[11] & 0x1) > 0 ? true : false); m_PowderPosition2->m_IsActive = ((arr[11] & 0x2) > 0 ? true : false); m_PowderPosition1->m_IsActive = ((arr[11] & 0x4) > 0 ? true : false); m_PowderSupplyHomeIndex->m_IsActive = ((arr[11] & 0x8) > 0 ? true : false); m_SafeDoorClose1->m_IsActive = ((arr[11] & 0x10) > 0 ? true : false); m_SafeDoorClose2->m_IsActive = ((arr[11] & 0x20) > 0 ? true : false); m_SafeDoorClose3->m_IsActive = ((arr[11] & 0x40) > 0 ? true : false); m_PrintableSignal->m_IsActive = ((arr[11] & 0x80) > 0 ? true : false); m_FanRunSignal->m_IsActive = ((arr[12] & 0x1) > 0 ? true : false); m_SupplyPipeBlock->m_IsActive = ((arr[12] & 0x2) > 0 ? true : false); m_LightPathChillerAlarm->m_IsActive = ((arr[12] & 0x4) > 0 ? true : false); m_PurifierChillerAlarm->m_IsActive = ((arr[12] & 0x8) > 0 ? true : false); int outputStartAddr = 24; m_ServoMotor->m_IsActive = ((arr[outputStartAddr] & 0x1) > 0 ? true : false); m_Laser->m_IsActive = ((arr[outputStartAddr] & 0x2) > 0 ? true : false); m_Laser1Enable->m_IsActive = ((arr[outputStartAddr] & 0x4) > 0 ? true : false); m_Laser1Start->m_IsActive = ((arr[outputStartAddr] & 0x8) > 0 ? true : false); m_Laser1Red->m_IsActive = ((arr[outputStartAddr] & 0x10) > 0 ? true : false); m_Laser2Enable->m_IsActive = ((arr[outputStartAddr] & 0x20) > 0 ? true : false); m_Laser2Start->m_IsActive = ((arr[outputStartAddr] & 0x40) > 0 ? true : false); m_Laser2Red->m_IsActive = ((arr[outputStartAddr] & 0x80) > 0 ? true : false); m_Laser3Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x1) > 0 ? true : false); m_Laser3Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x2) > 0 ? true : false); m_Laser3Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x4) > 0 ? true : false); m_Laser4Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x8) > 0 ? true : false); m_Laser4Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x10) > 0 ? true : false); m_Laser4Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x20) > 0 ? true : false); m_PrintDoorLock->m_IsActive = !((arr[outputStartAddr + 1] & 0x40) > 0 ? true : false); m_LightOn->m_IsActive = ((arr[outputStartAddr + 1] & 0x80) > 0 ? true : false); m_YellowLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x1) > 0 ? true : false); m_GreenLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x2) > 0 ? true : false); m_RedLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x4) > 0 ? true : false); m_Buzzer->m_IsActive = ((arr[outputStartAddr + 2] & 0x8) > 0 ? true : false); m_PrintAssistGas->m_IsActive = ((arr[outputStartAddr + 2] & 0x10) > 0 ? true : false); m_PrintAirEvacuation->m_IsActive = ((arr[outputStartAddr + 2] & 0x20) > 0 ? true : false); m_PressureRelease->m_IsActive = ((arr[outputStartAddr + 2] & 0x40) > 0 ? true : false); m_ScannerCool->m_IsActive = ((arr[outputStartAddr + 2] & 0x80) > 0 ? true : false); m_Heating->m_IsActive = ((arr[outputStartAddr + 3] & 0x1) > 0 ? true : false); m_StorageCarDropPowderValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x2) > 0 ? true : false); m_StorageCarAirHammer->m_IsActive = ((arr[outputStartAddr + 3] & 0x4) > 0 ? true : false); m_PrintPress->m_IsActive = ((arr[outputStartAddr + 3] & 0x8) > 0 ? true : false); m_PrintUnpress->m_IsActive = ((arr[outputStartAddr + 3] & 0x10) > 0 ? true : false); m_PrintJackUp->m_IsActive = ((arr[outputStartAddr + 3] & 0x20) > 0 ? true : false); m_PrintJackDown->m_IsActive = ((arr[outputStartAddr + 3] & 0x40) > 0 ? true : false); m_SupportCylinderEnable->m_IsActive = ((arr[outputStartAddr + 3] & 0x80) > 0 ? true : false); m_SupportCylinderDisable->m_IsActive = ((arr[outputStartAddr + 4] & 0x1) > 0 ? true : false); m_PrintHorizontalExtend->m_IsActive = ((arr[outputStartAddr + 4] & 0x2) > 0 ? true : false); m_PrintHorizontalRetract->m_IsActive = ((arr[outputStartAddr + 4] & 0x4) > 0 ? true : false); m_PrintVerticalExtend->m_IsActive = ((arr[outputStartAddr + 4] & 0x8) > 0 ? true : false); m_PrintVerticalRetract->m_IsActive = ((arr[outputStartAddr + 4] & 0x10) > 0 ? true : false); m_Print3RRelease->m_IsActive = ((arr[outputStartAddr + 4] & 0x20) > 0 ? true : false); m_PrintMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x40) > 0 ? true : false); m_PrintSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x80) > 0 ? true : false); m_Print3RDeoxygenSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x1) > 0 ? true : false); m_Print3RStablePressureSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x2) > 0 ? true : false); m_Print3RAirEvacuation->m_IsActive = ((arr[outputStartAddr + 5] & 0x4) > 0 ? true : false); m_PowderCleanerUpOpenGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x8) > 0 ? true : false); m_PowderCleanerUpCloseGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x10) > 0 ? true : false); m_PowderCleannerSupportCylinderEnable->m_IsActive = ((arr[outputStartAddr + 5] & 0x20) > 0 ? true : false); m_PowderCleannerSupportCylinderDisEnable->m_IsActive = ((arr[outputStartAddr + 5] & 0x40) > 0 ? true : false); m_PowderCleannerPressRelease->m_IsActive = ((arr[outputStartAddr + 5] & 0x80) > 0 ? true : false); m_StairsLock->m_IsActive = ((arr[outputStartAddr + 6] & 0x1) > 0 ? true : false); m_PowderCleannerLiftLock->m_IsActive = ((arr[outputStartAddr + 6] & 0x2) > 0 ? true : false); m_PowderCleannerBoxLock->m_IsActive = ((arr[outputStartAddr + 6] & 0x4) > 0 ? true : false); m_PowderCleannerBoxRelease->m_IsActive = ((arr[outputStartAddr + 6] & 0x8) > 0 ? true : false); m_PowderCleannerBoxPress->m_IsActive = ((arr[outputStartAddr + 6] & 0x10) > 0 ? true : false); m_PowderCleannerBoxUnpress->m_IsActive = ((arr[outputStartAddr + 6] & 0x20) > 0 ? true : false); m_AssistPushExtend->m_IsActive = ((arr[outputStartAddr + 6] & 0x40) > 0 ? true : false); m_Clean3RRelease->m_IsActive = ((arr[outputStartAddr + 6] & 0x80) > 0 ? true : false); m_CleanMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x1) > 0 ? true : false); m_CleanSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x2) > 0 ? true : false); m_CleanCabinArriveLamp->m_IsActive = ((arr[outputStartAddr + 7] & 0x4) > 0 ? true : false); m_LoadElectromagnet->m_IsActive = ((arr[outputStartAddr + 7] & 0x8) > 0 ? true : false); m_PrintVacuumEnterSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x10) > 0 ? true : false); m_StorageCarDeoxygenSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x20) > 0 ? true : false); m_StorageCarEvacuationSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x40) > 0 ? true : false); m_PurifierCoolerPower->m_IsActive = ((arr[outputStartAddr + 7] & 0x80) > 0 ? true : false); bitset<8> doorState; doorState.reset(); doorState[0] = m_SafeDoorClose1->m_IsActive; doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; m_SafeDoorState = doorState.to_ulong(); } void IO_1000_V2::Init(map& ioCfgMap) { m_ServoMotor = ioCfgMap["ServoMotor"]; //伺服电源 m_Laser = ioCfgMap["Laser"]; //激光器 m_Laser1Enable = ioCfgMap["Laser1Enable"]; //激光1使能 m_Laser1Start = ioCfgMap["Laser1Start"]; //激光1启动 m_Laser1Red = ioCfgMap["Laser1Red"]; //激光1红光 m_Laser2Enable = ioCfgMap["Laser2Enable"]; //激光2使能 m_Laser2Start = ioCfgMap["Laser2Start"]; //激光2启动 m_Laser2Red = ioCfgMap["Laser2Red"]; //激光2红光 m_Laser3Enable = ioCfgMap["Laser3Enable"]; //激光3使能 m_Laser3Start = ioCfgMap["Laser3Start"]; //激光3启动 m_Laser3Red = ioCfgMap["Laser3Red"]; //激光3红光 m_Laser4Enable = ioCfgMap["Laser4Enable"]; //激光4使能 m_Laser4Start = ioCfgMap["Laser4Start"]; //激光4启动 m_Laser4Red = ioCfgMap["Laser4Red"]; //激光4红光 m_PrintDoorLock = ioCfgMap["PrintDoorLock"]; //打印舱门电锁 m_LightOn = ioCfgMap["LightOn"]; //照明 m_YellowLamp = ioCfgMap["YellowLamp"]; //黄灯 m_GreenLamp = ioCfgMap["GreenLamp"]; //绿灯 m_RedLamp = ioCfgMap["RedLamp"]; //红灯 m_Buzzer = ioCfgMap["Buzzer"]; //蜂鸣器 m_PrintAssistGas = ioCfgMap["PrintAssistGas"]; //辅助气 m_PrintAirEvacuation = ioCfgMap["PrintAirEvacuation"]; //排气阀 m_PressureRelease = ioCfgMap["PressureRelease"]; //压力释放 m_ScannerCool = ioCfgMap["ScannerCool"]; //振镜冷却 m_Heating = ioCfgMap["Heating"]; //加热 m_PrintStorageCar1DropPowderValve = ioCfgMap["PrintStorageCar1DropPowderValve"]; //打印存粉小车1下粉阀 m_PrintSlot1PipeValve = ioCfgMap["PrintSlot1PipeValve"]; //打印槽1管道阀 m_PrintPress = ioCfgMap["PrintPress"]; //打印位压紧 m_PrintUnpress = ioCfgMap["PrintUnpress"]; //打印位放松 m_PrintJackUp = ioCfgMap["PrintJackUp"]; //打印顶升气缸上升 m_PrintJackDown = ioCfgMap["PrintJackDown"]; //打印顶升气缸下降 m_SupportCylinderEnable = ioCfgMap["SupportCylinderEnable"]; //打印支撑撑起 m_SupportCylinderDisable = ioCfgMap["SupportCylinderDisable"]; //打印支撑避让 m_PrintHorizontalExtend = ioCfgMap["PrintHorizontalExtend"]; //打印位左右定位气缸伸出 m_PrintHorizontalRetract = ioCfgMap["PrintHorizontalRetract"]; //打印位左右定位气缸缩回 m_Print3RRelease = ioCfgMap["Print3RRelease"]; //打印3R夹具松开 m_PrintMainAxisBrake = ioCfgMap["PrintMainAxisBrake"]; //打印主轴刹车 m_PrintSlaveAxisBrake = ioCfgMap["PrintSlaveAxisBrake"]; //打印从轴刹车 m_Print3RDeoxygenSalve = ioCfgMap["Print3RDeoxygenSalve"]; //打印3R除氧进气阀 m_Print3RStablePressureSalve = ioCfgMap["Print3RStablePressureSalve"]; //打印3R稳压气阀 m_Print3RAirEvacuation = ioCfgMap["Print3RAirEvacuation"]; //打印3R除氧排气阀 m_PowderCleanerUpOpenGap = ioCfgMap["PowderCleanerUpOpenGap"]; //清粉箱上盖打开阀 m_PowderCleanerUpCloseGap = ioCfgMap["PowderCleanerUpCloseGap"]; //清粉箱上盖关闭阀 m_CleanCylinderPressing = ioCfgMap["CleanCylinderPressing"]; //清粉箱缸体压紧 m_CleanCylinderRelease = ioCfgMap["CleanCylinderRelease"]; //清粉箱缸体松开 m_CleanBoxDeoxygenValve = ioCfgMap["CleanBoxDeoxygenValve"]; //清粉箱除氧进气阀 m_CleanBoxEvacuationValve = ioCfgMap["CleanBoxEvacuationValve"]; //清粉箱除氧排气阀 m_CleanBoxUpHorOpen = ioCfgMap["CleanBoxUpHorOpen"]; m_CleanBoxUpHorClose = ioCfgMap["CleanBoxUpHorClose"]; m_PowderCleannerBoxPress = ioCfgMap["PowderCleannerBoxPress"]; //清粉位压紧气缸压紧 m_PowderCleannerBoxUnpress = ioCfgMap["PowderCleannerBoxUnpress"]; //清粉位压紧气缸放松 m_Clean3RRelease = ioCfgMap["Clean3RRelease"]; //清粉3R夹具松开 m_CleanMainAxisBrake = ioCfgMap["CleanMainAxisBrake"]; //清粉主轴刹车 m_CleanSlaveAxisBrake = ioCfgMap["CleanSlaveAxisBrake"]; //清粉从轴刹车 m_CleanCabinArriveLamp = ioCfgMap["CleanCabinArriveLamp"]; //脱离舱体到位指示灯 m_LoadElectromagnet = ioCfgMap["LoadElectromagnet"]; //移载电磁铁 m_PrintVacuumEnterSlave = ioCfgMap["PrintVacuumEnterSlave"]; //打印室吸尘进气阀 m_PrintStorageCar1DeoxygenValve = ioCfgMap["PrintStorageCar1DeoxygenValve"]; //打印存粉小车1除氧进气阀 m_PrintStorageCar1EvacuationValve = ioCfgMap["PrintStorageCar1EvacuationValve"]; //打印存粉小车1除氧排气阀 m_PurifierCoolerPower = ioCfgMap["PurifierCoolerPower"]; //净化器冷水机电源 m_PrintStorageCar2DropPowderValve = ioCfgMap["PrintStorageCar2DropPowderValve"]; //打印存粉小车2下粉阀 m_PrintStorageCar2DeoxygenValve = ioCfgMap["PrintStorageCar2DeoxygenValve"]; //打印存粉小车2除氧进气阀 m_PrintStorageCar2EvacuationValve = ioCfgMap["PrintStorageCar2EvacuationValve"]; //打印存粉小车2除氧排气阀 m_PrintSlot2PipeValve = ioCfgMap["PrintSlot2PipeValve"]; //打印槽2管道阀 m_CleanStorageCar1DropPowderValve = ioCfgMap["CleanStorageCar1DropPowderValve"]; //清粉存粉小车1下粉阀 m_CleanStorageCar1DeoxygenValve = ioCfgMap["CleanStorageCar1DeoxygenValve"]; //清粉存粉小车1除氧进气阀 m_CleanStorageCar1EvacuationValve = ioCfgMap["CleanStorageCar1EvacuationValve"]; //清粉存粉小车1除氧排气阀 m_CleanSlot1PipeValve = ioCfgMap["CleanSlot1PipeValve"]; //清粉槽1管道阀 m_CleanStorageCar2DropPowderValve = ioCfgMap["CleanStorageCar2DropPowderValve"]; //清粉存粉小车2下粉阀 m_CleanStorageCar2DeoxygenValve = ioCfgMap["CleanStorageCar2DeoxygenValve"]; //清粉存粉小车2除氧进气阀 m_CleanStorageCar2EvacuationValve = ioCfgMap["CleanStorageCar2EvacuationValve"]; //清粉存粉小车2除氧排气阀 m_CleanSlot2PipeValve = ioCfgMap["CleanSlot2PipeValve"]; //清粉槽2管道阀 m_PrintAirRenewalInOutValve = ioCfgMap["PrintAirRenewalInOutValve"]; //打印室换气进出阀 m_PrintAirRenewalPresRelValve = ioCfgMap["PrintAirRenewalPresRelValve"]; //打印室换气泄压阀 m_SystemStop = ioCfgMap["SystemStop"]; //系统急停 m_HighPressureCheck = ioCfgMap["HighPressureCheck"]; //高压报警 m_ProtectGasCheck = ioCfgMap["ProtectGasCheck"]; //保护气检测 m_PowerDown = ioCfgMap["PowerDown"]; //外部断电 m_PowerOK = ioCfgMap["PowerOK"]; //电源正常 m_OutDoorOxygenAlarm = ioCfgMap["OutDoorOxygenAlarm"]; //室外测氧报警 m_LaserChillerAlarm = ioCfgMap["LaserChillerAlarm"]; //激光器冷水机报警 m_BusAirSwitchClose = ioCfgMap["BusAirSwitchClose"]; //总空开触点 m_ExtMachineAirSwitchClose = ioCfgMap["ExtMachineAirSwitchClose"]; //外部设备空开触点 m_HeattingAirSwitchClose = ioCfgMap["HeattingAirSwitchClose"]; //加热空开触点 m_LaserAirSwitchClose = ioCfgMap["LaserAirSwitchClose"]; //激光空开触点 m_ServoAirSwitchClose = ioCfgMap["ServoAirSwitchClose"]; //伺服空开触点 m_Laser1Alarm = ioCfgMap["Laser1Alarm"]; //激光器1报警 m_Laser2Alarm = ioCfgMap["Laser2Alarm"]; //激光器2报警 m_Laser3Alarm = ioCfgMap["Laser3Alarm"]; //激光器3报警 m_Laser4Alarm = ioCfgMap["Laser4Alarm"]; //激光器4报警 m_PrintStorageCar1UpLimit = ioCfgMap["PrintStorageCar1UpLimit"]; //打印存粉小车1上限 m_PrintStorageCar1DownLimit = ioCfgMap["PrintStorageCar1DownLimit"]; //打印存粉小车1下限 m_PrintStorageCar1Connect = ioCfgMap["PrintStorageCar1Connect"]; //打印存粉小车1连接 m_PrintStorageCar2UpLimit = ioCfgMap["PrintStorageCar2UpLimit"]; //打印存粉小车2上限 m_PrintStorageCar2DownLimit = ioCfgMap["PrintStorageCar2DownLimit"]; //打印存粉小车2下限 m_SSRInput = ioCfgMap["SSRInput"]; //加热输入检测 m_SSROutput = ioCfgMap["SSROutput"]; //加热输出检测 m_PrintMainAxisUpLimit = ioCfgMap["PrintMainAxisUpLimit"]; //打印主轴上限位 m_PrintMainAxisDownLimit = ioCfgMap["PrintMainAxisDownLimit"]; //打印主轴下限位 m_PrintMainHomeIndex = ioCfgMap["PrintMainHomeIndex"]; //打印主轴原点 m_PrintSlaveAxisUpLimit = ioCfgMap["PrintSlaveAxisUpLimit"]; //打印从轴上限位 m_PrintSlaveAxisDownLimit = ioCfgMap["PrintSlaveAxisDownLimit"]; //打印从轴下限位 m_PrintSlaveHomeIndex = ioCfgMap["PrintSlaveHomeIndex"]; //打印从轴原点 m_Print3RHookOffPos = ioCfgMap["Print3RHookOffPos"]; //打印3R脱离位 m_Print3RCylinderContact = ioCfgMap["Print3RCylinderContact"]; //打印3R与缸体接触感应 m_Print3RLeakOn = ioCfgMap["Print3RLeakOn"]; //打印3R漏气检测 m_PrintPressOn = ioCfgMap["PrintPressOn"]; //打印位压紧气缸压紧位 m_PrintPressOff = ioCfgMap["PrintPressOff"]; //打印位压紧气缸松开位 m_PrintJackUpOn = ioCfgMap["PrintJackUpOn"]; //打印位顶升气缸顶起位 m_PrintJackUpOff = ioCfgMap["PrintJackUpOff"]; //打印位顶升气缸下降位 m_PrintSupportCylinderOn = ioCfgMap["PrintSupportCylinderOn"]; //打印位支撑气缸支撑位 m_PrintSupportCylinderOff = ioCfgMap["PrintSupportCylinderOff"]; //打印位支撑气缸避让位 m_PrintHorizontalExtendOn = ioCfgMap["PrintHorizontalExtendOn"]; //打印位左右定位气缸伸出位 m_PrintHorizontalExtendOff = ioCfgMap["PrintHorizontalExtendOff"]; //打印位左右定位气缸缩回位 m_TrackPrintPos = ioCfgMap["TrackPrintPos"]; //轨道打印位 m_PrintCylinderOn = ioCfgMap["PrintCylinderOn"]; //打印位缸体检测 m_CleannerMainAxisUpLimit = ioCfgMap["CleannerMainAxisUpLimit"]; //清粉主轴上限位 m_CleannerMainAxisDownLimit = ioCfgMap["CleannerMainAxisDownLimit"]; //清粉主轴下限位 m_CleannerMainHomeIndex = ioCfgMap["CleannerMainHomeIndex"]; //清粉主轴原点 m_CleannerSlaveAxisUpLimit = ioCfgMap["CleannerSlaveAxisUpLimit"]; //清粉从轴上限位 m_CleannerSlaveAxisDownLimit = ioCfgMap["CleannerSlaveAxisDownLimit"]; //清粉从轴下限位 m_CleannerSlaveAxisHomeIndex = ioCfgMap["CleannerSlaveAxisHomeIndex"]; //清粉从轴原点 m_TrackCleanPos = ioCfgMap["TrackCleanPos"]; //轨道清粉位 m_CleannerUpButton = ioCfgMap["CleannerUpButton"]; //清粉上升按钮 m_CleannerDownButton = ioCfgMap["CleannerDownButton"]; //清粉下降按钮 m_CleannerMotionStop = ioCfgMap["CleannerMotionStop"]; //清粉升降急停 m_CleanBoxDoorClose = ioCfgMap["CleanBoxDoorClose"]; m_LeftVacuumButton = ioCfgMap["LeftVacuumButton"]; //左吸尘按钮 m_RightVacuumButton = ioCfgMap["RightVacuumButton"]; //右吸尘按钮 m_UpperLidOpen = ioCfgMap["UpperLidOpen"]; //上盖气缸开位 m_UpperLidClose = ioCfgMap["UpperLidClose"]; //上盖气缸关位 m_CleanBoxUpHorOpenPos = ioCfgMap["CleanBoxUpHorOpenPos"]; //清粉箱上盖横移开位 m_CleanBoxUpHorClosePos = ioCfgMap["CleanBoxUpHorClosePos"]; //清粉箱上盖横移关位 m_CleannerBoxCylinderPressOn = ioCfgMap["CleannerBoxCylinderPressOn"]; //清粉箱压紧位 m_CleannerBoxCylinderPressOff = ioCfgMap["CleannerBoxCylinderPressOff"]; //清粉箱放松位 m_PrintAirRenewalPressure = ioCfgMap["PrintAirRenewalPressure"]; //打印室换气源压力 m_CleannerBoxOn = ioCfgMap["CleannerBoxOn"]; //清粉箱缸体接触感应 m_CleannerPressOn = ioCfgMap["CleannerPressOn"]; //清粉位压紧气缸压紧位 m_CleannerPressOff = ioCfgMap["CleannerPressOff"]; //清粉位压紧气缸放松位 m_Clean3RContact = ioCfgMap["Clean3RContact"]; //清粉3R对接位 m_Clean3RCylinderContact = ioCfgMap["Clean3RCylinderContact"]; //清粉3R与缸体接触感应 m_Clean3RLeakOn = ioCfgMap["Clean3RLeakOn"]; //清粉3R漏气检测 m_ArmFrontLimit = ioCfgMap["ArmFrontLimit"]; //铺粉轴前限位 m_ArmBackLimit = ioCfgMap["ArmBackLimit"]; //铺粉轴后限位 m_ArmHomeIndex = ioCfgMap["ArmHomeIndex"]; //铺粉轴原点 m_LoadLeftLimit = ioCfgMap["LoadLeftLimit"]; //移载轴左限位 m_LoadRgithLimit = ioCfgMap["LoadRgithLimit"]; //移载轴右限位 m_LoadHomeIndex = ioCfgMap["LoadHomeIndex"]; //移载轴原点 m_LoadSearchEdgeOn = ioCfgMap["LoadSearchEdgeOn"]; //移载轴寻边感应 m_PrintStorageCar1PressureHigh = ioCfgMap["PrintStorageCar1PressureHigh"]; //打印存粉小车1压力高 m_PrintStorageCar2PressureHigh = ioCfgMap["PrintStorageCar2PressureHigh"]; //打印存粉小车2压力高 m_PowderPosition1 = ioCfgMap["PowderPosition1"]; //粉仓粉位1 m_PowderPosition2 = ioCfgMap["PowderPosition2"]; //粉仓粉位2 m_PowderPosition3 = ioCfgMap["PowderPosition3"]; //粉仓粉位3 m_PowderPosition4 = ioCfgMap["PowderPosition4"]; //粉仓粉位4 m_PowderPosition5 = ioCfgMap["PowderPosition5"]; //粉仓粉位5 m_PowderSupplyHomeIndex = ioCfgMap["PowderSupplyHomeIndex"]; //供粉转轴原点 m_SafeDoorClose1 = ioCfgMap["SafeDoorClose1"]; //安全门锁信号1 m_SafeDoorClose2 = ioCfgMap["SafeDoorClose2"]; //安全门锁信号2 m_SafeDoorClose3 = ioCfgMap["SafeDoorClose3"]; //安全门锁信号3 m_PrintableSignal = ioCfgMap["PrintableSignal"]; //允许打印信号 m_FanRunSignal = ioCfgMap["FanRunSignal"]; //风机运行信号 m_PrintStorageCar1Block = ioCfgMap["PrintStorageCar1Block"]; //打印存粉小车1堵塞 m_LightPathChillerAlarm = ioCfgMap["LightPathChillerAlarm"]; //光路冷水机报警 m_PurifierChillerAlarm = ioCfgMap["PurifierChillerAlarm"]; //净化器冷水机报警 m_PrintStorageCar2Block = ioCfgMap["PrintStorageCar2Block"]; //打印存粉小车2堵塞 m_PrintStorageCar2Connect = ioCfgMap["PrintStorageCar2Connect"]; //打印存粉小车2连接 m_CleanStorageCar1UpLimit = ioCfgMap["CleanStorageCar1UpLimit"]; //清粉存粉小车1上限 m_CleanStorageCar1DownLimit = ioCfgMap["CleanStorageCar1DownLimit"]; //清粉存粉小车1下限 m_CleanStorageCar1Block = ioCfgMap["CleanStorageCar1Block"]; //清粉存粉小车1堵塞 m_CleanStorageCar1Connect = ioCfgMap["CleanStorageCar1Connect"]; //清粉存粉小车1连接 m_CleanStorageCar2UpLimit = ioCfgMap["CleanStorageCar2UpLimit"]; //清粉存粉小车2上限 m_CleanStorageCar2DownLimit = ioCfgMap["CleanStorageCar2DownLimit"]; //清粉存粉小车2下限 m_CleanStorageCar2Block = ioCfgMap["CleanStorageCar2Block"]; //清粉存粉小车2堵塞 m_CleanStorageCar2Connect = ioCfgMap["CleanStorageCar2Connect"]; //清粉存粉小车2连接 m_CleanStorageCar1PressureHigh = ioCfgMap["CleanStorageCar1PressureHigh"]; //清粉存粉小车1压力高 m_CleanStorageCar2PressureHigh = ioCfgMap["CleanStorageCar2PressureHigh"]; //清粉存粉小车2压力高 } void IO_1000_V2::Update(unsigned char* arr) { m_SystemStop->m_IsActive = !((arr[0] & 0x1) > 0 ? true : false); m_HighPressureCheck->m_IsActive = ((arr[0] & 0x2) > 0 ? true : false); m_ProtectGasCheck->m_IsActive = ((arr[0] & 0x4) > 0 ? true : false); m_PowerDown->m_IsActive = ((arr[0] & 0x8) > 0 ? true : false); m_PowerOK->m_IsActive = ((arr[0] & 0x10) > 0 ? true : false); m_OutDoorOxygenAlarm->m_IsActive = ((arr[0] & 0x20) > 0 ? true : false); m_LaserChillerAlarm->m_IsActive = ((arr[0] & 0x40) > 0 ? true : false); m_BusAirSwitchClose->m_IsActive = ((arr[0] & 0x80) > 0 ? true : false); m_ExtMachineAirSwitchClose->m_IsActive = ((arr[1] & 0x1) > 0 ? true : false); m_HeattingAirSwitchClose->m_IsActive = ((arr[1] & 0x2) > 0 ? true : false); m_LaserAirSwitchClose->m_IsActive = ((arr[1] & 0x4) > 0 ? true : false); m_ServoAirSwitchClose->m_IsActive = ((arr[1] & 0x8) > 0 ? true : false); m_Laser1Alarm->m_IsActive = ((arr[1] & 0x10) > 0 ? true : false); m_Laser2Alarm->m_IsActive = ((arr[1] & 0x20) > 0 ? true : false); m_Laser3Alarm->m_IsActive = ((arr[1] & 0x40) > 0 ? true : false); m_Laser4Alarm->m_IsActive = ((arr[1] & 0x80) > 0 ? true : false); m_PrintStorageCar1UpLimit->m_IsActive = ((arr[2] & 0x1) > 0 ? true : false); m_PrintStorageCar1DownLimit->m_IsActive = ((arr[2] & 0x2) > 0 ? true : false); m_PrintStorageCar1Connect->m_IsActive = ((arr[2] & 0x4) > 0 ? true : false); m_PrintStorageCar2UpLimit->m_IsActive = ((arr[2] & 0x8) > 0 ? true : false); m_PrintStorageCar2DownLimit->m_IsActive = ((arr[2] & 0x10) > 0 ? true : false); m_SSRInput->m_IsActive = ((arr[2] & 0x20) > 0 ? true : false); m_SSROutput->m_IsActive = ((arr[2] & 0x40) > 0 ? true : false); m_PrintMainAxisUpLimit->m_IsActive = !((arr[2] & 0x80) > 0 ? true : false); m_PrintMainAxisDownLimit->m_IsActive = !((arr[3] & 0x1) > 0 ? true : false); m_PrintMainHomeIndex->m_IsActive = ((arr[3] & 0x2) > 0 ? true : false); m_PrintSlaveAxisUpLimit->m_IsActive = !((arr[3] & 0x4) > 0 ? true : false); m_PrintSlaveAxisDownLimit->m_IsActive = !((arr[3] & 0x8) > 0 ? true : false); m_PrintSlaveHomeIndex->m_IsActive = ((arr[3] & 0x10) > 0 ? true : false); m_Print3RHookOffPos->m_IsActive = ((arr[3] & 0x20) > 0 ? true : false); m_Print3RCylinderContact->m_IsActive = ((arr[3] & 0x40) > 0 ? true : false); m_Clean3RLeakOn->m_IsActive = ((arr[3] & 0x80) > 0 ? true : false); m_PrintPressOn->m_IsActive = ((arr[4] & 0x1) > 0 ? true : false); m_PrintPressOff->m_IsActive = ((arr[4] & 0x2) > 0 ? true : false); m_PrintJackUpOn->m_IsActive = ((arr[4] & 0x4) > 0 ? true : false); m_PrintJackUpOff->m_IsActive = ((arr[4] & 0x8) > 0 ? true : false); m_PrintSupportCylinderOn->m_IsActive = ((arr[4] & 0x10) > 0 ? true : false); m_PrintSupportCylinderOff->m_IsActive = ((arr[4] & 0x20) > 0 ? true : false); m_PrintHorizontalExtendOn->m_IsActive = ((arr[4] & 0x40) > 0 ? true : false); m_PrintHorizontalExtendOff->m_IsActive = ((arr[4] & 0x80) > 0 ? true : false); m_TrackPrintPos->m_IsActive = ((arr[5] & 0x4) > 0 ? true : false); m_PrintCylinderOn->m_IsActive = ((arr[5] & 0x8) > 0 ? true : false); m_CleannerMainAxisUpLimit->m_IsActive = !((arr[5] & 0x10) > 0 ? true : false); m_CleannerMainAxisDownLimit->m_IsActive = !((arr[5] & 0x20) > 0 ? true : false); m_CleannerMainHomeIndex->m_IsActive = ((arr[5] & 0x40) > 0 ? true : false); m_CleannerSlaveAxisUpLimit->m_IsActive = !((arr[5] & 0x80) > 0 ? true : false); m_CleannerSlaveAxisDownLimit->m_IsActive = !((arr[6] & 0x1) > 0 ? true : false); m_CleannerSlaveAxisHomeIndex->m_IsActive = ((arr[6] & 0x2) > 0 ? true : false); m_TrackCleanPos->m_IsActive = ((arr[6] & 0x8) > 0 ? true : false); m_CleannerUpButton->m_IsActive = ((arr[6] & 0x10) > 0 ? true : false); m_CleannerDownButton->m_IsActive = ((arr[6] & 0x20) > 0 ? true : false); m_CleannerMotionStop->m_IsActive = !((arr[6] & 0x80) > 0 ? true : false); m_CleanBoxDoorClose->m_IsActive= ((arr[7] & 0x1) > 0 ? true : false); m_LeftVacuumButton->m_IsActive = ((arr[7] & 0x2) > 0 ? true : false); m_RightVacuumButton->m_IsActive = ((arr[7] & 0x4) > 0 ? true : false); m_UpperLidOpen->m_IsActive = ((arr[7] & 0x8) > 0 ? true : false); m_UpperLidClose->m_IsActive = ((arr[7] & 0x10) > 0 ? true : false); m_CleanBoxUpHorOpenPos->m_IsActive = ((arr[7] & 0x20) > 0 ? true : false); m_CleanBoxUpHorClosePos->m_IsActive = ((arr[7] & 0x40) > 0 ? true : false); m_CleannerBoxCylinderPressOn->m_IsActive = ((arr[7] & 0x80) > 0 ? true : false); m_CleannerBoxCylinderPressOff->m_IsActive = ((arr[8] & 0x1) > 0 ? true : false); m_PrintAirRenewalPressure->m_IsActive = ((arr[8] & 0x2) > 0 ? true : false); m_CleannerBoxOn->m_IsActive = ((arr[8] & 0x20) > 0 ? true : false); m_CleannerPressOn->m_IsActive = ((arr[8] & 0x40) > 0 ? true : false); m_CleannerPressOff->m_IsActive = ((arr[8] & 0x80) > 0 ? true : false); m_Clean3RContact->m_IsActive = ((arr[9] & 0x4) > 0 ? true : false); m_Clean3RCylinderContact->m_IsActive = ((arr[9] & 0x8) > 0 ? true : false); m_Clean3RLeakOn->m_IsActive = ((arr[9] & 0x10) > 0 ? true : false); m_ArmFrontLimit->m_IsActive = !((arr[9] & 0x20) > 0 ? true : false); m_ArmBackLimit->m_IsActive = !((arr[9] & 0x40) > 0 ? true : false); m_ArmHomeIndex->m_IsActive = ((arr[9] & 0x80) > 0 ? true : false); m_LoadLeftLimit->m_IsActive = !((arr[10] & 0x1) > 0 ? true : false); m_LoadRgithLimit->m_IsActive = !((arr[10] & 0x2) > 0 ? true : false); m_LoadHomeIndex->m_IsActive = ((arr[10] & 0x4) > 0 ? true : false); m_LoadSearchEdgeOn->m_IsActive = ((arr[10] & 0x8) > 0 ? true : false); m_PrintStorageCar1PressureHigh->m_IsActive = ((arr[10] & 0x10) > 0 ? true : false); m_PrintStorageCar2PressureHigh->m_IsActive = ((arr[10] & 0x20) > 0 ? true : false); m_PowderPosition5->m_IsActive = ((arr[10] & 0x40) > 0 ? true : false); m_PowderPosition4->m_IsActive = ((arr[10] & 0x80) > 0 ? true : false); m_PowderPosition3->m_IsActive = ((arr[11] & 0x1) > 0 ? true : false); m_PowderPosition2->m_IsActive = ((arr[11] & 0x2) > 0 ? true : false); m_PowderPosition1->m_IsActive = ((arr[11] & 0x4) > 0 ? true : false); m_PowderSupplyHomeIndex->m_IsActive = ((arr[11] & 0x8) > 0 ? true : false); m_SafeDoorClose1->m_IsActive = ((arr[11] & 0x10) > 0 ? true : false); m_SafeDoorClose2->m_IsActive = ((arr[11] & 0x20) > 0 ? true : false); m_SafeDoorClose3->m_IsActive = ((arr[11] & 0x40) > 0 ? true : false); m_PrintableSignal->m_IsActive = ((arr[11] & 0x80) > 0 ? true : false); m_FanRunSignal->m_IsActive = ((arr[12] & 0x1) > 0 ? true : false); m_PrintStorageCar1Block->m_IsActive = ((arr[12] & 0x2) > 0 ? true : false); m_LightPathChillerAlarm->m_IsActive = ((arr[12] & 0x4) > 0 ? true : false); m_PurifierChillerAlarm->m_IsActive = ((arr[12] & 0x8) > 0 ? true : false); m_PrintStorageCar2Block->m_IsActive = ((arr[12] & 0x10) > 0 ? true : false); m_PrintStorageCar2Connect->m_IsActive = ((arr[12] & 0x20) > 0 ? true : false); m_CleanStorageCar1UpLimit->m_IsActive = ((arr[12] & 0x40) > 0 ? true : false); m_CleanStorageCar1DownLimit->m_IsActive = ((arr[12] & 0x80) > 0 ? true : false); m_CleanStorageCar1Block->m_IsActive = ((arr[13] & 0x01) > 0 ? true : false); m_CleanStorageCar1Connect->m_IsActive = ((arr[13] & 0x02) > 0 ? true : false); m_CleanStorageCar2UpLimit->m_IsActive = ((arr[13] & 0x04) > 0 ? true : false); m_CleanStorageCar2DownLimit->m_IsActive = ((arr[13] & 0x08) > 0 ? true : false); m_CleanStorageCar2Block->m_IsActive = ((arr[13] & 0x10) > 0 ? true : false); m_CleanStorageCar2Connect->m_IsActive = ((arr[13] & 0x20) > 0 ? true : false); m_CleanStorageCar1PressureHigh->m_IsActive = ((arr[13] & 0x40) > 0 ? true : false); m_CleanStorageCar2PressureHigh->m_IsActive = ((arr[13] & 0x80) > 0 ? true : false); int outputStartAddr = 24; m_ServoMotor->m_IsActive = ((arr[outputStartAddr] & 0x1) > 0 ? true : false); m_Laser->m_IsActive = ((arr[outputStartAddr] & 0x2) > 0 ? true : false); m_Laser1Enable->m_IsActive = ((arr[outputStartAddr] & 0x4) > 0 ? true : false); m_Laser1Start->m_IsActive = ((arr[outputStartAddr] & 0x8) > 0 ? true : false); m_Laser1Red->m_IsActive = ((arr[outputStartAddr] & 0x10) > 0 ? true : false); m_Laser2Enable->m_IsActive = ((arr[outputStartAddr] & 0x20) > 0 ? true : false); m_Laser2Start->m_IsActive = ((arr[outputStartAddr] & 0x40) > 0 ? true : false); m_Laser2Red->m_IsActive = ((arr[outputStartAddr] & 0x80) > 0 ? true : false); m_Laser3Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x1) > 0 ? true : false); m_Laser3Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x2) > 0 ? true : false); m_Laser3Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x4) > 0 ? true : false); m_Laser4Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x8) > 0 ? true : false); m_Laser4Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x10) > 0 ? true : false); m_Laser4Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x20) > 0 ? true : false); m_PrintDoorLock->m_IsActive = ((arr[outputStartAddr + 1] & 0x40) > 0 ? true : false); m_LightOn->m_IsActive = ((arr[outputStartAddr + 1] & 0x80) > 0 ? true : false); m_YellowLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x1) > 0 ? true : false); m_GreenLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x2) > 0 ? true : false); m_RedLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x4) > 0 ? true : false); m_Buzzer->m_IsActive = ((arr[outputStartAddr + 2] & 0x8) > 0 ? true : false); m_PrintAssistGas->m_IsActive = ((arr[outputStartAddr + 2] & 0x10) > 0 ? true : false); m_PrintAirEvacuation->m_IsActive = ((arr[outputStartAddr + 2] & 0x20) > 0 ? true : false); m_PressureRelease->m_IsActive = ((arr[outputStartAddr + 2] & 0x40) > 0 ? true : false); m_ScannerCool->m_IsActive = ((arr[outputStartAddr + 2] & 0x80) > 0 ? true : false); m_Heating->m_IsActive = ((arr[outputStartAddr + 3] & 0x1) > 0 ? true : false); m_PrintStorageCar1DropPowderValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x2) > 0 ? true : false); m_PrintSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x4) > 0 ? true : false); m_PrintPress->m_IsActive = ((arr[outputStartAddr + 3] & 0x8) > 0 ? true : false); m_PrintUnpress->m_IsActive = ((arr[outputStartAddr + 3] & 0x10) > 0 ? true : false); m_PrintJackUp->m_IsActive = ((arr[outputStartAddr + 3] & 0x20) > 0 ? true : false); m_PrintJackDown->m_IsActive = ((arr[outputStartAddr + 3] & 0x40) > 0 ? true : false); m_SupportCylinderEnable->m_IsActive = ((arr[outputStartAddr + 3] & 0x80) > 0 ? true : false); m_SupportCylinderDisable->m_IsActive = ((arr[outputStartAddr + 4] & 0x1) > 0 ? true : false); m_PrintHorizontalExtend->m_IsActive = ((arr[outputStartAddr + 4] & 0x2) > 0 ? true : false); m_PrintHorizontalRetract->m_IsActive = ((arr[outputStartAddr + 4] & 0x4) > 0 ? true : false); m_Print3RRelease->m_IsActive = ((arr[outputStartAddr + 4] & 0x20) > 0 ? true : false); m_PrintMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x40) > 0 ? true : false); m_PrintSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x80) > 0 ? true : false); m_Print3RDeoxygenSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x1) > 0 ? true : false); m_Print3RStablePressureSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x2) > 0 ? true : false); m_Print3RAirEvacuation->m_IsActive = ((arr[outputStartAddr + 5] & 0x4) > 0 ? true : false); m_PowderCleanerUpOpenGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x8) > 0 ? true : false); m_PowderCleanerUpCloseGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x10) > 0 ? true : false); m_CleanCylinderPressing->m_IsActive = ((arr[outputStartAddr + 5] & 0x20) > 0 ? true : false); m_CleanCylinderRelease->m_IsActive = ((arr[outputStartAddr + 5] & 0x40) > 0 ? true : false); m_CleanBoxDeoxygenValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x1) > 0 ? true : false); m_CleanBoxEvacuationValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x2) > 0 ? true : false); m_CleanBoxUpHorOpen->m_IsActive= ((arr[outputStartAddr + 6] & 0x4) > 0 ? true : false); m_CleanBoxUpHorClose->m_IsActive = ((arr[outputStartAddr + 6] & 0x8) > 0 ? true : false); m_PowderCleannerBoxPress->m_IsActive = ((arr[outputStartAddr + 6] & 0x10) > 0 ? true : false); m_PowderCleannerBoxUnpress->m_IsActive = ((arr[outputStartAddr + 6] & 0x20) > 0 ? true : false); m_Clean3RRelease->m_IsActive = ((arr[outputStartAddr + 6] & 0x80) > 0 ? true : false); m_CleanMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x1) > 0 ? true : false); m_CleanSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x2) > 0 ? true : false); m_CleanCabinArriveLamp->m_IsActive = ((arr[outputStartAddr + 7] & 0x4) > 0 ? true : false); m_LoadElectromagnet->m_IsActive = ((arr[outputStartAddr + 7] & 0x8) > 0 ? true : false); m_PrintVacuumEnterSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x10) > 0 ? true : false); m_PrintStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x20) > 0 ? true : false); m_PrintStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x40) > 0 ? true : false); m_PurifierCoolerPower->m_IsActive = ((arr[outputStartAddr + 7] & 0x80) > 0 ? true : false); m_PrintStorageCar2DropPowderValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x02) > 0 ? true : false); m_PrintStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x04) > 0 ? true : false); m_PrintStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x08) > 0 ? true : false); m_PrintSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x10) > 0 ? true : false); m_CleanStorageCar1DropPowderValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x20) > 0 ? true : false); m_CleanStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x40) > 0 ? true : false); m_CleanStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x80) > 0 ? true : false); m_CleanSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x01) > 0 ? true : false); m_CleanStorageCar2DropPowderValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x02) > 0 ? true : false); m_CleanStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x04) > 0 ? true : false); m_CleanStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x08) > 0 ? true : false); m_CleanSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x10) > 0 ? true : false); m_PrintAirRenewalInOutValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x20) > 0 ? true : false); m_PrintAirRenewalPresRelValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x40) > 0 ? true : false); bitset<8> doorState; doorState.reset(); doorState[0] = m_SafeDoorClose1->m_IsActive; doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; m_SafeDoorState = doorState.to_ulong(); } void IO_1000_V3::Init(map& ioCfgMap) { m_ServoMotor = ioCfgMap["ServoMotor"]; //伺服电源 m_Laser = ioCfgMap["Laser"]; //激光器 m_Laser1Enable = ioCfgMap["Laser1Enable"]; //激光1使能 m_Laser1Start = ioCfgMap["Laser1Start"]; //激光1启动 m_Laser1Red = ioCfgMap["Laser1Red"]; //激光1红光 m_Laser2Enable = ioCfgMap["Laser2Enable"]; //激光2使能 m_Laser2Start = ioCfgMap["Laser2Start"]; //激光2启动 m_Laser2Red = ioCfgMap["Laser2Red"]; //激光2红光 m_Laser3Enable = ioCfgMap["Laser3Enable"]; //激光3使能 m_Laser3Start = ioCfgMap["Laser3Start"]; //激光3启动 m_Laser3Red = ioCfgMap["Laser3Red"]; //激光3红光 m_Laser4Enable = ioCfgMap["Laser4Enable"]; //激光4使能 m_Laser4Start = ioCfgMap["Laser4Start"]; //激光4启动 m_Laser4Red = ioCfgMap["Laser4Red"]; //激光4红光 m_PrintDoorLock = ioCfgMap["PrintDoorLock"]; //打印舱门电锁 m_LightOn = ioCfgMap["LightOn"]; //照明 m_YellowLamp = ioCfgMap["YellowLamp"]; //黄灯 m_GreenLamp = ioCfgMap["GreenLamp"]; //绿灯 m_RedLamp = ioCfgMap["RedLamp"]; //红灯 m_Buzzer = ioCfgMap["Buzzer"]; //蜂鸣器 m_PrintAssistGas = ioCfgMap["PrintAssistGas"]; //辅助气 m_PrintAirEvacuation = ioCfgMap["PrintAirEvacuation"]; //排气阀 m_PressureRelease = ioCfgMap["PressureRelease"]; //压力释放 m_ScannerCool = ioCfgMap["ScannerCool"]; //振镜冷却 m_Heating = ioCfgMap["Heating"]; //加热 m_PrintStorageCar1DropPowderValve = ioCfgMap["PrintStorageCar1DropPowderValve"]; //打印存粉小车1下粉阀 m_PrintSlot1PipeValve = ioCfgMap["PrintSlot1PipeValve"]; //打印槽1管道阀 m_PrintPress = ioCfgMap["PrintPress"]; //打印位压紧 m_PrintUnpress = ioCfgMap["PrintUnpress"]; //打印位放松 m_PrintJackUp = ioCfgMap["PrintJackUp"]; //打印顶升气缸上升 m_PrintJackDown = ioCfgMap["PrintJackDown"]; //打印顶升气缸下降 m_PrintCylindFixed = ioCfgMap["PrintCylindFixed"]; //打印位缸体固定 m_PrintCylindRelease = ioCfgMap["PrintCylindRelease"]; //打印位缸体松开 m_Print3RRelease = ioCfgMap["Print3RRelease"]; //打印3R夹具松开 m_PrintMainAxisBrake = ioCfgMap["PrintMainAxisBrake"]; //打印主轴刹车 m_PrintSlaveAxisBrake = ioCfgMap["PrintSlaveAxisBrake"]; //打印从轴刹车 m_Print3RDeoxygenSalve = ioCfgMap["Print3RDeoxygenSalve"]; //打印3R除氧进气阀 m_Print3RStablePressureSalve = ioCfgMap["Print3RStablePressureSalve"]; //打印3R稳压气阀 m_Print3RAirEvacuation = ioCfgMap["Print3RAirEvacuation"]; //打印3R除氧排气阀 m_PowderCleanerUpOpenGap = ioCfgMap["PowderCleanerUpOpenGap"]; //清粉箱上盖打开阀 m_PowderCleanerUpCloseGap = ioCfgMap["PowderCleanerUpCloseGap"]; //清粉箱上盖关闭阀 m_CleanCylinderPressing = ioCfgMap["CleanCylinderPressing"]; //清粉箱缸体压紧 m_CleanCylinderRelease = ioCfgMap["CleanCylinderRelease"]; //清粉箱缸体松开 m_CleanBoxDeoxygenValve = ioCfgMap["CleanBoxDeoxygenValve"]; //清粉箱除氧进气阀 m_CleanBoxEvacuationValve = ioCfgMap["CleanBoxEvacuationValve"]; //清粉箱除氧排气阀 m_CleanBoxUpHorOpen = ioCfgMap["CleanBoxUpHorOpen"]; m_CleanBoxUpHorClose = ioCfgMap["CleanBoxUpHorClose"]; m_PowderCleannerBoxPress = ioCfgMap["PowderCleannerBoxPress"]; //清粉位压紧气缸压紧 m_PowderCleannerBoxUnpress = ioCfgMap["PowderCleannerBoxUnpress"]; //清粉位压紧气缸放松 m_Clean3RRelease = ioCfgMap["Clean3RRelease"]; //清粉3R夹具松开 m_CleanMainAxisBrake = ioCfgMap["CleanMainAxisBrake"]; //清粉主轴刹车 m_CleanSlaveAxisBrake = ioCfgMap["CleanSlaveAxisBrake"]; //清粉从轴刹车 m_CleanCabinArriveLamp = ioCfgMap["CleanCabinArriveLamp"]; //脱离舱体到位指示灯 m_LoadElectromagnet = ioCfgMap["LoadElectromagnet"]; //移载电磁铁 m_PrintVacuumEnterSlave = ioCfgMap["PrintVacuumEnterSlave"]; //打印室吸尘进气阀 m_PrintStorageCar1DeoxygenValve = ioCfgMap["PrintStorageCar1DeoxygenValve"]; //打印存粉小车1除氧进气阀 m_PrintStorageCar1EvacuationValve = ioCfgMap["PrintStorageCar1EvacuationValve"]; //打印存粉小车1除氧排气阀 m_PurifierCoolerPower = ioCfgMap["PurifierCoolerPower"]; //净化器冷水机电源 m_PrintStorageCar2DropPowderValve = ioCfgMap["PrintStorageCar2DropPowderValve"]; //打印存粉小车2下粉阀 m_PrintStorageCar2DeoxygenValve = ioCfgMap["PrintStorageCar2DeoxygenValve"]; //打印存粉小车2除氧进气阀 m_PrintStorageCar2EvacuationValve = ioCfgMap["PrintStorageCar2EvacuationValve"]; //打印存粉小车2除氧排气阀 m_PrintSlot2PipeValve = ioCfgMap["PrintSlot2PipeValve"]; //打印槽2管道阀 m_CleanStorageCar1DropPowderValve = ioCfgMap["CleanStorageCar1DropPowderValve"]; //清粉存粉小车1下粉阀 m_CleanStorageCar1DeoxygenValve = ioCfgMap["CleanStorageCar1DeoxygenValve"]; //清粉存粉小车1除氧进气阀 m_CleanStorageCar1EvacuationValve = ioCfgMap["CleanStorageCar1EvacuationValve"]; //清粉存粉小车1除氧排气阀 m_CleanSlot1PipeValve = ioCfgMap["CleanSlot1PipeValve"]; //清粉槽1管道阀 m_CleanStorageCar2DropPowderValve = ioCfgMap["CleanStorageCar2DropPowderValve"]; //清粉存粉小车2下粉阀 m_CleanStorageCar2DeoxygenValve = ioCfgMap["CleanStorageCar2DeoxygenValve"]; //清粉存粉小车2除氧进气阀 m_CleanStorageCar2EvacuationValve = ioCfgMap["CleanStorageCar2EvacuationValve"]; //清粉存粉小车2除氧排气阀 m_CleanSlot2PipeValve = ioCfgMap["CleanSlot2PipeValve"]; //清粉槽2管道阀 m_PrintAirRenewalInOutValve = ioCfgMap["PrintAirRenewalInOutValve"]; //打印室换气进出阀 m_PrintAirRenewalPresRelValve = ioCfgMap["PrintAirRenewalPresRelValve"]; //打印室换气泄压阀 m_LaserPowerActive = ioCfgMap["LaserPowerActive"]; //激光电源激活 m_SystemStop = ioCfgMap["SystemStop"]; //系统急停 m_HighPressureCheck = ioCfgMap["HighPressureCheck"]; //高压报警 m_ProtectGasCheck = ioCfgMap["ProtectGasCheck"]; //保护气检测 m_PowerDown = ioCfgMap["PowerDown"]; //外部断电 m_PowerOK = ioCfgMap["PowerOK"]; //电源正常 m_OutDoorOxygenAlarm = ioCfgMap["OutDoorOxygenAlarm"]; //室外测氧报警 m_LaserChillerAlarm = ioCfgMap["LaserChillerAlarm"]; //激光器冷水机报警 m_BusAirSwitchClose = ioCfgMap["BusAirSwitchClose"]; //总空开触点 m_ExtMachineAirSwitchClose = ioCfgMap["ExtMachineAirSwitchClose"]; //外部设备空开触点 m_HeattingAirSwitchClose = ioCfgMap["HeattingAirSwitchClose"]; //加热空开触点 m_LaserAirSwitchClose = ioCfgMap["LaserAirSwitchClose"]; //激光空开触点 m_ServoAirSwitchClose = ioCfgMap["ServoAirSwitchClose"]; //伺服空开触点 m_Laser1Alarm = ioCfgMap["Laser1Alarm"]; //激光器1报警 m_Laser2Alarm = ioCfgMap["Laser2Alarm"]; //激光器2报警 m_Laser3Alarm = ioCfgMap["Laser3Alarm"]; //激光器3报警 m_Laser4Alarm = ioCfgMap["Laser4Alarm"]; //激光器4报警 m_PrintStorageCar1UpLimit = ioCfgMap["PrintStorageCar1UpLimit"]; //打印存粉小车1上限 m_PrintStorageCar1DownLimit = ioCfgMap["PrintStorageCar1DownLimit"]; //打印存粉小车1下限 m_PrintStorageCar1Connect = ioCfgMap["PrintStorageCar1Connect"]; //打印存粉小车1连接 m_PrintStorageCar2UpLimit = ioCfgMap["PrintStorageCar2UpLimit"]; //打印存粉小车2上限 m_PrintStorageCar2DownLimit = ioCfgMap["PrintStorageCar2DownLimit"]; //打印存粉小车2下限 m_SSRInput = ioCfgMap["SSRInput"]; //加热输入检测 m_SSROutput = ioCfgMap["SSROutput"]; //加热输出检测 m_PrintMainAxisUpLimit = ioCfgMap["PrintMainAxisUpLimit"]; //打印主轴上限位 m_PrintMainAxisDownLimit = ioCfgMap["PrintMainAxisDownLimit"]; //打印主轴下限位 m_PrintMainHomeIndex = ioCfgMap["PrintMainHomeIndex"]; //打印主轴原点 m_PrintSlaveAxisUpLimit = ioCfgMap["PrintSlaveAxisUpLimit"]; //打印从轴上限位 m_PrintSlaveAxisDownLimit = ioCfgMap["PrintSlaveAxisDownLimit"]; //打印从轴下限位 m_PrintSlaveHomeIndex = ioCfgMap["PrintSlaveHomeIndex"]; //打印从轴原点 m_Print3RHookOffPos = ioCfgMap["Print3RHookOffPos"]; //打印3R脱离位 m_Print3RCylinderContact = ioCfgMap["Print3RCylinderContact"]; //打印3R与缸体接触感应 m_Print3RLeakOn = ioCfgMap["Print3RLeakOn"]; //打印3R漏气检测 m_PrintPressOn = ioCfgMap["PrintPressOn"]; //打印位压紧气缸压紧位 m_PrintPressOff = ioCfgMap["PrintPressOff"]; //打印位压紧气缸松开位 m_PrintJackUpOn = ioCfgMap["PrintJackUpOn"]; //打印位顶升气缸顶起位 m_PrintJackUpOff = ioCfgMap["PrintJackUpOff"]; //打印位顶升气缸下降位 m_CylinderFixExtendOn = ioCfgMap["CylinderFixExtendOn"]; //打印位左右定位气缸伸出位 m_CylinderFixExtendOff = ioCfgMap["CylinderFixExtendOff"]; //打印位左右定位气缸缩回位 m_TrackPrintPos = ioCfgMap["TrackPrintPos"]; //轨道打印位 m_PrintCylinderOn = ioCfgMap["PrintCylinderOn"]; //打印位缸体检测 m_CleannerMainAxisUpLimit = ioCfgMap["CleannerMainAxisUpLimit"]; //清粉主轴上限位 m_CleannerMainAxisDownLimit = ioCfgMap["CleannerMainAxisDownLimit"]; //清粉主轴下限位 m_CleannerMainHomeIndex = ioCfgMap["CleannerMainHomeIndex"]; //清粉主轴原点 m_CleannerSlaveAxisUpLimit = ioCfgMap["CleannerSlaveAxisUpLimit"]; //清粉从轴上限位 m_CleannerSlaveAxisDownLimit = ioCfgMap["CleannerSlaveAxisDownLimit"]; //清粉从轴下限位 m_CleannerSlaveAxisHomeIndex = ioCfgMap["CleannerSlaveAxisHomeIndex"]; //清粉从轴原点 m_TrackCleanPos = ioCfgMap["TrackCleanPos"]; //轨道清粉位 m_CleannerUpButton = ioCfgMap["CleannerUpButton"]; //清粉上升按钮 m_CleannerDownButton = ioCfgMap["CleannerDownButton"]; //清粉下降按钮 m_CleannerMotionStop = ioCfgMap["CleannerMotionStop"]; //清粉升降急停 m_CleanBoxDoorClose = ioCfgMap["CleanBoxDoorClose"]; m_LeftVacuumButton = ioCfgMap["LeftVacuumButton"]; //左吸尘按钮 m_RightVacuumButton = ioCfgMap["RightVacuumButton"]; //右吸尘按钮 m_UpperLidOpen = ioCfgMap["UpperLidOpen"]; //上盖气缸开位 m_UpperLidClose = ioCfgMap["UpperLidClose"]; //上盖气缸关位 m_CleanBoxUpHorOpenPos = ioCfgMap["CleanBoxUpHorOpenPos"]; //清粉箱上盖横移开位 m_CleanBoxUpHorClosePos = ioCfgMap["CleanBoxUpHorClosePos"]; //清粉箱上盖横移关位 m_CleannerBoxCylinderPressOn = ioCfgMap["CleannerBoxCylinderPressOn"]; //清粉箱压紧位 m_CleannerBoxCylinderPressOff = ioCfgMap["CleannerBoxCylinderPressOff"]; //清粉箱放松位 m_PrintAirRenewalPressure = ioCfgMap["PrintAirRenewalPressure"]; //打印室换气源压力 m_CleannerBoxOn = ioCfgMap["CleannerBoxOn"]; //清粉箱缸体接触感应 m_CleannerPressOn = ioCfgMap["CleannerPressOn"]; //清粉位压紧气缸压紧位 m_CleannerPressOff = ioCfgMap["CleannerPressOff"]; //清粉位压紧气缸放松位 m_Clean3RContact = ioCfgMap["Clean3RContact"]; //清粉3R对接位 m_Clean3RCylinderContact = ioCfgMap["Clean3RCylinderContact"]; //清粉3R与缸体接触感应 m_Clean3RLeakOn = ioCfgMap["Clean3RLeakOn"]; //清粉3R漏气检测 m_ArmFrontLimit = ioCfgMap["ArmFrontLimit"]; //铺粉轴前限位 m_ArmBackLimit = ioCfgMap["ArmBackLimit"]; //铺粉轴后限位 m_ArmHomeIndex = ioCfgMap["ArmHomeIndex"]; //铺粉轴原点 m_LoadLeftLimit = ioCfgMap["LoadLeftLimit"]; //移载轴左限位 m_LoadRgithLimit = ioCfgMap["LoadRgithLimit"]; //移载轴右限位 m_LoadHomeIndex = ioCfgMap["LoadHomeIndex"]; //移载轴原点 m_LoadSearchEdgeOn = ioCfgMap["LoadSearchEdgeOn"]; //移载轴寻边感应 m_PrintStorageCar1PressureHigh = ioCfgMap["PrintStorageCar1PressureHigh"]; //打印存粉小车1压力高 m_PrintStorageCar2PressureHigh = ioCfgMap["PrintStorageCar2PressureHigh"]; //打印存粉小车2压力高 m_PowderPosition1 = ioCfgMap["PowderPosition1"]; //粉仓粉位1 m_PowderPosition2 = ioCfgMap["PowderPosition2"]; //粉仓粉位2 m_PowderPosition3 = ioCfgMap["PowderPosition3"]; //粉仓粉位3 m_PowderPosition4 = ioCfgMap["PowderPosition4"]; //粉仓粉位4 m_PowderPosition5 = ioCfgMap["PowderPosition5"]; //粉仓粉位5 m_PowderSupplyHomeIndex = ioCfgMap["PowderSupplyHomeIndex"]; //供粉转轴原点 m_SafeDoorClose1 = ioCfgMap["SafeDoorClose1"]; //安全门锁信号1 m_SafeDoorClose2 = ioCfgMap["SafeDoorClose2"]; //安全门锁信号2 m_SafeDoorClose3 = ioCfgMap["SafeDoorClose3"]; //安全门锁信号3 m_PrintableSignal = ioCfgMap["PrintableSignal"]; //允许打印信号 m_FanRunSignal = ioCfgMap["FanRunSignal"]; //风机运行信号 m_PrintStorageCar1Block = ioCfgMap["PrintStorageCar1Block"]; //打印存粉小车1堵塞 m_LightPathChillerAlarm = ioCfgMap["LightPathChillerAlarm"]; //光路冷水机报警 m_PurifierChillerAlarm = ioCfgMap["PurifierChillerAlarm"]; //净化器冷水机报警 m_PrintStorageCar2Block = ioCfgMap["PrintStorageCar2Block"]; //打印存粉小车2堵塞 m_PrintStorageCar2Connect = ioCfgMap["PrintStorageCar2Connect"]; //打印存粉小车2连接 m_CleanStorageCar1UpLimit = ioCfgMap["CleanStorageCar1UpLimit"]; //清粉存粉小车1上限 m_CleanStorageCar1DownLimit = ioCfgMap["CleanStorageCar1DownLimit"]; //清粉存粉小车1下限 m_CleanStorageCar1Block = ioCfgMap["CleanStorageCar1Block"]; //清粉存粉小车1堵塞 m_CleanStorageCar1Connect = ioCfgMap["CleanStorageCar1Connect"]; //清粉存粉小车1连接 m_CleanStorageCar2UpLimit = ioCfgMap["CleanStorageCar2UpLimit"]; //清粉存粉小车2上限 m_CleanStorageCar2DownLimit = ioCfgMap["CleanStorageCar2DownLimit"]; //清粉存粉小车2下限 m_CleanStorageCar2Block = ioCfgMap["CleanStorageCar2Block"]; //清粉存粉小车2堵塞 m_CleanStorageCar2Connect = ioCfgMap["CleanStorageCar2Connect"]; //清粉存粉小车2连接 m_CleanStorageCar1PressureHigh = ioCfgMap["CleanStorageCar1PressureHigh"]; //清粉存粉小车1压力高 m_CleanStorageCar2PressureHigh = ioCfgMap["CleanStorageCar2PressureHigh"]; //清粉存粉小车2压力高 } void IO_1000_V3::Update(unsigned char* arr) { m_SystemStop->m_IsActive = !((arr[0] & 0x1) > 0 ? true : false); m_HighPressureCheck->m_IsActive = ((arr[0] & 0x2) > 0 ? true : false); m_ProtectGasCheck->m_IsActive = ((arr[0] & 0x4) > 0 ? true : false); m_PowerDown->m_IsActive = ((arr[0] & 0x8) > 0 ? true : false); m_PowerOK->m_IsActive = ((arr[0] & 0x10) > 0 ? true : false); m_OutDoorOxygenAlarm->m_IsActive = ((arr[0] & 0x20) > 0 ? true : false); m_LaserChillerAlarm->m_IsActive = ((arr[0] & 0x40) > 0 ? true : false); m_BusAirSwitchClose->m_IsActive = ((arr[0] & 0x80) > 0 ? true : false); m_ExtMachineAirSwitchClose->m_IsActive = ((arr[1] & 0x1) > 0 ? true : false); m_HeattingAirSwitchClose->m_IsActive = ((arr[1] & 0x2) > 0 ? true : false); m_LaserAirSwitchClose->m_IsActive = ((arr[1] & 0x4) > 0 ? true : false); m_ServoAirSwitchClose->m_IsActive = ((arr[1] & 0x8) > 0 ? true : false); m_Laser1Alarm->m_IsActive = ((arr[1] & 0x10) > 0 ? true : false); m_Laser2Alarm->m_IsActive = ((arr[1] & 0x20) > 0 ? true : false); m_Laser3Alarm->m_IsActive = ((arr[1] & 0x40) > 0 ? true : false); m_Laser4Alarm->m_IsActive = ((arr[1] & 0x80) > 0 ? true : false); m_PrintStorageCar1UpLimit->m_IsActive = ((arr[2] & 0x1) > 0 ? true : false); m_PrintStorageCar1DownLimit->m_IsActive = ((arr[2] & 0x2) > 0 ? true : false); m_PrintStorageCar1Connect->m_IsActive = ((arr[2] & 0x4) > 0 ? true : false); m_PrintStorageCar2UpLimit->m_IsActive = ((arr[2] & 0x8) > 0 ? true : false); m_PrintStorageCar2DownLimit->m_IsActive = ((arr[2] & 0x10) > 0 ? true : false); m_SSRInput->m_IsActive = ((arr[2] & 0x20) > 0 ? true : false); m_SSROutput->m_IsActive = ((arr[2] & 0x40) > 0 ? true : false); m_PrintMainAxisUpLimit->m_IsActive = !((arr[2] & 0x80) > 0 ? true : false); m_PrintMainAxisDownLimit->m_IsActive = !((arr[3] & 0x1) > 0 ? true : false); m_PrintMainHomeIndex->m_IsActive = ((arr[3] & 0x2) > 0 ? true : false); m_PrintSlaveAxisUpLimit->m_IsActive = !((arr[3] & 0x4) > 0 ? true : false); m_PrintSlaveAxisDownLimit->m_IsActive = !((arr[3] & 0x8) > 0 ? true : false); m_PrintSlaveHomeIndex->m_IsActive = ((arr[3] & 0x10) > 0 ? true : false); m_Print3RHookOffPos->m_IsActive = ((arr[3] & 0x20) > 0 ? true : false); m_Print3RCylinderContact->m_IsActive = ((arr[3] & 0x40) > 0 ? true : false); m_Clean3RLeakOn->m_IsActive = ((arr[3] & 0x80) > 0 ? true : false); m_PrintPressOn->m_IsActive = ((arr[4] & 0x1) > 0 ? true : false); m_PrintPressOff->m_IsActive = ((arr[4] & 0x2) > 0 ? true : false); m_PrintJackUpOn->m_IsActive = ((arr[4] & 0x4) > 0 ? true : false); m_PrintJackUpOff->m_IsActive = ((arr[4] & 0x8) > 0 ? true : false); m_CylinderFixExtendOn->m_IsActive = ((arr[4] & 0x40) > 0 ? true : false); m_CylinderFixExtendOff->m_IsActive = ((arr[4] & 0x80) > 0 ? true : false); m_TrackPrintPos->m_IsActive = ((arr[5] & 0x4) > 0 ? true : false); m_PrintCylinderOn->m_IsActive = ((arr[5] & 0x8) > 0 ? true : false); m_CleannerMainAxisUpLimit->m_IsActive = !((arr[5] & 0x10) > 0 ? true : false); m_CleannerMainAxisDownLimit->m_IsActive = !((arr[5] & 0x20) > 0 ? true : false); m_CleannerMainHomeIndex->m_IsActive = ((arr[5] & 0x40) > 0 ? true : false); m_CleannerSlaveAxisUpLimit->m_IsActive = !((arr[5] & 0x80) > 0 ? true : false); m_CleannerSlaveAxisDownLimit->m_IsActive = !((arr[6] & 0x1) > 0 ? true : false); m_CleannerSlaveAxisHomeIndex->m_IsActive = ((arr[6] & 0x2) > 0 ? true : false); m_TrackCleanPos->m_IsActive = ((arr[6] & 0x8) > 0 ? true : false); m_CleannerUpButton->m_IsActive = ((arr[6] & 0x10) > 0 ? true : false); m_CleannerDownButton->m_IsActive = ((arr[6] & 0x20) > 0 ? true : false); m_CleannerMotionStop->m_IsActive = !((arr[6] & 0x80) > 0 ? true : false); m_CleanBoxDoorClose->m_IsActive = ((arr[7] & 0x1) > 0 ? true : false); m_LeftVacuumButton->m_IsActive = ((arr[7] & 0x2) > 0 ? true : false); m_RightVacuumButton->m_IsActive = ((arr[7] & 0x4) > 0 ? true : false); m_UpperLidOpen->m_IsActive = ((arr[7] & 0x8) > 0 ? true : false); m_UpperLidClose->m_IsActive = ((arr[7] & 0x10) > 0 ? true : false); m_CleanBoxUpHorOpenPos->m_IsActive = ((arr[7] & 0x20) > 0 ? true : false); m_CleanBoxUpHorClosePos->m_IsActive = ((arr[7] & 0x40) > 0 ? true : false); m_CleannerBoxCylinderPressOn->m_IsActive = ((arr[7] & 0x80) > 0 ? true : false); m_CleannerBoxCylinderPressOff->m_IsActive = ((arr[8] & 0x1) > 0 ? true : false); m_PrintAirRenewalPressure->m_IsActive = ((arr[8] & 0x2) > 0 ? true : false); m_CleannerBoxOn->m_IsActive = ((arr[8] & 0x20) > 0 ? true : false); m_CleannerPressOn->m_IsActive = ((arr[8] & 0x40) > 0 ? true : false); m_CleannerPressOff->m_IsActive = ((arr[8] & 0x80) > 0 ? true : false); m_Clean3RContact->m_IsActive = ((arr[9] & 0x4) > 0 ? true : false); m_Clean3RCylinderContact->m_IsActive = ((arr[9] & 0x8) > 0 ? true : false); m_Clean3RLeakOn->m_IsActive = ((arr[9] & 0x10) > 0 ? true : false); m_ArmFrontLimit->m_IsActive = !((arr[9] & 0x20) > 0 ? true : false); m_ArmBackLimit->m_IsActive = !((arr[9] & 0x40) > 0 ? true : false); m_ArmHomeIndex->m_IsActive = ((arr[9] & 0x80) > 0 ? true : false); m_LoadLeftLimit->m_IsActive = !((arr[10] & 0x1) > 0 ? true : false); m_LoadRgithLimit->m_IsActive = !((arr[10] & 0x2) > 0 ? true : false); m_LoadHomeIndex->m_IsActive = ((arr[10] & 0x4) > 0 ? true : false); m_LoadSearchEdgeOn->m_IsActive = ((arr[10] & 0x8) > 0 ? true : false); m_PrintStorageCar1PressureHigh->m_IsActive = ((arr[10] & 0x10) > 0 ? true : false); m_PrintStorageCar2PressureHigh->m_IsActive = ((arr[10] & 0x20) > 0 ? true : false); m_PowderPosition5->m_IsActive = ((arr[10] & 0x40) > 0 ? true : false); m_PowderPosition4->m_IsActive = ((arr[10] & 0x80) > 0 ? true : false); m_PowderPosition3->m_IsActive = ((arr[11] & 0x1) > 0 ? true : false); m_PowderPosition2->m_IsActive = ((arr[11] & 0x2) > 0 ? true : false); m_PowderPosition1->m_IsActive = ((arr[11] & 0x4) > 0 ? true : false); m_PowderSupplyHomeIndex->m_IsActive = ((arr[11] & 0x8) > 0 ? true : false); m_SafeDoorClose1->m_IsActive = ((arr[11] & 0x10) > 0 ? true : false); m_SafeDoorClose2->m_IsActive = ((arr[11] & 0x20) > 0 ? true : false); m_SafeDoorClose3->m_IsActive = ((arr[11] & 0x40) > 0 ? true : false); m_PrintableSignal->m_IsActive = ((arr[11] & 0x80) > 0 ? true : false); m_FanRunSignal->m_IsActive = ((arr[12] & 0x1) > 0 ? true : false); m_PrintStorageCar1Block->m_IsActive = ((arr[12] & 0x2) > 0 ? true : false); m_LightPathChillerAlarm->m_IsActive = ((arr[12] & 0x4) > 0 ? true : false); m_PurifierChillerAlarm->m_IsActive = ((arr[12] & 0x8) > 0 ? true : false); m_PrintStorageCar2Block->m_IsActive = ((arr[12] & 0x10) > 0 ? true : false); m_PrintStorageCar2Connect->m_IsActive = ((arr[12] & 0x20) > 0 ? true : false); m_CleanStorageCar1UpLimit->m_IsActive = ((arr[12] & 0x40) > 0 ? true : false); m_CleanStorageCar1DownLimit->m_IsActive = ((arr[12] & 0x80) > 0 ? true : false); m_CleanStorageCar1Block->m_IsActive = ((arr[13] & 0x01) > 0 ? true : false); m_CleanStorageCar1Connect->m_IsActive = ((arr[13] & 0x02) > 0 ? true : false); m_CleanStorageCar2UpLimit->m_IsActive = ((arr[13] & 0x04) > 0 ? true : false); m_CleanStorageCar2DownLimit->m_IsActive = ((arr[13] & 0x08) > 0 ? true : false); m_CleanStorageCar2Block->m_IsActive = ((arr[13] & 0x10) > 0 ? true : false); m_CleanStorageCar2Connect->m_IsActive = ((arr[13] & 0x20) > 0 ? true : false); m_CleanStorageCar1PressureHigh->m_IsActive = ((arr[13] & 0x40) > 0 ? true : false); m_CleanStorageCar2PressureHigh->m_IsActive = ((arr[13] & 0x80) > 0 ? true : false); int outputStartAddr = 24; m_ServoMotor->m_IsActive = ((arr[outputStartAddr] & 0x1) > 0 ? true : false); m_Laser->m_IsActive = ((arr[outputStartAddr] & 0x2) > 0 ? true : false); m_Laser1Enable->m_IsActive = ((arr[outputStartAddr] & 0x4) > 0 ? true : false); m_Laser1Start->m_IsActive = ((arr[outputStartAddr] & 0x8) > 0 ? true : false); m_Laser1Red->m_IsActive = ((arr[outputStartAddr] & 0x10) > 0 ? true : false); m_Laser2Enable->m_IsActive = ((arr[outputStartAddr] & 0x20) > 0 ? true : false); m_Laser2Start->m_IsActive = ((arr[outputStartAddr] & 0x40) > 0 ? true : false); m_Laser2Red->m_IsActive = ((arr[outputStartAddr] & 0x80) > 0 ? true : false); m_Laser3Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x1) > 0 ? true : false); m_Laser3Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x2) > 0 ? true : false); m_Laser3Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x4) > 0 ? true : false); m_Laser4Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x8) > 0 ? true : false); m_Laser4Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x10) > 0 ? true : false); m_Laser4Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x20) > 0 ? true : false); m_PrintDoorLock->m_IsActive = ((arr[outputStartAddr + 1] & 0x40) > 0 ? true : false); m_LightOn->m_IsActive = ((arr[outputStartAddr + 1] & 0x80) > 0 ? true : false); m_YellowLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x1) > 0 ? true : false); m_GreenLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x2) > 0 ? true : false); m_RedLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x4) > 0 ? true : false); m_Buzzer->m_IsActive = ((arr[outputStartAddr + 2] & 0x8) > 0 ? true : false); m_PrintAssistGas->m_IsActive = ((arr[outputStartAddr + 2] & 0x10) > 0 ? true : false); m_PrintAirEvacuation->m_IsActive = ((arr[outputStartAddr + 2] & 0x20) > 0 ? true : false); m_PressureRelease->m_IsActive = ((arr[outputStartAddr + 2] & 0x40) > 0 ? true : false); m_ScannerCool->m_IsActive = ((arr[outputStartAddr + 2] & 0x80) > 0 ? true : false); m_Heating->m_IsActive = ((arr[outputStartAddr + 3] & 0x1) > 0 ? true : false); m_PrintStorageCar1DropPowderValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x2) > 0 ? true : false); m_PrintSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x4) > 0 ? true : false); m_PrintPress->m_IsActive = ((arr[outputStartAddr + 3] & 0x8) > 0 ? true : false); m_PrintUnpress->m_IsActive = ((arr[outputStartAddr + 3] & 0x10) > 0 ? true : false); m_PrintJackUp->m_IsActive = ((arr[outputStartAddr + 3] & 0x20) > 0 ? true : false); m_PrintJackDown->m_IsActive = ((arr[outputStartAddr + 3] & 0x40) > 0 ? true : false); m_PrintCylindFixed->m_IsActive = ((arr[outputStartAddr + 4] & 0x2) > 0 ? true : false); m_PrintCylindRelease->m_IsActive = ((arr[outputStartAddr + 4] & 0x4) > 0 ? true : false); m_Print3RRelease->m_IsActive = ((arr[outputStartAddr + 4] & 0x20) > 0 ? true : false); m_PrintMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x40) > 0 ? true : false); m_PrintSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x80) > 0 ? true : false); m_Print3RDeoxygenSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x1) > 0 ? true : false); m_Print3RStablePressureSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x2) > 0 ? true : false); m_Print3RAirEvacuation->m_IsActive = ((arr[outputStartAddr + 5] & 0x4) > 0 ? true : false); m_PowderCleanerUpOpenGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x8) > 0 ? true : false); m_PowderCleanerUpCloseGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x10) > 0 ? true : false); m_CleanCylinderPressing->m_IsActive = ((arr[outputStartAddr + 5] & 0x20) > 0 ? true : false); m_CleanCylinderRelease->m_IsActive = ((arr[outputStartAddr + 5] & 0x40) > 0 ? true : false); m_CleanBoxDeoxygenValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x1) > 0 ? true : false); m_CleanBoxEvacuationValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x2) > 0 ? true : false); m_CleanBoxUpHorOpen->m_IsActive = ((arr[outputStartAddr + 6] & 0x4) > 0 ? true : false); m_CleanBoxUpHorClose->m_IsActive = ((arr[outputStartAddr + 6] & 0x8) > 0 ? true : false); m_PowderCleannerBoxPress->m_IsActive = ((arr[outputStartAddr + 6] & 0x10) > 0 ? true : false); m_PowderCleannerBoxUnpress->m_IsActive = ((arr[outputStartAddr + 6] & 0x20) > 0 ? true : false); m_Clean3RRelease->m_IsActive = ((arr[outputStartAddr + 6] & 0x80) > 0 ? true : false); m_CleanMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x1) > 0 ? true : false); m_CleanSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x2) > 0 ? true : false); m_CleanCabinArriveLamp->m_IsActive = ((arr[outputStartAddr + 7] & 0x4) > 0 ? true : false); m_LoadElectromagnet->m_IsActive = ((arr[outputStartAddr + 7] & 0x8) > 0 ? true : false); m_PrintVacuumEnterSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x10) > 0 ? true : false); m_PrintStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x20) > 0 ? true : false); m_PrintStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x40) > 0 ? true : false); m_PurifierCoolerPower->m_IsActive = ((arr[outputStartAddr + 7] & 0x80) > 0 ? true : false); m_PrintStorageCar2DropPowderValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x02) > 0 ? true : false); m_PrintStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x04) > 0 ? true : false); m_PrintStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x08) > 0 ? true : false); m_PrintSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x10) > 0 ? true : false); m_CleanStorageCar1DropPowderValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x20) > 0 ? true : false); m_CleanStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x40) > 0 ? true : false); m_CleanStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x80) > 0 ? true : false); m_CleanSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x01) > 0 ? true : false); m_CleanStorageCar2DropPowderValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x02) > 0 ? true : false); m_CleanStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x04) > 0 ? true : false); m_CleanStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x08) > 0 ? true : false); m_CleanSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x10) > 0 ? true : false); m_PrintAirRenewalInOutValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x20) > 0 ? true : false); m_PrintAirRenewalPresRelValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x40) > 0 ? true : false); m_LaserPowerActive->m_IsActive = ((arr[outputStartAddr + 9] & 0x80) > 0 ? true : false); bitset<8> doorState; doorState.reset(); doorState[0] = m_SafeDoorClose1->m_IsActive; doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; m_SafeDoorState = doorState.to_ulong(); } void IO_1000_V4::Init(map& ioCfgMap) { m_ServoMotor = ioCfgMap["ServoMotor"]; //伺服电源 m_Laser = ioCfgMap["Laser"]; //激光器 m_Laser1Enable = ioCfgMap["Laser1Enable"]; //激光1使能 m_Laser1Start = ioCfgMap["Laser1Start"]; //激光1启动 m_Laser1Red = ioCfgMap["Laser1Red"]; //激光1红光 m_Laser2Enable = ioCfgMap["Laser2Enable"]; //激光2使能 m_Laser2Start = ioCfgMap["Laser2Start"]; //激光2启动 m_Laser2Red = ioCfgMap["Laser2Red"]; //激光2红光 m_Laser3Enable = ioCfgMap["Laser3Enable"]; //激光3使能 m_Laser3Start = ioCfgMap["Laser3Start"]; //激光3启动 m_Laser3Red = ioCfgMap["Laser3Red"]; //激光3红光 m_Laser4Enable = ioCfgMap["Laser4Enable"]; //激光4使能 m_Laser4Start = ioCfgMap["Laser4Start"]; //激光4启动 m_Laser4Red = ioCfgMap["Laser4Red"]; //激光4红光 m_PrintDoorLock = ioCfgMap["PrintDoorLock"]; //打印舱门电锁 m_LightOn = ioCfgMap["LightOn"]; //照明 m_YellowLamp = ioCfgMap["YellowLamp"]; //黄灯 m_GreenLamp = ioCfgMap["GreenLamp"]; //绿灯 m_RedLamp = ioCfgMap["RedLamp"]; //红灯 m_Buzzer = ioCfgMap["Buzzer"]; //蜂鸣器 m_PrintAssistGas = ioCfgMap["PrintAssistGas"]; //辅助气 m_PrintAirEvacuation = ioCfgMap["PrintAirEvacuation"]; //排气阀 m_PressureRelease = ioCfgMap["PressureRelease"]; //压力释放 m_ScannerCool = ioCfgMap["ScannerCool"]; //振镜冷却 m_Heating = ioCfgMap["Heating"]; //加热 m_PrintStorageCar1DropPowderValve = ioCfgMap["PrintStorageCar1DropPowderValve"]; //打印存粉小车1下粉阀 m_PrintSlot1PipeValve = ioCfgMap["PrintSlot1PipeValve"]; //打印槽1管道阀 m_PrintPress = ioCfgMap["PrintPress"]; //打印位压紧 m_PrintUnpress = ioCfgMap["PrintUnpress"]; //打印位放松 m_PrintJackUp = ioCfgMap["PrintJackUp"]; //打印顶升气缸上升 m_PrintJackDown = ioCfgMap["PrintJackDown"]; //打印顶升气缸下降 m_Print3RForceUnlock = ioCfgMap["Print3RForceUnlock"]; //打印3R强制解锁 m_Clean3RForceUnlock = ioCfgMap["Clean3RForceUnlock"]; //清粉3R强制解锁 m_PrintCylindFixed = ioCfgMap["PrintCylindFixed"]; //打印位缸体固定 m_PrintCylindRelease = ioCfgMap["PrintCylindRelease"]; //打印位缸体松开 m_Print3RRelease = ioCfgMap["Print3RRelease"]; //打印3R夹具松开 m_PrintMainAxisBrake = ioCfgMap["PrintMainAxisBrake"]; //打印主轴刹车 m_PrintSlaveAxisBrake = ioCfgMap["PrintSlaveAxisBrake"]; //打印从轴刹车 m_Print3RDeoxygenSalve = ioCfgMap["Print3RDeoxygenSalve"]; //打印3R除氧进气阀 m_Print3RStablePressureSalve = ioCfgMap["Print3RStablePressureSalve"]; //打印3R稳压气阀 m_Print3RAirEvacuation = ioCfgMap["Print3RAirEvacuation"]; //打印3R除氧排气阀 m_PowderCleanerUpOpenGap = ioCfgMap["PowderCleanerUpOpenGap"]; //清粉箱上盖打开阀 m_PowderCleanerUpCloseGap = ioCfgMap["PowderCleanerUpCloseGap"]; //清粉箱上盖关闭阀 m_CleanCylinderPressing = ioCfgMap["CleanCylinderPressing"]; //清粉箱缸体压紧 m_CleanCylinderRelease = ioCfgMap["CleanCylinderRelease"]; //清粉箱缸体松开 m_CleanBoxDeoxygenValve = ioCfgMap["CleanBoxDeoxygenValve"]; //清粉箱除氧进气阀 m_CleanBoxEvacuationValve = ioCfgMap["CleanBoxEvacuationValve"]; //清粉箱除氧排气阀 m_CleanBoxUpHorOpen = ioCfgMap["CleanBoxUpHorOpen"]; m_CleanBoxUpHorClose = ioCfgMap["CleanBoxUpHorClose"]; m_PowderCleannerBoxPress = ioCfgMap["PowderCleannerBoxPress"]; //清粉位压紧气缸压紧 m_PowderCleannerBoxUnpress = ioCfgMap["PowderCleannerBoxUnpress"]; //清粉位压紧气缸放松 m_Clean3RRelease = ioCfgMap["Clean3RRelease"]; //清粉3R夹具松开 m_CleanMainAxisBrake = ioCfgMap["CleanMainAxisBrake"]; //清粉主轴刹车 m_CleanSlaveAxisBrake = ioCfgMap["CleanSlaveAxisBrake"]; //清粉从轴刹车 m_CleanCabinArriveLamp = ioCfgMap["CleanCabinArriveLamp"]; //脱离舱体到位指示灯 m_LoadAxisBrake = ioCfgMap["LoadAxisBrake"]; //移载电磁铁 m_PrintVacuumEnterSlave = ioCfgMap["PrintVacuumEnterSlave"]; //打印室吸尘进气阀 m_PrintStorageCar1DeoxygenValve = ioCfgMap["PrintStorageCar1DeoxygenValve"]; //打印存粉小车1除氧进气阀 m_PrintStorageCar1EvacuationValve = ioCfgMap["PrintStorageCar1EvacuationValve"]; //打印存粉小车1除氧排气阀 m_PurifierCoolerPower = ioCfgMap["PurifierCoolerPower"]; //净化器冷水机电源 m_PrintStorageCar2DropPowderValve = ioCfgMap["PrintStorageCar2DropPowderValve"]; //打印存粉小车2下粉阀 m_PrintStorageCar2DeoxygenValve = ioCfgMap["PrintStorageCar2DeoxygenValve"]; //打印存粉小车2除氧进气阀 m_PrintStorageCar2EvacuationValve = ioCfgMap["PrintStorageCar2EvacuationValve"]; //打印存粉小车2除氧排气阀 m_PrintSlot2PipeValve = ioCfgMap["PrintSlot2PipeValve"]; //打印槽2管道阀 m_CleanStorageCar1DropPowderValve = ioCfgMap["CleanStorageCar1DropPowderValve"]; //清粉存粉小车1下粉阀 m_CleanStorageCar1DeoxygenValve = ioCfgMap["CleanStorageCar1DeoxygenValve"]; //清粉存粉小车1除氧进气阀 m_CleanStorageCar1EvacuationValve = ioCfgMap["CleanStorageCar1EvacuationValve"]; //清粉存粉小车1除氧排气阀 m_CleanSlot1PipeValve = ioCfgMap["CleanSlot1PipeValve"]; //清粉槽1管道阀 m_CleanStorageCar2DropPowderValve = ioCfgMap["CleanStorageCar2DropPowderValve"]; //清粉存粉小车2下粉阀 m_CleanStorageCar2DeoxygenValve = ioCfgMap["CleanStorageCar2DeoxygenValve"]; //清粉存粉小车2除氧进气阀 m_CleanStorageCar2EvacuationValve = ioCfgMap["CleanStorageCar2EvacuationValve"]; //清粉存粉小车2除氧排气阀 m_CleanSlot2PipeValve = ioCfgMap["CleanSlot2PipeValve"]; //清粉槽2管道阀 m_PrintAirRenewalInOutValve = ioCfgMap["PrintAirRenewalInOutValve"]; //打印室换气进出阀 m_PrintAirRenewalPresRelValve = ioCfgMap["PrintAirRenewalPresRelValve"]; //打印室换气泄压阀 m_LaserPowerActive = ioCfgMap["LaserPowerActive"]; //激光电源激活 m_SystemStop = ioCfgMap["SystemStop"]; //系统急停 m_HighPressureCheck = ioCfgMap["HighPressureCheck"]; //高压报警 m_ProtectGasCheck = ioCfgMap["ProtectGasCheck"]; //保护气检测 m_PowerDown = ioCfgMap["PowerDown"]; //外部断电 m_PowerOK = ioCfgMap["PowerOK"]; //电源正常 m_OutDoorOxygenAlarm = ioCfgMap["OutDoorOxygenAlarm"]; //室外测氧报警 m_LaserChillerAlarm = ioCfgMap["LaserChillerAlarm"]; //激光器冷水机报警 m_BusAirSwitchClose = ioCfgMap["BusAirSwitchClose"]; //总空开触点 m_ExtMachineAirSwitchClose = ioCfgMap["ExtMachineAirSwitchClose"]; //外部设备空开触点 m_HeattingAirSwitchClose = ioCfgMap["HeattingAirSwitchClose"]; //加热空开触点 m_LaserAirSwitchClose = ioCfgMap["LaserAirSwitchClose"]; //激光空开触点 m_ServoAirSwitchClose = ioCfgMap["ServoAirSwitchClose"]; //伺服空开触点 m_Laser1Alarm = ioCfgMap["Laser1Alarm"]; //激光器1报警 m_Laser2Alarm = ioCfgMap["Laser2Alarm"]; //激光器2报警 m_Laser3Alarm = ioCfgMap["Laser3Alarm"]; //激光器3报警 m_Laser4Alarm = ioCfgMap["Laser4Alarm"]; //激光器4报警 m_PrintStorageCar1UpLimit = ioCfgMap["PrintStorageCar1UpLimit"]; //打印存粉小车1上限 m_PrintStorageCar1DownLimit = ioCfgMap["PrintStorageCar1DownLimit"]; //打印存粉小车1下限 m_PrintStorageCar1Connect = ioCfgMap["PrintStorageCar1Connect"]; //打印存粉小车1连接 m_PrintStorageCar2UpLimit = ioCfgMap["PrintStorageCar2UpLimit"]; //打印存粉小车2上限 m_PrintStorageCar2DownLimit = ioCfgMap["PrintStorageCar2DownLimit"]; //打印存粉小车2下限 m_SSRInput = ioCfgMap["SSRInput"]; //加热输入检测 m_SSROutput = ioCfgMap["SSROutput"]; //加热输出检测 m_PrintMainAxisUpLimit = ioCfgMap["PrintMainAxisUpLimit"]; //打印主轴上限位 m_PrintMainAxisDownLimit = ioCfgMap["PrintMainAxisDownLimit"]; //打印主轴下限位 m_PrintMainHomeIndex = ioCfgMap["PrintMainHomeIndex"]; //打印主轴原点 m_PrintSlaveAxisUpLimit = ioCfgMap["PrintSlaveAxisUpLimit"]; //打印从轴上限位 m_PrintSlaveAxisDownLimit = ioCfgMap["PrintSlaveAxisDownLimit"]; //打印从轴下限位 m_PrintSlaveHomeIndex = ioCfgMap["PrintSlaveHomeIndex"]; //打印从轴原点 m_Print3RHookOffPos = ioCfgMap["Print3RHookOffPos"]; //打印3R脱离位 m_Print3RCylinderContact = ioCfgMap["Print3RCylinderContact"]; //打印3R与缸体接触感应 m_Print3RLeakOn = ioCfgMap["Print3RLeakOn"]; //打印3R漏气检测 m_PrintPressOn = ioCfgMap["PrintPressOn"]; //打印位压紧气缸压紧位 m_PrintPressOff = ioCfgMap["PrintPressOff"]; //打印位压紧气缸松开位 m_PrintJackUpOn = ioCfgMap["PrintJackUpOn"]; //打印位顶升气缸顶起位 m_PrintJackUpOff = ioCfgMap["PrintJackUpOff"]; //打印位顶升气缸下降位 m_CylinderFixExtendOn = ioCfgMap["CylinderFixExtendOn"]; //打印位左右定位气缸伸出位 m_CylinderFixExtendOff = ioCfgMap["CylinderFixExtendOff"]; //打印位左右定位气缸缩回位 m_Print3RLockSensor = ioCfgMap["Print3RLockSensor"]; //打印3R锁紧感应 m_Clean3RLockSensor = ioCfgMap["Clean3RLockSensor"]; //清粉3R锁紧感应 m_TrackPrintPos = ioCfgMap["TrackPrintPos"]; //轨道打印位 m_PrintCylinderOn = ioCfgMap["PrintCylinderOn"]; //打印位缸体检测 m_CleannerMainAxisUpLimit = ioCfgMap["CleannerMainAxisUpLimit"]; //清粉主轴上限位 m_CleannerMainAxisDownLimit = ioCfgMap["CleannerMainAxisDownLimit"]; //清粉主轴下限位 m_CleannerMainHomeIndex = ioCfgMap["CleannerMainHomeIndex"]; //清粉主轴原点 m_CleannerSlaveAxisUpLimit = ioCfgMap["CleannerSlaveAxisUpLimit"]; //清粉从轴上限位 m_CleannerSlaveAxisDownLimit = ioCfgMap["CleannerSlaveAxisDownLimit"]; //清粉从轴下限位 m_CleannerSlaveAxisHomeIndex = ioCfgMap["CleannerSlaveAxisHomeIndex"]; //清粉从轴原点 m_TrackCleanPos = ioCfgMap["TrackCleanPos"]; //轨道清粉位 m_CleannerUpButton = ioCfgMap["CleannerUpButton"]; //清粉上升按钮 m_CleannerDownButton = ioCfgMap["CleannerDownButton"]; //清粉下降按钮 m_CleannerMotionStop = ioCfgMap["CleannerMotionStop"]; //清粉升降急停 m_CleanBoxDoorClose = ioCfgMap["CleanBoxDoorClose"]; m_LeftVacuumButton = ioCfgMap["LeftVacuumButton"]; //左吸尘按钮 m_RightVacuumButton = ioCfgMap["RightVacuumButton"]; //右吸尘按钮 m_UpperLidOpen = ioCfgMap["UpperLidOpen"]; //上盖气缸开位 m_UpperLidClose = ioCfgMap["UpperLidClose"]; //上盖气缸关位 m_CleanBoxUpHorOpenPos = ioCfgMap["CleanBoxUpHorOpenPos"]; //清粉箱上盖横移开位 m_CleanBoxUpHorClosePos = ioCfgMap["CleanBoxUpHorClosePos"]; //清粉箱上盖横移关位 m_CleannerBoxCylinderPressOn = ioCfgMap["CleannerBoxCylinderPressOn"]; //清粉箱压紧位 m_CleannerBoxCylinderPressOff = ioCfgMap["CleannerBoxCylinderPressOff"]; //清粉箱放松位 m_PrintAirRenewalPressure = ioCfgMap["PrintAirRenewalPressure"]; //打印室换气源压力 m_CleannerBoxOn = ioCfgMap["CleannerBoxOn"]; //清粉箱缸体接触感应 m_CleannerPressOn = ioCfgMap["CleannerPressOn"]; //清粉位压紧气缸压紧位 m_CleannerPressOff = ioCfgMap["CleannerPressOff"]; //清粉位压紧气缸放松位 m_Print3RReleaseSensor = ioCfgMap["Print3RReleaseSensor"]; //打印3R松开感应 m_Clean3RReleaseSensor = ioCfgMap["Clean3RReleaseSensor"]; //清粉3R松开感应 m_Clean3RContact = ioCfgMap["Clean3RContact"]; //清粉3R对接位 m_Clean3RCylinderContact = ioCfgMap["Clean3RCylinderContact"]; //清粉3R与缸体接触感应 m_Clean3RLeakOn = ioCfgMap["Clean3RLeakOn"]; //清粉3R漏气检测 m_ArmFrontLimit = ioCfgMap["ArmFrontLimit"]; //铺粉轴前限位 m_ArmBackLimit = ioCfgMap["ArmBackLimit"]; //铺粉轴后限位 m_ArmHomeIndex = ioCfgMap["ArmHomeIndex"]; //铺粉轴原点 m_LoadLeftLimit = ioCfgMap["LoadLeftLimit"]; //移载轴左限位 m_LoadRgithLimit = ioCfgMap["LoadRgithLimit"]; //移载轴右限位 m_LoadHomeIndex = ioCfgMap["LoadHomeIndex"]; //移载轴原点 m_LoadSearchEdgeOn = ioCfgMap["LoadSearchEdgeOn"]; //移载轴寻边感应 m_PrintStorageCar1PressureHigh = ioCfgMap["PrintStorageCar1PressureHigh"]; //打印存粉小车1压力高 m_PrintStorageCar2PressureHigh = ioCfgMap["PrintStorageCar2PressureHigh"]; //打印存粉小车2压力高 m_PowderPosition1 = ioCfgMap["PowderPosition1"]; //粉仓粉位1 m_PowderPosition2 = ioCfgMap["PowderPosition2"]; //粉仓粉位2 m_PowderPosition3 = ioCfgMap["PowderPosition3"]; //粉仓粉位3 m_PowderPosition4 = ioCfgMap["PowderPosition4"]; //粉仓粉位4 m_PowderPosition5 = ioCfgMap["PowderPosition5"]; //粉仓粉位5 m_PowderSupplyHomeIndex = ioCfgMap["PowderSupplyHomeIndex"]; //供粉转轴原点 m_SafeDoorClose1 = ioCfgMap["SafeDoorClose1"]; //安全门锁信号1 m_SafeDoorClose2 = ioCfgMap["SafeDoorClose2"]; //安全门锁信号2 m_SafeDoorClose3 = ioCfgMap["SafeDoorClose3"]; //安全门锁信号3 m_PrintableSignal = ioCfgMap["PrintableSignal"]; //允许打印信号 m_FanRunSignal = ioCfgMap["FanRunSignal"]; //风机运行信号 m_PrintStorageCar1Block = ioCfgMap["PrintStorageCar1Block"]; //打印存粉小车1堵塞 m_LightPathChillerAlarm = ioCfgMap["LightPathChillerAlarm"]; //光路冷水机报警 m_PurifierChillerAlarm = ioCfgMap["PurifierChillerAlarm"]; //净化器冷水机报警 m_PrintStorageCar2Block = ioCfgMap["PrintStorageCar2Block"]; //打印存粉小车2堵塞 m_PrintStorageCar2Connect = ioCfgMap["PrintStorageCar2Connect"]; //打印存粉小车2连接 m_CleanStorageCar1UpLimit = ioCfgMap["CleanStorageCar1UpLimit"]; //清粉存粉小车1上限 m_CleanStorageCar1DownLimit = ioCfgMap["CleanStorageCar1DownLimit"]; //清粉存粉小车1下限 m_CleanStorageCar1Block = ioCfgMap["CleanStorageCar1Block"]; //清粉存粉小车1堵塞 m_CleanStorageCar1Connect = ioCfgMap["CleanStorageCar1Connect"]; //清粉存粉小车1连接 m_CleanStorageCar2UpLimit = ioCfgMap["CleanStorageCar2UpLimit"]; //清粉存粉小车2上限 m_CleanStorageCar2DownLimit = ioCfgMap["CleanStorageCar2DownLimit"]; //清粉存粉小车2下限 m_CleanStorageCar2Block = ioCfgMap["CleanStorageCar2Block"]; //清粉存粉小车2堵塞 m_CleanStorageCar2Connect = ioCfgMap["CleanStorageCar2Connect"]; //清粉存粉小车2连接 m_CleanStorageCar1PressureHigh = ioCfgMap["CleanStorageCar1PressureHigh"]; //清粉存粉小车1压力高 m_CleanStorageCar2PressureHigh = ioCfgMap["CleanStorageCar2PressureHigh"]; //清粉存粉小车2压力高 } void IO_1000_V4::Update(unsigned char* arr) { m_SystemStop->m_IsActive = !((arr[0] & 0x1) > 0 ? true : false); m_HighPressureCheck->m_IsActive = ((arr[0] & 0x2) > 0 ? true : false); m_ProtectGasCheck->m_IsActive = ((arr[0] & 0x4) > 0 ? true : false); m_PowerDown->m_IsActive = ((arr[0] & 0x8) > 0 ? true : false); m_PowerOK->m_IsActive = ((arr[0] & 0x10) > 0 ? true : false); m_OutDoorOxygenAlarm->m_IsActive = ((arr[0] & 0x20) > 0 ? true : false); m_LaserChillerAlarm->m_IsActive = ((arr[0] & 0x40) > 0 ? true : false); m_BusAirSwitchClose->m_IsActive = ((arr[0] & 0x80) > 0 ? true : false); m_ExtMachineAirSwitchClose->m_IsActive = ((arr[1] & 0x1) > 0 ? true : false); m_HeattingAirSwitchClose->m_IsActive = ((arr[1] & 0x2) > 0 ? true : false); m_LaserAirSwitchClose->m_IsActive = ((arr[1] & 0x4) > 0 ? true : false); m_ServoAirSwitchClose->m_IsActive = ((arr[1] & 0x8) > 0 ? true : false); m_Laser1Alarm->m_IsActive = ((arr[1] & 0x10) > 0 ? true : false); m_Laser2Alarm->m_IsActive = ((arr[1] & 0x20) > 0 ? true : false); m_Laser3Alarm->m_IsActive = ((arr[1] & 0x40) > 0 ? true : false); m_Laser4Alarm->m_IsActive = ((arr[1] & 0x80) > 0 ? true : false); m_PrintStorageCar1UpLimit->m_IsActive = ((arr[2] & 0x1) > 0 ? true : false); m_PrintStorageCar1DownLimit->m_IsActive = ((arr[2] & 0x2) > 0 ? true : false); m_PrintStorageCar1Connect->m_IsActive = ((arr[2] & 0x4) > 0 ? true : false); m_PrintStorageCar2UpLimit->m_IsActive = ((arr[2] & 0x8) > 0 ? true : false); m_PrintStorageCar2DownLimit->m_IsActive = ((arr[2] & 0x10) > 0 ? true : false); m_SSRInput->m_IsActive = ((arr[2] & 0x20) > 0 ? true : false); m_SSROutput->m_IsActive = ((arr[2] & 0x40) > 0 ? true : false); m_PrintMainAxisUpLimit->m_IsActive = !((arr[2] & 0x80) > 0 ? true : false); m_PrintMainAxisDownLimit->m_IsActive = !((arr[3] & 0x1) > 0 ? true : false); m_PrintMainHomeIndex->m_IsActive = ((arr[3] & 0x2) > 0 ? true : false); m_PrintSlaveAxisUpLimit->m_IsActive = !((arr[3] & 0x4) > 0 ? true : false); m_PrintSlaveAxisDownLimit->m_IsActive = !((arr[3] & 0x8) > 0 ? true : false); m_PrintSlaveHomeIndex->m_IsActive = ((arr[3] & 0x10) > 0 ? true : false); m_Print3RHookOffPos->m_IsActive = ((arr[3] & 0x20) > 0 ? true : false); m_Print3RCylinderContact->m_IsActive = ((arr[3] & 0x40) > 0 ? true : false); m_Clean3RLeakOn->m_IsActive = ((arr[3] & 0x80) > 0 ? true : false); m_PrintPressOn->m_IsActive = ((arr[4] & 0x1) > 0 ? true : false); m_PrintPressOff->m_IsActive = ((arr[4] & 0x2) > 0 ? true : false); m_PrintJackUpOn->m_IsActive = ((arr[4] & 0x4) > 0 ? true : false); m_PrintJackUpOff->m_IsActive = ((arr[4] & 0x8) > 0 ? true : false); m_CylinderFixExtendOn->m_IsActive = ((arr[4] & 0x40) > 0 ? true : false); m_CylinderFixExtendOff->m_IsActive = ((arr[4] & 0x80) > 0 ? true : false); m_Print3RLockSensor->m_IsActive = ((arr[5] & 0x01) > 0 ? true : false); m_Clean3RLockSensor->m_IsActive = ((arr[5] & 0x02) > 0 ? true : false); m_TrackPrintPos->m_IsActive = ((arr[5] & 0x4) > 0 ? true : false); m_PrintCylinderOn->m_IsActive = ((arr[5] & 0x8) > 0 ? true : false); m_CleannerMainAxisUpLimit->m_IsActive = !((arr[5] & 0x10) > 0 ? true : false); m_CleannerMainAxisDownLimit->m_IsActive = !((arr[5] & 0x20) > 0 ? true : false); m_CleannerMainHomeIndex->m_IsActive = ((arr[5] & 0x40) > 0 ? true : false); m_CleannerSlaveAxisUpLimit->m_IsActive = !((arr[5] & 0x80) > 0 ? true : false); m_CleannerSlaveAxisDownLimit->m_IsActive = !((arr[6] & 0x1) > 0 ? true : false); m_CleannerSlaveAxisHomeIndex->m_IsActive = ((arr[6] & 0x2) > 0 ? true : false); m_TrackCleanPos->m_IsActive = ((arr[6] & 0x8) > 0 ? true : false); m_CleannerUpButton->m_IsActive = ((arr[6] & 0x10) > 0 ? true : false); m_CleannerDownButton->m_IsActive = ((arr[6] & 0x20) > 0 ? true : false); m_CleannerMotionStop->m_IsActive = !((arr[6] & 0x80) > 0 ? true : false); m_CleanBoxDoorClose->m_IsActive = ((arr[7] & 0x1) > 0 ? true : false); m_LeftVacuumButton->m_IsActive = ((arr[7] & 0x2) > 0 ? true : false); m_RightVacuumButton->m_IsActive = ((arr[7] & 0x4) > 0 ? true : false); m_UpperLidOpen->m_IsActive = ((arr[7] & 0x8) > 0 ? true : false); m_UpperLidClose->m_IsActive = ((arr[7] & 0x10) > 0 ? true : false); m_CleanBoxUpHorOpenPos->m_IsActive = ((arr[7] & 0x20) > 0 ? true : false); m_CleanBoxUpHorClosePos->m_IsActive = ((arr[7] & 0x40) > 0 ? true : false); m_CleannerBoxCylinderPressOn->m_IsActive = ((arr[7] & 0x80) > 0 ? true : false); m_CleannerBoxCylinderPressOff->m_IsActive = ((arr[8] & 0x1) > 0 ? true : false); m_PrintAirRenewalPressure->m_IsActive = ((arr[8] & 0x2) > 0 ? true : false); m_CleannerBoxOn->m_IsActive = ((arr[8] & 0x20) > 0 ? true : false); m_CleannerPressOn->m_IsActive = ((arr[8] & 0x40) > 0 ? true : false); m_CleannerPressOff->m_IsActive = ((arr[8] & 0x80) > 0 ? true : false); m_Print3RReleaseSensor->m_IsActive = ((arr[9] & 0x01) > 0 ? true : false); m_Clean3RReleaseSensor->m_IsActive = ((arr[9] & 0x02) > 0 ? true : false); m_Clean3RContact->m_IsActive = ((arr[9] & 0x4) > 0 ? true : false); m_Clean3RCylinderContact->m_IsActive = ((arr[9] & 0x8) > 0 ? true : false); m_Clean3RLeakOn->m_IsActive = ((arr[9] & 0x10) > 0 ? true : false); m_ArmFrontLimit->m_IsActive = !((arr[9] & 0x20) > 0 ? true : false); m_ArmBackLimit->m_IsActive = !((arr[9] & 0x40) > 0 ? true : false); m_ArmHomeIndex->m_IsActive = ((arr[9] & 0x80) > 0 ? true : false); m_LoadLeftLimit->m_IsActive = !((arr[10] & 0x1) > 0 ? true : false); m_LoadRgithLimit->m_IsActive = !((arr[10] & 0x2) > 0 ? true : false); m_LoadHomeIndex->m_IsActive = ((arr[10] & 0x4) > 0 ? true : false); m_LoadSearchEdgeOn->m_IsActive = ((arr[10] & 0x8) > 0 ? true : false); m_PrintStorageCar1PressureHigh->m_IsActive = ((arr[10] & 0x10) > 0 ? true : false); m_PrintStorageCar2PressureHigh->m_IsActive = ((arr[10] & 0x20) > 0 ? true : false); m_PowderPosition5->m_IsActive = ((arr[10] & 0x40) > 0 ? true : false); m_PowderPosition4->m_IsActive = ((arr[10] & 0x80) > 0 ? true : false); m_PowderPosition3->m_IsActive = ((arr[11] & 0x1) > 0 ? true : false); m_PowderPosition2->m_IsActive = ((arr[11] & 0x2) > 0 ? true : false); m_PowderPosition1->m_IsActive = ((arr[11] & 0x4) > 0 ? true : false); m_PowderSupplyHomeIndex->m_IsActive = ((arr[11] & 0x8) > 0 ? true : false); m_SafeDoorClose1->m_IsActive = ((arr[11] & 0x10) > 0 ? true : false); m_SafeDoorClose2->m_IsActive = ((arr[11] & 0x20) > 0 ? true : false); m_SafeDoorClose3->m_IsActive = ((arr[11] & 0x40) > 0 ? true : false); m_PrintableSignal->m_IsActive = ((arr[11] & 0x80) > 0 ? true : false); m_FanRunSignal->m_IsActive = ((arr[12] & 0x1) > 0 ? true : false); m_PrintStorageCar1Block->m_IsActive = ((arr[12] & 0x2) > 0 ? true : false); m_LightPathChillerAlarm->m_IsActive = ((arr[12] & 0x4) > 0 ? true : false); m_PurifierChillerAlarm->m_IsActive = ((arr[12] & 0x8) > 0 ? true : false); m_PrintStorageCar2Block->m_IsActive = ((arr[12] & 0x10) > 0 ? true : false); m_PrintStorageCar2Connect->m_IsActive = ((arr[12] & 0x20) > 0 ? true : false); m_CleanStorageCar1UpLimit->m_IsActive = ((arr[12] & 0x40) > 0 ? true : false); m_CleanStorageCar1DownLimit->m_IsActive = ((arr[12] & 0x80) > 0 ? true : false); m_CleanStorageCar1Block->m_IsActive = ((arr[13] & 0x01) > 0 ? true : false); m_CleanStorageCar1Connect->m_IsActive = ((arr[13] & 0x02) > 0 ? true : false); m_CleanStorageCar2UpLimit->m_IsActive = ((arr[13] & 0x04) > 0 ? true : false); m_CleanStorageCar2DownLimit->m_IsActive = ((arr[13] & 0x08) > 0 ? true : false); m_CleanStorageCar2Block->m_IsActive = ((arr[13] & 0x10) > 0 ? true : false); m_CleanStorageCar2Connect->m_IsActive = ((arr[13] & 0x20) > 0 ? true : false); m_CleanStorageCar1PressureHigh->m_IsActive = ((arr[13] & 0x40) > 0 ? true : false); m_CleanStorageCar2PressureHigh->m_IsActive = ((arr[13] & 0x80) > 0 ? true : false); int outputStartAddr = 24; m_ServoMotor->m_IsActive = ((arr[outputStartAddr] & 0x1) > 0 ? true : false); m_Laser->m_IsActive = ((arr[outputStartAddr] & 0x2) > 0 ? true : false); m_Laser1Enable->m_IsActive = ((arr[outputStartAddr] & 0x4) > 0 ? true : false); m_Laser1Start->m_IsActive = ((arr[outputStartAddr] & 0x8) > 0 ? true : false); m_Laser1Red->m_IsActive = ((arr[outputStartAddr] & 0x10) > 0 ? true : false); m_Laser2Enable->m_IsActive = ((arr[outputStartAddr] & 0x20) > 0 ? true : false); m_Laser2Start->m_IsActive = ((arr[outputStartAddr] & 0x40) > 0 ? true : false); m_Laser2Red->m_IsActive = ((arr[outputStartAddr] & 0x80) > 0 ? true : false); m_Laser3Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x1) > 0 ? true : false); m_Laser3Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x2) > 0 ? true : false); m_Laser3Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x4) > 0 ? true : false); m_Laser4Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x8) > 0 ? true : false); m_Laser4Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x10) > 0 ? true : false); m_Laser4Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x20) > 0 ? true : false); m_PrintDoorLock->m_IsActive = ((arr[outputStartAddr + 1] & 0x40) > 0 ? true : false); m_LightOn->m_IsActive = ((arr[outputStartAddr + 1] & 0x80) > 0 ? true : false); m_YellowLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x1) > 0 ? true : false); m_GreenLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x2) > 0 ? true : false); m_RedLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x4) > 0 ? true : false); m_Buzzer->m_IsActive = ((arr[outputStartAddr + 2] & 0x8) > 0 ? true : false); m_PrintAssistGas->m_IsActive = ((arr[outputStartAddr + 2] & 0x10) > 0 ? true : false); m_PrintAirEvacuation->m_IsActive = ((arr[outputStartAddr + 2] & 0x20) > 0 ? true : false); m_PressureRelease->m_IsActive = ((arr[outputStartAddr + 2] & 0x40) > 0 ? true : false); m_ScannerCool->m_IsActive = ((arr[outputStartAddr + 2] & 0x80) > 0 ? true : false); m_Heating->m_IsActive = ((arr[outputStartAddr + 3] & 0x1) > 0 ? true : false); m_PrintStorageCar1DropPowderValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x2) > 0 ? true : false); m_PrintSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x4) > 0 ? true : false); m_PrintPress->m_IsActive = ((arr[outputStartAddr + 3] & 0x8) > 0 ? true : false); m_PrintUnpress->m_IsActive = ((arr[outputStartAddr + 3] & 0x10) > 0 ? true : false); m_PrintJackUp->m_IsActive = ((arr[outputStartAddr + 3] & 0x20) > 0 ? true : false); m_PrintJackDown->m_IsActive = ((arr[outputStartAddr + 3] & 0x40) > 0 ? true : false); m_Print3RForceUnlock->m_IsActive = ((arr[outputStartAddr + 3] & 0x80) > 0 ? true : false); m_Clean3RForceUnlock->m_IsActive = ((arr[outputStartAddr + 4] & 0x1) > 0 ? true : false); m_PrintCylindFixed->m_IsActive = ((arr[outputStartAddr + 4] & 0x2) > 0 ? true : false); m_PrintCylindRelease->m_IsActive = ((arr[outputStartAddr + 4] & 0x4) > 0 ? true : false); m_Print3RRelease->m_IsActive = ((arr[outputStartAddr + 4] & 0x20) > 0 ? true : false); m_PrintMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x40) > 0 ? true : false); m_PrintSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x80) > 0 ? true : false); m_Print3RDeoxygenSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x1) > 0 ? true : false); m_Print3RStablePressureSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x2) > 0 ? true : false); m_Print3RAirEvacuation->m_IsActive = ((arr[outputStartAddr + 5] & 0x4) > 0 ? true : false); m_PowderCleanerUpOpenGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x8) > 0 ? true : false); m_PowderCleanerUpCloseGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x10) > 0 ? true : false); m_CleanCylinderPressing->m_IsActive = ((arr[outputStartAddr + 5] & 0x20) > 0 ? true : false); m_CleanCylinderRelease->m_IsActive = ((arr[outputStartAddr + 5] & 0x40) > 0 ? true : false); m_CleanBoxDeoxygenValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x1) > 0 ? true : false); m_CleanBoxEvacuationValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x2) > 0 ? true : false); m_CleanBoxUpHorOpen->m_IsActive = ((arr[outputStartAddr + 6] & 0x4) > 0 ? true : false); m_CleanBoxUpHorClose->m_IsActive = ((arr[outputStartAddr + 6] & 0x8) > 0 ? true : false); m_PowderCleannerBoxPress->m_IsActive = ((arr[outputStartAddr + 6] & 0x10) > 0 ? true : false); m_PowderCleannerBoxUnpress->m_IsActive = ((arr[outputStartAddr + 6] & 0x20) > 0 ? true : false); m_Clean3RRelease->m_IsActive = ((arr[outputStartAddr + 6] & 0x80) > 0 ? true : false); m_CleanMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x1) > 0 ? true : false); m_CleanSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x2) > 0 ? true : false); m_CleanCabinArriveLamp->m_IsActive = ((arr[outputStartAddr + 7] & 0x4) > 0 ? true : false); m_LoadAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x8) > 0 ? true : false); m_PrintVacuumEnterSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x10) > 0 ? true : false); m_PrintStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x20) > 0 ? true : false); m_PrintStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x40) > 0 ? true : false); m_PurifierCoolerPower->m_IsActive = ((arr[outputStartAddr + 7] & 0x80) > 0 ? true : false); m_PrintStorageCar2DropPowderValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x02) > 0 ? true : false); m_PrintStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x04) > 0 ? true : false); m_PrintStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x08) > 0 ? true : false); m_PrintSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x10) > 0 ? true : false); m_CleanStorageCar1DropPowderValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x20) > 0 ? true : false); m_CleanStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x40) > 0 ? true : false); m_CleanStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x80) > 0 ? true : false); m_CleanSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x01) > 0 ? true : false); m_CleanStorageCar2DropPowderValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x02) > 0 ? true : false); m_CleanStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x04) > 0 ? true : false); m_CleanStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x08) > 0 ? true : false); m_CleanSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x10) > 0 ? true : false); m_PrintAirRenewalInOutValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x20) > 0 ? true : false); m_PrintAirRenewalPresRelValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x40) > 0 ? true : false); m_LaserPowerActive->m_IsActive = ((arr[outputStartAddr + 9] & 0x80) > 0 ? true : false); bitset<8> doorState; doorState.reset(); doorState[0] = m_SafeDoorClose1->m_IsActive; doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; m_SafeDoorState = doorState.to_ulong(); } void IO_1500_V0::Init(map& ioCfgMap) { m_ServoMotor = ioCfgMap["ServoMotor"]; //伺服电源 m_Laser = ioCfgMap["Laser"]; //激光器 m_Laser1Enable = ioCfgMap["Laser1Enable"]; //激光1使能 m_Laser1Start = ioCfgMap["Laser1Start"]; //激光1启动 m_Laser1Red = ioCfgMap["Laser1Red"]; //激光1红光 m_Laser2Enable = ioCfgMap["Laser2Enable"]; //激光2使能 m_Laser2Start = ioCfgMap["Laser2Start"]; //激光2启动 m_Laser2Red = ioCfgMap["Laser2Red"]; //激光2红光 m_Laser3Enable = ioCfgMap["Laser3Enable"]; //激光3使能 m_Laser3Start = ioCfgMap["Laser3Start"]; //激光3启动 m_Laser3Red = ioCfgMap["Laser3Red"]; //激光3红光 m_Laser4Enable = ioCfgMap["Laser4Enable"]; //激光4使能 m_Laser4Start = ioCfgMap["Laser4Start"]; //激光4启动 m_Laser4Red = ioCfgMap["Laser4Red"]; //激光4红光 m_PrintDoorLock = ioCfgMap["PrintDoorLock"]; //打印舱门电锁 m_LightOn = ioCfgMap["LightOn"]; //照明 m_YellowLamp = ioCfgMap["YellowLamp"]; //黄灯 m_GreenLamp = ioCfgMap["GreenLamp"]; //绿灯 m_RedLamp = ioCfgMap["RedLamp"]; //红灯 m_Buzzer = ioCfgMap["Buzzer"]; //蜂鸣器 m_PrintAssistGas = ioCfgMap["PrintAssistGas"]; //辅助气 m_PrintAirEvacuation = ioCfgMap["PrintAirEvacuation"]; //排气阀 m_PressureRelease = ioCfgMap["PressureRelease"]; //压力释放 m_ScannerCool = ioCfgMap["ScannerCool"]; //振镜冷却 m_Heating = ioCfgMap["Heating"]; //加热 m_PrintSlot1PipeValve = ioCfgMap["PrintSlot1PipeValve"]; //打印槽1管道阀 m_PrintPress = ioCfgMap["PrintPress"]; //打印位压紧 m_PrintUnpress = ioCfgMap["PrintUnpress"]; //打印位放松 m_PrintJackUp = ioCfgMap["PrintJackUp"]; //打印顶升气缸上升 m_PrintJackDown = ioCfgMap["PrintJackDown"]; //打印顶升气缸下降 m_PrintCylindFixed = ioCfgMap["PrintCylindFixed"]; //打印位缸体固定 1500 m_PrintCylindRelease = ioCfgMap["PrintCylindRelease"]; //打印位缸体松开 1500 m_MainDoorElecOpen = ioCfgMap["MainDoorElecOpen"]; //主机箱门电打开 1500 m_HandrailDoorOpen = ioCfgMap["HandrailDoorOpen"]; //栏杆门打开 1500 m_Print3RRelease = ioCfgMap["Print3RRelease"]; //打印3R夹具松开 m_PrintMainAxisBrake = ioCfgMap["PrintMainAxisBrake"]; //打印主轴刹车 m_Print3RDeoxygenSalve = ioCfgMap["Print3RDeoxygenSalve"]; //打印3R除氧进气阀 m_Print3RStablePressureSalve = ioCfgMap["Print3RStablePressureSalve"]; //打印3R稳压气阀 m_Print3RAirEvacuation = ioCfgMap["Print3RAirEvacuation"]; //打印3R除氧排气阀 m_PowderCleanerUpOpenGap = ioCfgMap["PowderCleanerUpOpenGap"]; //清粉箱上盖打开阀 m_PowderCleanerUpCloseGap = ioCfgMap["PowderCleanerUpCloseGap"]; //清粉箱上盖关闭阀 m_CleanCylinderPressing = ioCfgMap["CleanCylinderPressing"]; //清粉箱缸体压紧 1500 m_CleanCylinderRelease = ioCfgMap["CleanCylinderRelease"]; //清粉箱缸体松开 1500 m_CleanPosStopOn = ioCfgMap["CleanPosStopOn"]; //清粉位阻挡升起 1500 m_CleanPosStopOff = ioCfgMap["CleanPosStopOff"]; //清粉位阻挡避让 1500 m_PowderCleannerBoxPress = ioCfgMap["PowderCleannerBoxPress"]; //清粉位压紧气缸压紧 m_PowderCleannerBoxUnpress = ioCfgMap["PowderCleannerBoxUnpress"]; //清粉位压紧气缸放松 m_PrintAirRenewalInOutValve = ioCfgMap["PrintAirRenewalInOutValve"]; //打印室换气进出阀 1500 m_Clean3RRelease = ioCfgMap["Clean3RRelease"]; //清粉3R夹具松开 m_CleanMainAxisBrake = ioCfgMap["CleanMainAxisBrake"]; //清粉主轴刹车 m_PrintAirRenewalPresRelValve = ioCfgMap["PrintAirRenewalPresRelValve"]; //打印室换气泄压阀 1500 m_SeparateCabinArriveLamp = ioCfgMap["SeparateCabinArriveLamp"]; m_LoadElectromagnet = ioCfgMap["LoadElectromagnet"]; //移载电磁铁 m_PrintVacuumEnterSlave = ioCfgMap["PrintVacuumEnterSlave"]; //打印室吸尘进气阀 m_PrintStorageCar1DeoxygenValve= ioCfgMap["PrintStorageCar1DeoxygenValve"]; //打印存粉小车1除氧进气阀 m_PrintStorageCar1EvacuationValve = ioCfgMap["PrintStorageCar1EvacuationValve"]; //打印存粉小车1除氧排气阀 m_PurifierCoolerPower = ioCfgMap["PurifierCoolerPower"]; //净化器冷水机电源 //1500 m_PrintStorageCar2DeoxygenValve = ioCfgMap["PrintStorageCar2DeoxygenValve"]; //打印存粉小车2除氧进气阀 m_PrintStorageCar2EvacuationValve = ioCfgMap["PrintStorageCar2EvacuationValve"]; //打印存粉小车2除氧排气阀 m_PrintSlot2PipeValve = ioCfgMap["PrintSlot2PipeValve"]; //打印槽2管道阀 m_CylinderHandPlateOpenValve = ioCfgMap["CylinderHandPlateOpenValve"]; //缸体吊装盖板打开阀 m_CylinderHandPlateCloseValve = ioCfgMap["CylinderHandPlateCloseValve"]; //缸体吊装盖板关闭阀 m_SystemStop = ioCfgMap["SystemStop"]; //系统急停 m_HighPressureCheck = ioCfgMap["HighPressureCheck"]; //高压报警 m_ProtectGasCheck = ioCfgMap["ProtectGasCheck"]; //低压报警 m_PowerDown = ioCfgMap["PowerDown"]; //外部断电 m_PowerOK = ioCfgMap["PowerOK"]; //电源正常 m_OutDoorOxygenAlarm = ioCfgMap["OutDoorOxygenAlarm"]; //室外测氧报警 m_LaserChillerAlarm = ioCfgMap["LaserChillerAlarm"]; //激光器冷水机报警 m_BusAirSwitchClose = ioCfgMap["BusAirSwitchClose"]; //总空开触点 m_ExtMachineAirSwitchClose = ioCfgMap["ExtMachineAirSwitchClose"]; //外部设备空开触点 m_HeattingAirSwitchClose = ioCfgMap["HeattingAirSwitchClose"]; //加热空开触点 m_LaserAirSwitchClose = ioCfgMap["LaserAirSwitchClose"]; //激光空开触点 m_ServoAirSwitchClose = ioCfgMap["ServoAirSwitchClose"]; //伺服空开触点 m_Laser1Alarm = ioCfgMap["Laser1Alarm"]; //激光器1报警 m_Laser2Alarm = ioCfgMap["Laser2Alarm"]; //激光器2报警 m_Laser3Alarm = ioCfgMap["Laser3Alarm"]; //激光器3报警 m_Laser4Alarm = ioCfgMap["Laser4Alarm"]; //激光器4报警 m_PrintStorageCar1UpLimit = ioCfgMap["PrintStorageCar1UpLimit"]; //打印存粉小车1上限 1500 m_PrintStorageCar1DownLimit = ioCfgMap["PrintStorageCar1DownLimit"]; //打印存粉小车1下限 1500 m_PrintStorageCar1Connect = ioCfgMap["PrintStorageCar1Connect"]; //打印存粉小车1连接 1500 m_PrintStorageCar1PressureHigh = ioCfgMap["PrintStorageCar1PressureHigh"]; //打印存粉小车1压力高 1500 m_SSRInput = ioCfgMap["SSRInput"]; //加热输入检测 m_SSROutput = ioCfgMap["SSROutput"]; //加热输出检测 m_PrintMainAxisUpLimit = ioCfgMap["PrintMainAxisUpLimit"]; //打印主轴上限位 m_PrintMainAxisDownLimit = ioCfgMap["PrintMainAxisDownLimit"]; //打印主轴下限位 m_PrintMainHomeIndex = ioCfgMap["PrintMainHomeIndex"]; //打印主轴原点 m_PrintStorageCar2PressureHigh = ioCfgMap["PrintStorageCar2PressureHigh"]; //打印存粉小车2压力高 1500 m_Print3RHookOffPos = ioCfgMap["Print3RHookOffPos"]; //打印3R脱离位 m_Print3RCylinderContact = ioCfgMap["Print3RCylinderContact"]; //打印3R与缸体接触感应 m_PrintUpDownSeparatePos = ioCfgMap["PrintUpDownSeparatePos"]; //打印升降脱离位 1500 m_PrintPressOn = ioCfgMap["PrintPressOn"]; //打印位压紧气缸压紧位 m_PrintPressOff = ioCfgMap["PrintPressOff"]; //打印位压紧气缸松开位 m_PrintJackUpOn = ioCfgMap["PrintJackUpOn"]; //打印位顶升气缸顶起位 m_PrintJackUpOff = ioCfgMap["PrintJackUpOff"]; //打印位顶升气缸下降位 m_PrintSupportCylinderOn = ioCfgMap["PrintSupportCylinderOn"]; //打印位支撑气缸支撑位 m_PrintSupportCylinderOff = ioCfgMap["PrintSupportCylinderOff"]; //打印位支撑气缸避让位 m_CylinderFixExtendOn = ioCfgMap["CylinderFixExtendOn"]; //缸体固定气缸伸出位 m_CylinderFixExtendOff = ioCfgMap["CylinderFixExtendOff"]; //缸体固定气缸缩回位 m_TrackPrintPos = ioCfgMap["TrackPrintPos"]; //轨道打印位 m_CleannerAxisUpLimit = ioCfgMap["CleannerAxisUpLimit"]; //清粉上限位 1500 m_CleannerAxisDownLimit = ioCfgMap["CleannerAxisDownLimit"]; //清粉下限位 1500 m_CleannerHomeIndex = ioCfgMap["CleannerHomeIndex"]; //清粉原点 1500 m_Cleanner3R = ioCfgMap["Cleanner3R"]; //清粉3R 1500 m_CleanPowderStopOn = ioCfgMap["CleanPowderStopOn"]; //清粉档块气缸阻挡位 1500 m_CleanPowderStopOff = ioCfgMap["CleanPowderStopOff"]; //清粉挡块气缸避让位 1500 m_CleannerLiftTrackContact = ioCfgMap["CleannerLiftTrackContact"]; //清粉升降与轨道对接位 m_TrackCleanPos = ioCfgMap["TrackCleanPos"]; //轨道清粉位 m_CleannerUpButton = ioCfgMap["CleannerUpButton"]; //清粉上升按钮 m_CleannerDownButton = ioCfgMap["CleannerDownButton"]; //清粉下降按钮 m_CleannerMotionStop = ioCfgMap["CleannerMotionStop"]; //清粉升降急停 m_LeftVacuumButton = ioCfgMap["LeftVacuumButton"]; //左吸尘按钮 1500 m_RightVacuumButton = ioCfgMap["RightVacuumButton"]; //右吸尘按钮 1500 m_CleannerBoxPressOn = ioCfgMap["CleannerBoxPressOn"]; //清粉箱压紧位 m_CleannerBoxPressOff = ioCfgMap["CleannerBoxPressOff"]; //清粉箱放松位 m_PrintStorageCar2UpLimit = ioCfgMap["PrintStorageCar2UpLimit"]; //打印存粉小车2上限 m_PrintStorageCar2DownLimit = ioCfgMap["PrintStorageCar2DownLimit"]; //打印存粉小车2下限 m_PrintStorageCar2Connect = ioCfgMap["PrintStorageCar2Connect"]; //打印存粉小车2连接 m_CleannerPressOn = ioCfgMap["CleannerPressOn"]; //清粉位压紧气缸压紧位 m_CleannerPressOff = ioCfgMap["CleannerPressOff"]; //清粉位压紧气缸放松位 m_ArmFrontLimit = ioCfgMap["ArmFrontLimit"]; //铺粉轴前限位 m_ArmBackLimit = ioCfgMap["ArmBackLimit"]; //铺粉轴后限位 m_ArmHomeIndex = ioCfgMap["ArmHomeIndex"]; //铺粉轴原点 m_LoadLeftLimit = ioCfgMap["LoadLeftLimit"]; //移载轴左限位 m_LoadRgithLimit = ioCfgMap["LoadRgithLimit"]; //移载轴右限位 m_LoadHomeIndex = ioCfgMap["LoadHomeIndex"]; //移载轴原点 m_LoadCylinderCheck = ioCfgMap["LoadCylinderCheck"]; //移载缸体检测 1500 m_LoadSearchEdgeOn = ioCfgMap["LoadSearchEdgeOn"]; //移载轴寻边感应 m_LoadHandPos = ioCfgMap["LoadHandPos"]; m_PowderPosition1 = ioCfgMap["PowderPosition1"]; //粉仓粉位1 m_PowderPosition2 = ioCfgMap["PowderPosition2"]; //粉仓粉位2 m_PowderPosition3 = ioCfgMap["PowderPosition3"]; //粉仓粉位3 m_PowderPosition4 = ioCfgMap["PowderPosition4"]; //粉仓粉位4 m_PowderPosition5 = ioCfgMap["PowderPosition5"]; //粉仓粉位5 m_PowderSupplyHomeIndex = ioCfgMap["PowderSupplyHomeIndex"]; //供粉转轴原点 m_SafeDoorClose1 = ioCfgMap["SafeDoorClose1"]; //安全门锁信号1 m_SafeDoorClose2 = ioCfgMap["SafeDoorClose2"]; //安全门锁信号2 m_SafeDoorClose3 = ioCfgMap["SafeDoorClose3"]; //安全门锁信号3 m_PrintableSignal = ioCfgMap["PrintableSignal"]; //允许打印信号 m_FanRunSignal = ioCfgMap["FanRunSignal"]; //风机运行信号 m_PrintAirRenewalPressure = ioCfgMap["PrintAirRenewalPressure"]; //打印室换气源压力 m_LightPathChillerAlarm = ioCfgMap["LightPathChillerAlarm"]; //光路冷水机报警 m_PurifierChillerAlarm = ioCfgMap["PurifierChillerAlarm"]; //净化器冷水机报警 m_CleanStorageCar1UpLimit = ioCfgMap["CleanStorageCar1UpLimit"]; //清粉存粉小车1上限 m_CleanStorageCar1DownLimit = ioCfgMap["CleanStorageCar1DownLimit"]; //清粉存粉小车1下限 m_CleanStorageCar1Connect = ioCfgMap["CleanStorageCar1Connect"]; //清粉存粉小车1连接 m_CleanStorageCar2UpLimit = ioCfgMap["CleanStorageCar2UpLimit"]; //清粉存粉小车2上限 m_CleanStorageCar2DownLimit = ioCfgMap["CleanStorageCar2DownLimit"]; //清粉存粉小车2下限 m_CleanStorageCar2Connect = ioCfgMap["CleanStorageCar2Connect"]; //清粉存粉小车2连接 m_CylinderHandPlateOpen = ioCfgMap["CylinderHandPlateOpen"]; //缸体吊装盖板开位 m_CylinderHandPlateOff = ioCfgMap["CylinderHandPlateOff"]; //缸体吊装盖板关位 m_CylinderHandDoorOpen = ioCfgMap["CylinderHandDoorOpen"]; //缸体吊装门开位 m_CylinderHandDoorClose = ioCfgMap["CylinderHandDoorClose"]; //缸体吊装门关位 } void IO_1500_V0::Update(unsigned char* arr) { m_SystemStop->m_IsActive = !((arr[0] & 0x1) > 0 ? true : false); m_HighPressureCheck->m_IsActive = ((arr[0] & 0x2) > 0 ? true : false); m_ProtectGasCheck->m_IsActive = ((arr[0] & 0x4) > 0 ? true : false); m_PowerDown->m_IsActive = ((arr[0] & 0x8) > 0 ? true : false); m_PowerOK->m_IsActive = ((arr[0] & 0x10) > 0 ? true : false); m_OutDoorOxygenAlarm->m_IsActive = ((arr[0] & 0x20) > 0 ? true : false); m_LaserChillerAlarm->m_IsActive = ((arr[0] & 0x40) > 0 ? true : false); m_BusAirSwitchClose->m_IsActive = ((arr[0] & 0x80) > 0 ? true : false); m_ExtMachineAirSwitchClose->m_IsActive = ((arr[1] & 0x1) > 0 ? true : false); m_HeattingAirSwitchClose->m_IsActive = ((arr[1] & 0x2) > 0 ? true : false); m_LaserAirSwitchClose->m_IsActive = ((arr[1] & 0x4) > 0 ? true : false); m_ServoAirSwitchClose->m_IsActive = ((arr[1] & 0x8) > 0 ? true : false); m_Laser1Alarm->m_IsActive = ((arr[1] & 0x10) > 0 ? true : false); m_Laser2Alarm->m_IsActive = ((arr[1] & 0x20) > 0 ? true : false); m_Laser3Alarm->m_IsActive = ((arr[1] & 0x40) > 0 ? true : false); m_Laser4Alarm->m_IsActive = ((arr[1] & 0x80) > 0 ? true : false); m_PrintStorageCar1UpLimit->m_IsActive = ((arr[2] & 0x1) > 0 ? true : false); m_PrintStorageCar1DownLimit->m_IsActive = ((arr[2] & 0x2) > 0 ? true : false); m_PrintStorageCar1Connect->m_IsActive = ((arr[2] & 0x4) > 0 ? true : false); m_PrintStorageCar1PressureHigh->m_IsActive=((arr[2] & 0x10) > 0 ? true : false); m_SSRInput->m_IsActive = ((arr[2] & 0x20) > 0 ? true : false); m_SSROutput->m_IsActive = ((arr[2] & 0x40) > 0 ? true : false); m_PrintMainAxisUpLimit->m_IsActive = !((arr[2] & 0x80) > 0 ? true : false); m_PrintMainAxisDownLimit->m_IsActive = !((arr[3] & 0x1) > 0 ? true : false); m_PrintMainHomeIndex->m_IsActive = ((arr[3] & 0x2) > 0 ? true : false); m_PrintStorageCar2PressureHigh->m_IsActive = ((arr[3] & 0x4) > 0 ? true : false); m_Print3RHookOffPos->m_IsActive = ((arr[3] & 0x20) > 0 ? true : false); m_Print3RCylinderContact->m_IsActive = ((arr[3] & 0x40) > 0 ? true : false); m_PrintUpDownSeparatePos->m_IsActive = ((arr[3] & 0x80) > 0 ? true : false); m_PrintPressOn->m_IsActive = ((arr[4] & 0x1) > 0 ? true : false); m_PrintPressOff->m_IsActive = ((arr[4] & 0x2) > 0 ? true : false); m_PrintJackUpOn->m_IsActive = ((arr[4] & 0x4) > 0 ? true : false); m_PrintJackUpOff->m_IsActive = ((arr[4] & 0x8) > 0 ? true : false); m_PrintSupportCylinderOn->m_IsActive = ((arr[4] & 0x10) > 0 ? true : false); m_PrintSupportCylinderOff->m_IsActive = ((arr[4] & 0x20) > 0 ? true : false); m_CylinderFixExtendOn->m_IsActive = ((arr[4] & 0x40) > 0 ? true : false); m_CylinderFixExtendOff->m_IsActive = ((arr[4] & 0x80) > 0 ? true : false); m_TrackPrintPos->m_IsActive = ((arr[5] & 0x4) > 0 ? true : false); m_CleannerAxisUpLimit->m_IsActive = !((arr[5] & 0x10) > 0 ? true : false); m_CleannerAxisDownLimit->m_IsActive = !((arr[5] & 0x20) > 0 ? true : false); m_CleannerHomeIndex->m_IsActive = ((arr[5] & 0x40) > 0 ? true : false); m_Cleanner3R->m_IsActive = !((arr[5] & 0x80) > 0 ? true : false); m_CleanPowderStopOn->m_IsActive = !((arr[6] & 0x1) > 0 ? true : false); m_CleanPowderStopOff->m_IsActive = ((arr[6] & 0x2) > 0 ? true : false); //m_CleannerLiftTrackContact->m_IsActive = ((arr[6] & 0x4) > 0 ? true : false); m_TrackCleanPos->m_IsActive = ((arr[6] & 0x8) > 0 ? true : false); m_CleannerUpButton->m_IsActive = ((arr[6] & 0x10) > 0 ? true : false); m_CleannerDownButton->m_IsActive = ((arr[6] & 0x20) > 0 ? true : false); //if (m_CleannerBackButton)m_CleannerBackButton->m_IsActive = ((arr[6] & 0x40) > 0 ? true : false); m_CleannerMotionStop->m_IsActive = !((arr[6] & 0x80) > 0 ? true : false); // m_UpperLidButton->m_IsActive = ((arr[7] & 0x1) > 0 ? true : false); m_LeftVacuumButton->m_IsActive = ((arr[7] & 0x2) > 0 ? true : false); m_RightVacuumButton->m_IsActive = ((arr[7] & 0x4) > 0 ? true : false); m_CleannerBoxPressOn->m_IsActive = ((arr[7] & 0x20) > 0 ? true : false); m_CleannerBoxPressOff->m_IsActive = ((arr[7] & 0x40) > 0 ? true : false); //m_CleannerBoxCylinderPressOn->m_IsActive = ((arr[7] & 0x80) > 0 ? true : false); m_PrintStorageCar2UpLimit->m_IsActive = ((arr[8] & 0x1) > 0 ? true : false); m_PrintStorageCar2DownLimit->m_IsActive = ((arr[8] & 0x2) > 0 ? true : false); m_PrintStorageCar2Connect->m_IsActive = ((arr[8] & 0x4) > 0 ? true : false); // m_CleannerBoxLockOn->m_IsActive = ((arr[8] & 0x8) > 0 ? true : false); // m_CleannerBoxLockOff->m_IsActive = ((arr[8] & 0x10) > 0 ? true : false); m_CleannerPressOn->m_IsActive = ((arr[8] & 0x40) > 0 ? true : false); m_CleannerPressOff->m_IsActive = ((arr[8] & 0x80) > 0 ? true : false); m_ArmFrontLimit->m_IsActive = !((arr[9] & 0x20) > 0 ? true : false); m_ArmBackLimit->m_IsActive = !((arr[9] & 0x40) > 0 ? true : false); m_ArmHomeIndex->m_IsActive = ((arr[9] & 0x80) > 0 ? true : false); m_LoadLeftLimit->m_IsActive = !((arr[10] & 0x1) > 0 ? true : false); m_LoadRgithLimit->m_IsActive = !((arr[10] & 0x2) > 0 ? true : false); m_LoadHomeIndex->m_IsActive = ((arr[10] & 0x4) > 0 ? true : false); m_LoadCylinderCheck->m_IsActive = ((arr[10] & 0x8) > 0 ? true : false); m_LoadSearchEdgeOn->m_IsActive = ((arr[10] & 0x10) > 0 ? true : false); m_LoadHandPos->m_IsActive = ((arr[10] & 0x20) > 0 ? true : false); m_PowderPosition5->m_IsActive = ((arr[10] & 0x40) > 0 ? true : false); m_PowderPosition4->m_IsActive = ((arr[10] & 0x80) > 0 ? true : false); m_PowderPosition3->m_IsActive = ((arr[11] & 0x1) > 0 ? true : false); m_PowderPosition2->m_IsActive = ((arr[11] & 0x2) > 0 ? true : false); m_PowderPosition1->m_IsActive = ((arr[11] & 0x4) > 0 ? true : false); m_PowderSupplyHomeIndex->m_IsActive = ((arr[11] & 0x8) > 0 ? true : false); m_SafeDoorClose1->m_IsActive = ((arr[11] & 0x10) > 0 ? true : false); m_SafeDoorClose2->m_IsActive = ((arr[11] & 0x20) > 0 ? true : false); m_SafeDoorClose3->m_IsActive = ((arr[11] & 0x40) > 0 ? true : false); m_PrintableSignal->m_IsActive = ((arr[11] & 0x80) > 0 ? true : false); m_FanRunSignal->m_IsActive = ((arr[12] & 0x1) > 0 ? true : false); m_PrintAirRenewalPressure->m_IsActive = ((arr[12] & 0x2) > 0 ? true : false); m_LightPathChillerAlarm->m_IsActive = ((arr[12] & 0x4) > 0 ? true : false); m_PurifierChillerAlarm->m_IsActive = ((arr[12] & 0x8) > 0 ? true : false); m_CleanStorageCar1UpLimit->m_IsActive = ((arr[12] & 0x10) > 0 ? true : false); m_CleanStorageCar1DownLimit->m_IsActive = ((arr[12] & 0x20) > 0 ? true : false); m_CleanStorageCar1Connect->m_IsActive = ((arr[12] & 0x40) > 0 ? true : false); m_CleanStorageCar2UpLimit->m_IsActive = ((arr[13] & 0x01) > 0 ? true : false); m_CleanStorageCar2DownLimit->m_IsActive = ((arr[13] & 0x02) > 0 ? true : false); m_CleanStorageCar2Connect->m_IsActive = ((arr[13] & 0x04) > 0 ? true : false); m_CylinderHandPlateOpen->m_IsActive = ((arr[13] & 0x10) > 0 ? true : false); m_CylinderHandPlateOff->m_IsActive = ((arr[13] & 0x20) > 0 ? true : false); m_CylinderHandDoorOpen->m_IsActive = ((arr[13] & 0x40) > 0 ? true : false); m_CylinderHandDoorClose->m_IsActive = ((arr[13] & 0x80) > 0 ? true : false); int outputStartAddr = 24; m_ServoMotor->m_IsActive = ((arr[outputStartAddr] & 0x1) > 0 ? true : false); m_Laser->m_IsActive = ((arr[outputStartAddr] & 0x2) > 0 ? true : false); m_Laser1Enable->m_IsActive = ((arr[outputStartAddr] & 0x4) > 0 ? true : false); m_Laser1Start->m_IsActive = ((arr[outputStartAddr] & 0x8) > 0 ? true : false); m_Laser1Red->m_IsActive = ((arr[outputStartAddr] & 0x10) > 0 ? true : false); m_Laser2Enable->m_IsActive = ((arr[outputStartAddr] & 0x20) > 0 ? true : false); m_Laser2Start->m_IsActive = ((arr[outputStartAddr] & 0x40) > 0 ? true : false); m_Laser2Red->m_IsActive = ((arr[outputStartAddr] & 0x80) > 0 ? true : false); m_Laser3Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x1) > 0 ? true : false); m_Laser3Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x2) > 0 ? true : false); m_Laser3Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x4) > 0 ? true : false); m_Laser4Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x8) > 0 ? true : false); m_Laser4Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x10) > 0 ? true : false); m_Laser4Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x20) > 0 ? true : false); m_PrintDoorLock->m_IsActive = ((arr[outputStartAddr + 1] & 0x40) > 0 ? true : false); m_LightOn->m_IsActive = ((arr[outputStartAddr + 1] & 0x80) > 0 ? true : false); m_YellowLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x1) > 0 ? true : false); m_GreenLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x2) > 0 ? true : false); m_RedLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x4) > 0 ? true : false); m_Buzzer->m_IsActive = ((arr[outputStartAddr + 2] & 0x8) > 0 ? true : false); m_PrintAssistGas->m_IsActive = ((arr[outputStartAddr + 2] & 0x10) > 0 ? true : false); m_PrintAirEvacuation->m_IsActive = ((arr[outputStartAddr + 2] & 0x20) > 0 ? true : false); m_PressureRelease->m_IsActive = ((arr[outputStartAddr + 2] & 0x40) > 0 ? true : false); m_ScannerCool->m_IsActive = ((arr[outputStartAddr + 2] & 0x80) > 0 ? true : false); m_Heating->m_IsActive = ((arr[outputStartAddr + 3] & 0x1) > 0 ? true : false); m_PrintSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x4) > 0 ? true : false); m_PrintPress->m_IsActive = ((arr[outputStartAddr + 3] & 0x8) > 0 ? true : false); m_PrintUnpress->m_IsActive = ((arr[outputStartAddr + 3] & 0x10) > 0 ? true : false); m_PrintJackUp->m_IsActive = ((arr[outputStartAddr + 3] & 0x20) > 0 ? true : false); m_PrintJackDown->m_IsActive = ((arr[outputStartAddr + 3] & 0x40) > 0 ? true : false); m_PrintCylindFixed->m_IsActive = ((arr[outputStartAddr + 4] & 0x2) > 0 ? true : false); m_PrintCylindRelease->m_IsActive = ((arr[outputStartAddr + 4] & 0x4) > 0 ? true : false); m_MainDoorElecOpen->m_IsActive = ((arr[outputStartAddr + 4] & 0x8) > 0 ? true : false); m_HandrailDoorOpen->m_IsActive = ((arr[outputStartAddr + 4] & 0x10) > 0 ? true : false); m_Print3RRelease->m_IsActive = ((arr[outputStartAddr + 4] & 0x20) > 0 ? true : false); m_PrintMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x40) > 0 ? true : false); //m_PrintSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x80) > 0 ? true : false); m_Print3RDeoxygenSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x1) > 0 ? true : false); m_Print3RStablePressureSalve->m_IsActive = ((arr[outputStartAddr + 5] & 0x2) > 0 ? true : false); m_Print3RAirEvacuation->m_IsActive = ((arr[outputStartAddr + 5] & 0x4) > 0 ? true : false); m_PowderCleanerUpOpenGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x8) > 0 ? true : false); m_PowderCleanerUpCloseGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x10) > 0 ? true : false); m_CleanCylinderPressing->m_IsActive = ((arr[outputStartAddr + 5] & 0x20) > 0 ? true : false); m_CleanCylinderRelease->m_IsActive = ((arr[outputStartAddr + 5] & 0x40) > 0 ? true : false); //m_PowderCleannerPressRelease->m_IsActive = ((arr[outputStartAddr + 5] & 0x80) > 0 ? true : false); m_CleanPosStopOn->m_IsActive = ((arr[outputStartAddr + 6] & 0x4) > 0 ? true : false); m_CleanPosStopOff->m_IsActive = ((arr[outputStartAddr + 6] & 0x8) > 0 ? true : false); m_PowderCleannerBoxPress->m_IsActive = ((arr[outputStartAddr + 6] & 0x10) > 0 ? true : false); m_PowderCleannerBoxUnpress->m_IsActive = ((arr[outputStartAddr + 6] & 0x20) > 0 ? true : false); m_PrintAirRenewalInOutValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x40) > 0 ? true : false); m_Clean3RRelease->m_IsActive = ((arr[outputStartAddr + 6] & 0x80) > 0 ? true : false); m_CleanMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 7] & 0x1) > 0 ? true : false); m_PrintAirRenewalPresRelValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x2) > 0 ? true : false); m_SeparateCabinArriveLamp->m_IsActive = ((arr[outputStartAddr + 7] & 0x4) > 0 ? true : false); //if (m_LoadPinInserOn)m_LoadPinInserOn->m_IsActive = ((arr[outputStartAddr + 7] & 0x8) > 0 ? true : false); m_LoadElectromagnet->m_IsActive = ((arr[outputStartAddr + 7] & 0x8) > 0 ? true : false); m_PrintVacuumEnterSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x10) > 0 ? true : false); m_PrintStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x20) > 0 ? true : false); m_PrintStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x40) > 0 ? true : false); m_PurifierCoolerPower->m_IsActive = ((arr[outputStartAddr + 7] & 0x80) > 0 ? true : false); m_PrintStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x4) > 0 ? true : false); m_PrintStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x8) > 0 ? true : false); m_PrintSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x10) > 0 ? true : false); m_CylinderHandPlateOpenValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x20) > 0 ? true : false); m_CylinderHandPlateCloseValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x40) > 0 ? true : false); bitset<8> doorState; doorState.reset(); doorState[0] = m_SafeDoorClose1->m_IsActive; doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; m_SafeDoorState = doorState.to_ulong(); } void IO_1500_V1::Init(map& ioCfgMap) { m_ServoMotor = ioCfgMap["ServoMotor"]; //伺服电源 m_Laser = ioCfgMap["Laser"]; //激光器 m_Laser1Enable = ioCfgMap["Laser1Enable"]; //激光1使能 m_Laser1Start = ioCfgMap["Laser1Start"]; //激光1启动 m_Laser1Red = ioCfgMap["Laser1Red"]; //激光1红光 m_Laser2Enable = ioCfgMap["Laser2Enable"]; //激光2使能 m_Laser2Start = ioCfgMap["Laser2Start"]; //激光2启动 m_Laser2Red = ioCfgMap["Laser2Red"]; //激光2红光 m_Laser3Enable = ioCfgMap["Laser3Enable"]; //激光3使能 m_Laser3Start = ioCfgMap["Laser3Start"]; //激光3启动 m_Laser3Red = ioCfgMap["Laser3Red"]; //激光3红光 m_Laser4Enable = ioCfgMap["Laser4Enable"]; //激光4使能 m_Laser4Start = ioCfgMap["Laser4Start"]; //激光4启动 m_Laser4Red = ioCfgMap["Laser4Red"]; //激光4红光 m_PrintDoorLock = ioCfgMap["PrintDoorLock"]; //打印舱门电锁 m_LightOn = ioCfgMap["LightOn"]; //照明 m_YellowLamp = ioCfgMap["YellowLamp"]; //黄灯 m_GreenLamp = ioCfgMap["GreenLamp"]; //绿灯 m_RedLamp = ioCfgMap["RedLamp"]; //红灯 m_Buzzer = ioCfgMap["Buzzer"]; //蜂鸣器 m_PrintAssistGas = ioCfgMap["PrintAssistGas"]; //辅助气 m_PrintAirEvacuation = ioCfgMap["PrintAirEvacuation"]; //排气阀 m_PressureRelease = ioCfgMap["PressureRelease"]; //压力释放 m_ScannerCool = ioCfgMap["ScannerCool"]; //振镜冷却 m_Heating = ioCfgMap["Heating"]; //加热 m_PrintStorageCar1DropPowderValve = ioCfgMap["PrintStorageCar1DropPowderValve"]; //存粉小车下粉阀1 m_PrintSlot1PipeValve = ioCfgMap["PrintSlot1PipeValve"]; //打印槽1管道阀 m_PrintCylindFixed = ioCfgMap["PrintCylindFixed"]; //打印位缸体固定 1500 m_PrintCylindRelease = ioCfgMap["PrintCylindRelease"]; //打印位缸体松开 1500 m_HandrailDoorLock = ioCfgMap["HandrailDoorLock"]; //栏杆门电磁锁 1500 m_PrintMainAxisBrake = ioCfgMap["PrintMainAxisBrake"]; //打印主轴刹车 m_PowderCleanerUpOpenGap = ioCfgMap["PowderCleanerUpOpenGap"]; //清粉箱上盖打开阀 m_PowderCleanerUpCloseGap = ioCfgMap["PowderCleanerUpCloseGap"]; //清粉箱上盖关闭阀 m_CleanBoxDeoxygenValve = ioCfgMap["CleanBoxDeoxygenValve"]; //清粉箱除氧进气阀 1500 m_CleanBoxEvacuationValve = ioCfgMap["CleanBoxEvacuationValve"]; //清粉箱除氧排气阀 1500 m_PrintAirRenewalInOutValve = ioCfgMap["PrintAirRenewalInOutValve"]; //打印室换气进出阀 1500 m_PrintAirRenewalPresRelValve = ioCfgMap["PrintAirRenewalPresRelValve"]; //打印室换气泄压阀 1500 m_PrintVacuumEnterSlave = ioCfgMap["PrintVacuumEnterSlave"]; //打印室吸尘进气阀 m_PrintStorageCar1DeoxygenValve = ioCfgMap["PrintStorageCar1DeoxygenValve"]; //打印存粉小车1除氧进气阀 m_PrintStorageCar1EvacuationValve = ioCfgMap["PrintStorageCar1EvacuationValve"]; //打印存粉小车1除氧排气阀 m_PurifierCoolerPower = ioCfgMap["PurifierCoolerPower"]; //净化器冷水机电源 //1500 m_PrintStorageCar2DropPowderValve = ioCfgMap["PrintStorageCar2DropPowderValve"]; //打印存粉小车2下粉阀 m_PrintStorageCar2DeoxygenValve = ioCfgMap["PrintStorageCar2DeoxygenValve"]; //打印存粉小车2除氧进气阀 m_PrintStorageCar2EvacuationValve = ioCfgMap["PrintStorageCar2EvacuationValve"]; //打印存粉小车2除氧排气阀 m_PrintSlot2PipeValve = ioCfgMap["PrintSlot2PipeValve"]; //打印槽2管道阀 m_CleanStorageCar1DropPowderValve = ioCfgMap["CleanStorageCar1DropPowderValve"]; //清粉存粉小车1下粉阀 m_CleanStorageCar1DeoxygenValve = ioCfgMap["CleanStorageCar1DeoxygenValve"]; //清粉存粉小车1除氧进气阀 m_CleanStorageCar1EvacuationValve = ioCfgMap["CleanStorageCar1EvacuationValve"]; //清粉存粉小车1除氧排气阀 m_CleanSlot1PipeValve = ioCfgMap["CleanSlot1PipeValve"]; //清粉槽1管道阀 m_CleanStorageCar2DropPowderValve = ioCfgMap["CleanStorageCar2DropPowderValve"]; //清粉存粉小车2下粉阀 m_CleanStorageCar2DeoxygenValve = ioCfgMap["CleanStorageCar2DeoxygenValve"]; //清粉存粉小车2除氧进气阀 m_CleanStorageCar2EvacuationValve = ioCfgMap["CleanStorageCar2EvacuationValve"]; //清粉存粉小车2除氧排气阀 m_CleanSlot2PipeValve = ioCfgMap["CleanSlot2PipeValve"]; //清粉槽2管道阀 m_CylinderHandPlateOpenValve = ioCfgMap["CylinderHandPlateOpenValve"]; //缸体吊装盖板打开阀 m_CylinderHandPlateCloseValve = ioCfgMap["CylinderHandPlateCloseValve"]; //缸体吊装盖板关闭阀 m_CylinderHandLockOpen = ioCfgMap["CylinderHandLockOpen"]; //缸体吊装门锁打开 m_EleCylinderMainBrake = ioCfgMap["EleCylinderMainBrake"]; //电缸主轴刹车 m_EleCylinderSlaveBrake = ioCfgMap["EleCylinderSlaveBrake"]; //电缸从轴刹车 m_LoadAxisBrake = ioCfgMap["LoadAxisBrake"]; //移载轴刹车 m_CleanLeftVacuumValve = ioCfgMap["CleanLeftVacuumValve"]; //清粉左吸尘阀 m_CleanRightVacuumValve = ioCfgMap["CleanRightVacuumValve"]; //清粉右吸尘阀 m_CleanVacuumReairValve = ioCfgMap["CleanVacuumReairValve"]; //清粉吸尘回气阀 m_CleanBlowSrcSelect = ioCfgMap["CleanBlowSrcSelect"]; //清粉吹气源选择 m_CleanLightOn = ioCfgMap["CleanLightOn"]; //清粉照明 m_CleanBoxTopDoorRise = ioCfgMap["CleanBoxTopDoorRise"]; //清粉箱顶门升高 m_CleanBoxTopDoorFall = ioCfgMap["CleanBoxTopDoorFall"]; //清粉箱顶门降低 m_SystemStop = ioCfgMap["SystemStop"]; //系统急停 m_HighPressureCheck = ioCfgMap["HighPressureCheck"]; //高压报警 m_ProtectGasCheck = ioCfgMap["ProtectGasCheck"]; //低压报警 m_PowerDown = ioCfgMap["PowerDown"]; //外部断电 m_PowerOK = ioCfgMap["PowerOK"]; //电源正常 m_OutDoorOxygenAlarm = ioCfgMap["OutDoorOxygenAlarm"]; //室外测氧报警 m_LaserChillerAlarm = ioCfgMap["LaserChillerAlarm"]; //激光器冷水机报警 m_BusAirSwitchClose = ioCfgMap["BusAirSwitchClose"]; //总空开触点 m_ExtMachineAirSwitchClose = ioCfgMap["ExtMachineAirSwitchClose"]; //外部设备空开触点 m_HeattingAirSwitchClose = ioCfgMap["HeattingAirSwitchClose"]; //加热空开触点 m_LaserAirSwitchClose = ioCfgMap["LaserAirSwitchClose"]; //激光空开触点 m_ServoAirSwitchClose = ioCfgMap["ServoAirSwitchClose"]; //伺服空开触点 m_Laser1Alarm = ioCfgMap["Laser1Alarm"]; //激光器1报警 m_Laser2Alarm = ioCfgMap["Laser2Alarm"]; //激光器2报警 m_Laser3Alarm = ioCfgMap["Laser3Alarm"]; //激光器3报警 m_Laser4Alarm = ioCfgMap["Laser4Alarm"]; //激光器4报警 m_PrintStorageCar1UpLimit = ioCfgMap["PrintStorageCar1UpLimit"]; //打印存粉小车1上限 1500 m_PrintStorageCar1DownLimit = ioCfgMap["PrintStorageCar1DownLimit"]; //打印存粉小车1下限 1500 m_PrintStorageCar1Connect = ioCfgMap["PrintStorageCar1Connect"]; //打印存粉小车1连接 1500 m_PrintStorageCar1Block = ioCfgMap["PrintStorageCar1Block"]; //打印存粉小车1堵塞 1500 m_PrintStorageCar1PressureHigh = ioCfgMap["PrintStorageCar1PressureHigh"]; //打印存粉小车1压力高 1500 m_SSRInput = ioCfgMap["SSRInput"]; //加热输入检测 m_SSROutput = ioCfgMap["SSROutput"]; //加热输出检测 m_PrintMainAxisUpLimit = ioCfgMap["PrintMainAxisUpLimit"]; //打印主轴上限位 m_PrintMainAxisDownLimit = ioCfgMap["PrintMainAxisDownLimit"]; //打印主轴下限位 m_PrintMainHomeIndex = ioCfgMap["PrintMainHomeIndex"]; //打印主轴原点 m_PrintStorageCar2PressureHigh = ioCfgMap["PrintStorageCar2PressureHigh"]; //打印存粉小车2压力高 1500 m_CleanStorageCar1PressureHigh = ioCfgMap["CleanStorageCar1PressureHigh"]; //清粉存粉小车1压力高 1500 m_CleanStorageCar2PressureHigh = ioCfgMap["CleanStorageCar2PressureHigh"]; //清粉存粉小车2压力高 1500 m_CylinderFixExtendOn = ioCfgMap["CylinderFixExtendOn"]; //缸体固定气缸伸出位 m_CylinderFixExtendOff = ioCfgMap["CylinderFixExtendOff"]; //缸体固定气缸缩回位 m_PrintCylinderJackupReachSensor = ioCfgMap["PrintCylinderJackupReachSensor"]; //打印缸体顶升到位感应器 m_EleCylinderHomeIndex = ioCfgMap["EleCylinderHomeIndex"]; //电缸原点 m_TrackPrintPos = ioCfgMap["TrackPrintPos"]; //轨道打印位 m_EleCylinderUpLimit = ioCfgMap["EleCylinderUpLimit"]; //电缸上限 m_TrackCleanPos = ioCfgMap["TrackCleanPos"]; //轨道清粉位 m_CleannerUpButton = ioCfgMap["CleannerUpButton"]; //清粉上升按钮 m_CleannerDownButton = ioCfgMap["CleannerDownButton"]; //清粉下降按钮 m_EleCylinderDownLimit = ioCfgMap["EleCylinderDownLimit"]; //电缸下限 m_CleannerMotionStop = ioCfgMap["CleannerMotionStop"]; //清粉升降急停 m_CleanBoxTopDoorOpenPos = ioCfgMap["CleanBoxTopDoorOpenPos"]; //清粉箱顶门气缸开位 m_CleanBoxTopDoorClosePos = ioCfgMap["CleanBoxTopDoorClosePos"]; //清粉箱顶门气缸关位 m_PrintStorageCar2UpLimit = ioCfgMap["PrintStorageCar2UpLimit"]; //打印存粉小车2上限 m_PrintStorageCar2DownLimit = ioCfgMap["PrintStorageCar2DownLimit"]; //打印存粉小车2下限 m_PrintStorageCar2Connect = ioCfgMap["PrintStorageCar2Connect"]; //打印存粉小车2连接 m_CylinderHandLockSensor = ioCfgMap["CylinderHandLockSensor"]; //缸体吊装门锁感应 m_PrintStorageCar2Block = ioCfgMap["PrintStorageCar2Block"]; //打印存粉小车2堵塞 m_CleanBoxTopDoorRisePos = ioCfgMap["CleanBoxTopDoorRisePos"]; //清粉箱顶门升高位 m_CleanBoxTopDoorFallPos = ioCfgMap["CleanBoxTopDoorFallPos"]; //清粉箱顶门降低位 m_CoverAcceptPowderPos = ioCfgMap["CoverAcceptPowderPos"]; //铺粉轴接粉位 m_CoverDropPowderPos1 = ioCfgMap["CoverDropPowderPos1"]; //铺粉轴下粉位1 m_CoverDropPowderPos2 = ioCfgMap["CoverDropPowderPos2"]; //铺粉轴下粉位2 m_ArmFrontLimit = ioCfgMap["ArmFrontLimit"]; //铺粉轴前限位 m_ArmBackLimit = ioCfgMap["ArmBackLimit"]; //铺粉轴后限位 m_ArmHomeIndex = ioCfgMap["ArmHomeIndex"]; //铺粉轴原点 m_LoadLeftLimit = ioCfgMap["LoadLeftLimit"]; //移载轴左限位 m_LoadRgithLimit = ioCfgMap["LoadRgithLimit"]; //移载轴右限位 m_LoadHomeIndex = ioCfgMap["LoadHomeIndex"]; //移载轴原点 m_LoadHandPos = ioCfgMap["LoadHandPos"]; m_PowderPosition1 = ioCfgMap["PowderPosition1"]; //粉仓粉位1 m_PowderPosition2 = ioCfgMap["PowderPosition2"]; //粉仓粉位2 m_PowderPosition3 = ioCfgMap["PowderPosition3"]; //粉仓粉位3 m_PowderPosition4 = ioCfgMap["PowderPosition4"]; //粉仓粉位4 m_PowderPosition5 = ioCfgMap["PowderPosition5"]; //粉仓粉位5 m_PowderSupplyHomeIndex = ioCfgMap["PowderSupplyHomeIndex"]; //供粉转轴原点 m_SafeDoorClose1 = ioCfgMap["SafeDoorClose1"]; //安全门锁信号1 m_SafeDoorClose2 = ioCfgMap["SafeDoorClose2"]; //安全门锁信号2 m_SafeDoorClose3 = ioCfgMap["SafeDoorClose3"]; //安全门锁信号3 m_PrintableSignal = ioCfgMap["PrintableSignal"]; //允许打印信号 m_FanRunSignal = ioCfgMap["FanRunSignal"]; //风机运行信号 m_PrintAirRenewalPressure = ioCfgMap["PrintAirRenewalPressure"]; //打印室换气源压力 m_LightPathChillerAlarm = ioCfgMap["LightPathChillerAlarm"]; //光路冷水机报警 m_PurifierChillerAlarm = ioCfgMap["PurifierChillerAlarm"]; //净化器冷水机报警 m_CleanStorageCar1UpLimit = ioCfgMap["CleanStorageCar1UpLimit"]; //清粉存粉小车1上限 m_CleanStorageCar1DownLimit = ioCfgMap["CleanStorageCar1DownLimit"]; //清粉存粉小车1下限 m_CleanStorageCar1Connect = ioCfgMap["CleanStorageCar1Connect"]; //清粉存粉小车1连接 m_CleanStorageCar1Block = ioCfgMap["CleanStorageCar1Block"]; //清粉存粉小车1堵塞 m_CleanStorageCar2UpLimit = ioCfgMap["CleanStorageCar2UpLimit"]; //清粉存粉小车2上限 m_CleanStorageCar2DownLimit = ioCfgMap["CleanStorageCar2DownLimit"]; //清粉存粉小车2下限 m_CleanStorageCar2Connect = ioCfgMap["CleanStorageCar2Connect"]; //清粉存粉小车2连接 m_CleanStorageCar2Block = ioCfgMap["CleanStorageCar2Block"]; //清粉存粉小车2堵塞 m_CylinderHandPlateOpen = ioCfgMap["CylinderHandPlateOpen"]; //缸体吊装盖板开位 m_CylinderHandPlateOff = ioCfgMap["CylinderHandPlateOff"]; //缸体吊装盖板关位 m_CylinderHandDoorOpen = ioCfgMap["CylinderHandDoorOpen"]; //缸体吊装门开位 m_CylinderHandDoorClose = ioCfgMap["CylinderHandDoorClose"]; //缸体吊装门关位 } void IO_1500_V1::Update(unsigned char* arr) { m_SystemStop->m_IsActive = !((arr[0] & 0x1) > 0 ? true : false); m_HighPressureCheck->m_IsActive = ((arr[0] & 0x2) > 0 ? true : false); m_ProtectGasCheck->m_IsActive = ((arr[0] & 0x4) > 0 ? true : false); m_PowerDown->m_IsActive = ((arr[0] & 0x8) > 0 ? true : false); m_PowerOK->m_IsActive = ((arr[0] & 0x10) > 0 ? true : false); m_OutDoorOxygenAlarm->m_IsActive = ((arr[0] & 0x20) > 0 ? true : false); m_LaserChillerAlarm->m_IsActive = ((arr[0] & 0x40) > 0 ? true : false); m_BusAirSwitchClose->m_IsActive = ((arr[0] & 0x80) > 0 ? true : false); m_ExtMachineAirSwitchClose->m_IsActive = ((arr[1] & 0x1) > 0 ? true : false); m_HeattingAirSwitchClose->m_IsActive = ((arr[1] & 0x2) > 0 ? true : false); m_LaserAirSwitchClose->m_IsActive = ((arr[1] & 0x4) > 0 ? true : false); m_ServoAirSwitchClose->m_IsActive = ((arr[1] & 0x8) > 0 ? true : false); m_Laser1Alarm->m_IsActive = ((arr[1] & 0x10) > 0 ? true : false); m_Laser2Alarm->m_IsActive = ((arr[1] & 0x20) > 0 ? true : false); m_Laser3Alarm->m_IsActive = ((arr[1] & 0x40) > 0 ? true : false); m_Laser4Alarm->m_IsActive = ((arr[1] & 0x80) > 0 ? true : false); m_PrintStorageCar1UpLimit->m_IsActive = ((arr[2] & 0x1) > 0 ? true : false); m_PrintStorageCar1DownLimit->m_IsActive = ((arr[2] & 0x2) > 0 ? true : false); m_PrintStorageCar1Connect->m_IsActive = ((arr[2] & 0x4) > 0 ? true : false); m_PrintStorageCar1Block->m_IsActive = ((arr[2] & 0x8) > 0 ? true : false); m_PrintStorageCar1PressureHigh->m_IsActive = ((arr[2] & 0x10) > 0 ? true : false); m_SSRInput->m_IsActive = ((arr[2] & 0x20) > 0 ? true : false); m_SSROutput->m_IsActive = ((arr[2] & 0x40) > 0 ? true : false); m_PrintMainAxisUpLimit->m_IsActive = !((arr[2] & 0x80) > 0 ? true : false); m_PrintMainAxisDownLimit->m_IsActive = !((arr[3] & 0x1) > 0 ? true : false); m_PrintMainHomeIndex->m_IsActive = ((arr[3] & 0x2) > 0 ? true : false); m_PrintStorageCar2PressureHigh->m_IsActive = ((arr[3] & 0x4) > 0 ? true : false); m_CleanStorageCar1PressureHigh->m_IsActive = ((arr[3] & 0x8) > 0 ? true : false); m_CleanStorageCar2PressureHigh->m_IsActive = ((arr[3] & 0x10) > 0 ? true : false); m_CylinderFixExtendOn->m_IsActive = ((arr[4] & 0x40) > 0 ? true : false); m_CylinderFixExtendOff->m_IsActive = ((arr[4] & 0x80) > 0 ? true : false); m_PrintCylinderJackupReachSensor->m_IsActive = ((arr[5] & 0x01) > 0 ? true : false); m_EleCylinderHomeIndex->m_IsActive = ((arr[5] & 0x02) > 0 ? true : false); m_TrackPrintPos->m_IsActive = ((arr[5] & 0x4) > 0 ? true : false); m_EleCylinderUpLimit->m_IsActive = ((arr[6] & 0x4) > 0 ? true : false); m_TrackCleanPos->m_IsActive = ((arr[6] & 0x8) > 0 ? true : false); m_CleannerUpButton->m_IsActive = ((arr[6] & 0x10) > 0 ? true : false); m_CleannerDownButton->m_IsActive = ((arr[6] & 0x20) > 0 ? true : false); m_EleCylinderDownLimit->m_IsActive = ((arr[6] & 0x40) > 0 ? true : false); m_CleannerMotionStop->m_IsActive = !((arr[6] & 0x80) > 0 ? true : false); // m_UpperLidButton->m_IsActive = ((arr[7] & 0x1) > 0 ? true : false); m_CleanBoxTopDoorOpenPos->m_IsActive = !((arr[7] & 0x08) > 0 ? true : false); m_CleanBoxTopDoorClosePos->m_IsActive = !((arr[7] & 0x10) > 0 ? true : false); //m_CleannerBoxCylinderPressOn->m_IsActive = ((arr[7] & 0x80) > 0 ? true : false); m_PrintStorageCar2UpLimit->m_IsActive = ((arr[8] & 0x1) > 0 ? true : false); m_PrintStorageCar2DownLimit->m_IsActive = ((arr[8] & 0x2) > 0 ? true : false); m_PrintStorageCar2Connect->m_IsActive = ((arr[8] & 0x4) > 0 ? true : false); m_CylinderHandLockSensor->m_IsActive = ((arr[8] & 0x08) > 0 ? true : false); // m_CleannerBoxLockOn->m_IsActive = ((arr[8] & 0x8) > 0 ? true : false); // m_CleannerBoxLockOff->m_IsActive = ((arr[8] & 0x10) > 0 ? true : false); m_PrintStorageCar2Block->m_IsActive = ((arr[8] & 0x20) > 0 ? true : false); m_CleanBoxTopDoorRisePos->m_IsActive = ((arr[9] & 0x01) > 0 ? true : false); m_CleanBoxTopDoorFallPos->m_IsActive = ((arr[9] & 0x02) > 0 ? true : false); m_CoverAcceptPowderPos->m_IsActive = ((arr[9] & 0x04) > 0 ? true : false); m_CoverDropPowderPos1->m_IsActive = ((arr[9] & 0x08) > 0 ? true : false); m_CoverDropPowderPos2->m_IsActive = ((arr[9] & 0x10) > 0 ? true : false); m_ArmFrontLimit->m_IsActive = !((arr[9] & 0x20) > 0 ? true : false); m_ArmBackLimit->m_IsActive = !((arr[9] & 0x40) > 0 ? true : false); m_ArmHomeIndex->m_IsActive = ((arr[9] & 0x80) > 0 ? true : false); m_LoadLeftLimit->m_IsActive = !((arr[10] & 0x1) > 0 ? true : false); m_LoadRgithLimit->m_IsActive = !((arr[10] & 0x2) > 0 ? true : false); m_LoadHomeIndex->m_IsActive = ((arr[10] & 0x4) > 0 ? true : false); m_LoadHandPos->m_IsActive = ((arr[10] & 0x20) > 0 ? true : false); m_PowderPosition5->m_IsActive = ((arr[10] & 0x40) > 0 ? true : false); m_PowderPosition4->m_IsActive = ((arr[10] & 0x80) > 0 ? true : false); m_PowderPosition3->m_IsActive = ((arr[11] & 0x1) > 0 ? true : false); m_PowderPosition2->m_IsActive = ((arr[11] & 0x2) > 0 ? true : false); m_PowderPosition1->m_IsActive = ((arr[11] & 0x4) > 0 ? true : false); m_PowderSupplyHomeIndex->m_IsActive = ((arr[11] & 0x8) > 0 ? true : false); m_SafeDoorClose1->m_IsActive = ((arr[11] & 0x10) > 0 ? true : false); m_SafeDoorClose2->m_IsActive = ((arr[11] & 0x20) > 0 ? true : false); m_SafeDoorClose3->m_IsActive = ((arr[11] & 0x40) > 0 ? true : false); m_PrintableSignal->m_IsActive = ((arr[11] & 0x80) > 0 ? true : false); m_FanRunSignal->m_IsActive = ((arr[12] & 0x1) > 0 ? true : false); m_PrintAirRenewalPressure->m_IsActive = ((arr[12] & 0x2) > 0 ? true : false); m_LightPathChillerAlarm->m_IsActive = ((arr[12] & 0x4) > 0 ? true : false); m_PurifierChillerAlarm->m_IsActive = ((arr[12] & 0x8) > 0 ? true : false); m_CleanStorageCar1UpLimit->m_IsActive = ((arr[12] & 0x10) > 0 ? true : false); m_CleanStorageCar1DownLimit->m_IsActive = ((arr[12] & 0x20) > 0 ? true : false); m_CleanStorageCar1Connect->m_IsActive = ((arr[12] & 0x40) > 0 ? true : false); m_CleanStorageCar1Block->m_IsActive = ((arr[12] & 0x80) > 0 ? true : false); m_CleanStorageCar2UpLimit->m_IsActive = ((arr[13] & 0x01) > 0 ? true : false); m_CleanStorageCar2DownLimit->m_IsActive = ((arr[13] & 0x02) > 0 ? true : false); m_CleanStorageCar2Connect->m_IsActive = ((arr[13] & 0x04) > 0 ? true : false); m_CleanStorageCar2Block->m_IsActive = ((arr[13] & 0x08) > 0 ? true : false); m_CylinderHandPlateOpen->m_IsActive = ((arr[13] & 0x10) > 0 ? true : false); m_CylinderHandPlateOff->m_IsActive = ((arr[13] & 0x20) > 0 ? true : false); m_CylinderHandDoorOpen->m_IsActive = ((arr[13] & 0x40) > 0 ? true : false); m_CylinderHandDoorClose->m_IsActive = ((arr[13] & 0x80) > 0 ? true : false); int outputStartAddr = 24; m_ServoMotor->m_IsActive = ((arr[outputStartAddr] & 0x1) > 0 ? true : false); m_Laser->m_IsActive = ((arr[outputStartAddr] & 0x2) > 0 ? true : false); m_Laser1Enable->m_IsActive = ((arr[outputStartAddr] & 0x4) > 0 ? true : false); m_Laser1Start->m_IsActive = ((arr[outputStartAddr] & 0x8) > 0 ? true : false); m_Laser1Red->m_IsActive = ((arr[outputStartAddr] & 0x10) > 0 ? true : false); m_Laser2Enable->m_IsActive = ((arr[outputStartAddr] & 0x20) > 0 ? true : false); m_Laser2Start->m_IsActive = ((arr[outputStartAddr] & 0x40) > 0 ? true : false); m_Laser2Red->m_IsActive = ((arr[outputStartAddr] & 0x80) > 0 ? true : false); m_Laser3Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x1) > 0 ? true : false); m_Laser3Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x2) > 0 ? true : false); m_Laser3Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x4) > 0 ? true : false); m_Laser4Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x8) > 0 ? true : false); m_Laser4Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x10) > 0 ? true : false); m_Laser4Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x20) > 0 ? true : false); m_PrintDoorLock->m_IsActive = ((arr[outputStartAddr + 1] & 0x40) > 0 ? true : false); m_LightOn->m_IsActive = ((arr[outputStartAddr + 1] & 0x80) > 0 ? true : false); m_YellowLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x1) > 0 ? true : false); m_GreenLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x2) > 0 ? true : false); m_RedLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x4) > 0 ? true : false); m_Buzzer->m_IsActive = ((arr[outputStartAddr + 2] & 0x8) > 0 ? true : false); m_PrintAssistGas->m_IsActive = ((arr[outputStartAddr + 2] & 0x10) > 0 ? true : false); m_PrintAirEvacuation->m_IsActive = ((arr[outputStartAddr + 2] & 0x20) > 0 ? true : false); m_PressureRelease->m_IsActive = ((arr[outputStartAddr + 2] & 0x40) > 0 ? true : false); m_ScannerCool->m_IsActive = ((arr[outputStartAddr + 2] & 0x80) > 0 ? true : false); m_Heating->m_IsActive = ((arr[outputStartAddr + 3] & 0x1) > 0 ? true : false); m_PrintStorageCar1DropPowderValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x2) > 0 ? true : false); m_PrintSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x4) > 0 ? true : false); m_PrintCylindFixed->m_IsActive = ((arr[outputStartAddr + 4] & 0x2) > 0 ? true : false); m_PrintCylindRelease->m_IsActive = ((arr[outputStartAddr + 4] & 0x4) > 0 ? true : false); m_HandrailDoorLock->m_IsActive = ((arr[outputStartAddr + 4] & 0x10) > 0 ? true : false); m_PrintMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x40) > 0 ? true : false); //m_PrintSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x80) > 0 ? true : false); m_PowderCleanerUpOpenGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x8) > 0 ? true : false); m_PowderCleanerUpCloseGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x10) > 0 ? true : false); //m_PowderCleannerPressRelease->m_IsActive = ((arr[outputStartAddr + 5] & 0x80) > 0 ? true : false); m_CleanBoxDeoxygenValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x1) > 0 ? true : false); m_CleanBoxEvacuationValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x2) > 0 ? true : false); m_PrintAirRenewalInOutValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x40) > 0 ? true : false); m_PrintAirRenewalPresRelValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x2) > 0 ? true : false); //if (m_LoadPinInserOn)m_LoadPinInserOn->m_IsActive = ((arr[outputStartAddr + 7] & 0x8) > 0 ? true : false); m_PrintVacuumEnterSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x10) > 0 ? true : false); m_PrintStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x20) > 0 ? true : false); m_PrintStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x40) > 0 ? true : false); m_PurifierCoolerPower->m_IsActive = ((arr[outputStartAddr + 7] & 0x80) > 0 ? true : false); m_PrintStorageCar2DropPowderValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x2) > 0 ? true : false); m_PrintStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x4) > 0 ? true : false); m_PrintStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x8) > 0 ? true : false); m_PrintSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x10) > 0 ? true : false); m_CleanStorageCar1DropPowderValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x20) > 0 ? true : false); m_CleanStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x40) > 0 ? true : false); m_CleanStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x80) > 0 ? true : false); m_CleanSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x01) > 0 ? true : false); m_CleanStorageCar2DropPowderValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x2) > 0 ? true : false); m_CleanStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x4) > 0 ? true : false); m_CleanStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x8) > 0 ? true : false); m_CleanSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x10) > 0 ? true : false); m_CylinderHandPlateOpenValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x20) > 0 ? true : false); m_CylinderHandPlateCloseValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x40) > 0 ? true : false); m_CylinderHandLockOpen->m_IsActive = ((arr[outputStartAddr + 9] & 0x80) > 0 ? true : false); m_EleCylinderMainBrake->m_IsActive = ((arr[outputStartAddr + 10] & 0x01) > 0 ? true : false); m_EleCylinderSlaveBrake->m_IsActive = ((arr[outputStartAddr + 10] & 0x02) > 0 ? true : false); m_LoadAxisBrake->m_IsActive = ((arr[outputStartAddr + 10] & 0x04) > 0 ? true : false); m_CleanLeftVacuumValve->m_IsActive = ((arr[outputStartAddr + 10] & 0x08) > 0 ? true : false); m_CleanRightVacuumValve->m_IsActive = ((arr[outputStartAddr + 10] & 0x10) > 0 ? true : false); m_CleanVacuumReairValve->m_IsActive = ((arr[outputStartAddr + 10] & 0x20) > 0 ? true : false); m_CleanBlowSrcSelect->m_IsActive = ((arr[outputStartAddr + 10] & 0x40) > 0 ? true : false); m_CleanLightOn->m_IsActive = ((arr[outputStartAddr + 10] & 0x80) > 0 ? true : false); m_CleanBoxTopDoorRise->m_IsActive = ((arr[outputStartAddr + 11] & 0x01) > 0 ? true : false); m_CleanBoxTopDoorFall->m_IsActive = ((arr[outputStartAddr + 11] & 0x02) > 0 ? true : false); bitset<8> doorState; doorState.reset(); doorState[0] = m_SafeDoorClose1->m_IsActive; doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; m_SafeDoorState = doorState.to_ulong(); } void IO_1200_V0::Init(map& ioCfgMap) { m_ServoMotor = ioCfgMap["ServoMotor"]; //伺服电源 m_Laser = ioCfgMap["Laser"]; //激光器 m_Laser1Enable = ioCfgMap["Laser1Enable"]; //激光1使能 m_Laser1Start = ioCfgMap["Laser1Start"]; //激光1启动 m_Laser1Red = ioCfgMap["Laser1Red"]; //激光1红光 m_Laser2Enable = ioCfgMap["Laser2Enable"]; //激光2使能 m_Laser2Start = ioCfgMap["Laser2Start"]; //激光2启动 m_Laser2Red = ioCfgMap["Laser2Red"]; //激光2红光 m_Laser3Enable = ioCfgMap["Laser3Enable"]; //激光3使能 m_Laser3Start = ioCfgMap["Laser3Start"]; //激光3启动 m_Laser3Red = ioCfgMap["Laser3Red"]; //激光3红光 m_Laser4Enable = ioCfgMap["Laser4Enable"]; //激光4使能 m_Laser4Start = ioCfgMap["Laser4Start"]; //激光4启动 m_Laser4Red = ioCfgMap["Laser4Red"]; //激光4红光 m_PrintDoorLock = ioCfgMap["PrintDoorLock"]; //打印舱门电锁 m_LightOn = ioCfgMap["LightOn"]; //照明 m_YellowLamp = ioCfgMap["YellowLamp"]; //黄灯 m_GreenLamp = ioCfgMap["GreenLamp"]; //绿灯 m_RedLamp = ioCfgMap["RedLamp"]; //红灯 m_Buzzer = ioCfgMap["Buzzer"]; //蜂鸣器 m_PrintAssistGas = ioCfgMap["PrintAssistGas"]; //辅助气 m_PrintAirEvacuation = ioCfgMap["PrintAirEvacuation"]; //排气阀 m_PressureRelease = ioCfgMap["PressureRelease"]; //压力释放 m_ScannerCool = ioCfgMap["ScannerCool"]; //振镜冷却 m_Heating = ioCfgMap["Heating"]; //加热 m_PrintStorageCar1DropPowderValve = ioCfgMap["PrintStorageCar1DropPowderValve"]; //存粉小车下粉阀1 m_PrintSlot1PipeValve = ioCfgMap["PrintSlot1PipeValve"]; //打印槽1管道阀 m_PrintCylindFixed = ioCfgMap["PrintCylindFixed"]; //打印位缸体固定 1500 m_PrintCylindRelease = ioCfgMap["PrintCylindRelease"]; //打印位缸体松开 1500 m_HandrailDoorLock = ioCfgMap["HandrailDoorLock"]; //栏杆门电磁锁 1500 m_PrintMainAxisBrake = ioCfgMap["PrintMainAxisBrake"]; //打印主轴刹车 m_PowderCleanerUpOpenGap = ioCfgMap["PowderCleanerUpOpenGap"]; //清粉箱上盖打开阀 m_PowderCleanerUpCloseGap = ioCfgMap["PowderCleanerUpCloseGap"]; //清粉箱上盖关闭阀 m_CleanBoxDeoxygenValve = ioCfgMap["CleanBoxDeoxygenValve"]; //清粉箱除氧进气阀 1500 m_CleanBoxEvacuationValve = ioCfgMap["CleanBoxEvacuationValve"]; //清粉箱除氧排气阀 1500 m_PrintAirRenewalInOutValve = ioCfgMap["PrintAirRenewalInOutValve"]; //打印室换气进出阀 1500 m_PrintAirRenewalPresRelValve = ioCfgMap["PrintAirRenewalPresRelValve"]; //打印室换气泄压阀 1500 m_PrintVacuumEnterSlave = ioCfgMap["PrintVacuumEnterSlave"]; //打印室吸尘进气阀 m_LaserPowerActive = ioCfgMap["LaserPowerActive"]; //激光电源激活 m_PrintStorageCar1DeoxygenValve = ioCfgMap["PrintStorageCar1DeoxygenValve"]; //打印存粉小车1除氧进气阀 m_PrintStorageCar1EvacuationValve = ioCfgMap["PrintStorageCar1EvacuationValve"]; //打印存粉小车1除氧排气阀 m_PurifierCoolerPower = ioCfgMap["PurifierCoolerPower"]; //净化器冷水机电源 //1500 m_PrintStorageCar2DropPowderValve = ioCfgMap["PrintStorageCar2DropPowderValve"]; //打印存粉小车2下粉阀 m_PrintStorageCar2DeoxygenValve = ioCfgMap["PrintStorageCar2DeoxygenValve"]; //打印存粉小车2除氧进气阀 m_PrintStorageCar2EvacuationValve = ioCfgMap["PrintStorageCar2EvacuationValve"]; //打印存粉小车2除氧排气阀 m_PrintSlot2PipeValve = ioCfgMap["PrintSlot2PipeValve"]; //打印槽2管道阀 m_CleanStorageCar1DropPowderValve = ioCfgMap["CleanStorageCar1DropPowderValve"]; //清粉存粉小车1下粉阀 m_CleanStorageCar1DeoxygenValve = ioCfgMap["CleanStorageCar1DeoxygenValve"]; //清粉存粉小车1除氧进气阀 m_CleanStorageCar1EvacuationValve = ioCfgMap["CleanStorageCar1EvacuationValve"]; //清粉存粉小车1除氧排气阀 m_CleanSlot1PipeValve = ioCfgMap["CleanSlot1PipeValve"]; //清粉槽1管道阀 m_CleanStorageCar2DropPowderValve = ioCfgMap["CleanStorageCar2DropPowderValve"]; //清粉存粉小车2下粉阀 m_CleanStorageCar2DeoxygenValve = ioCfgMap["CleanStorageCar2DeoxygenValve"]; //清粉存粉小车2除氧进气阀 m_CleanStorageCar2EvacuationValve = ioCfgMap["CleanStorageCar2EvacuationValve"]; //清粉存粉小车2除氧排气阀 m_CleanSlot2PipeValve = ioCfgMap["CleanSlot2PipeValve"]; //清粉槽2管道阀 m_CylinderHandPlateOpenValve = ioCfgMap["CylinderHandPlateOpenValve"]; //缸体吊装盖板打开阀 m_CylinderHandPlateCloseValve = ioCfgMap["CylinderHandPlateCloseValve"]; //缸体吊装盖板关闭阀 m_CylinderHandLockOpen = ioCfgMap["CylinderHandLockOpen"]; //缸体吊装门锁打开 m_EleCylinderMainBrake = ioCfgMap["EleCylinderMainBrake"]; //电缸主轴刹车 m_EleCylinderSlaveBrake = ioCfgMap["EleCylinderSlaveBrake"]; //电缸从轴刹车 m_LoadAxisBrake = ioCfgMap["LoadAxisBrake"]; //移载轴刹车 m_CleanLeftVacuumValve = ioCfgMap["CleanLeftVacuumValve"]; //清粉左吸尘阀 m_CleanRightVacuumValve = ioCfgMap["CleanRightVacuumValve"]; //清粉右吸尘阀 m_CleanVacuumReairValve = ioCfgMap["CleanVacuumReairValve"]; //清粉吸尘回气阀 m_CleanBlowSrcSelect = ioCfgMap["CleanBlowSrcSelect"]; //清粉吹气源选择 m_CleanLightOn = ioCfgMap["CleanLightOn"]; //清粉照明 m_CleanBoxTopDoorRise = ioCfgMap["CleanBoxTopDoorRise"]; //清粉箱顶门升高 m_CleanBoxTopDoorFall = ioCfgMap["CleanBoxTopDoorFall"]; //清粉箱顶门降低 m_SystemStop = ioCfgMap["SystemStop"]; //系统急停 m_HighPressureCheck = ioCfgMap["HighPressureCheck"]; //高压报警 m_ProtectGasCheck = ioCfgMap["ProtectGasCheck"]; //低压报警 m_PowerDown = ioCfgMap["PowerDown"]; //外部断电 m_PowerOK = ioCfgMap["PowerOK"]; //电源正常 m_OutDoorOxygenAlarm = ioCfgMap["OutDoorOxygenAlarm"]; //室外测氧报警 m_LaserChillerAlarm = ioCfgMap["LaserChillerAlarm"]; //激光器冷水机报警 m_BusAirSwitchClose = ioCfgMap["BusAirSwitchClose"]; //总空开触点 m_ExtMachineAirSwitchClose = ioCfgMap["ExtMachineAirSwitchClose"]; //外部设备空开触点 m_HeattingAirSwitchClose = ioCfgMap["HeattingAirSwitchClose"]; //加热空开触点 m_LaserAirSwitchClose = ioCfgMap["LaserAirSwitchClose"]; //激光空开触点 m_ServoAirSwitchClose = ioCfgMap["ServoAirSwitchClose"]; //伺服空开触点 m_Laser1Alarm = ioCfgMap["Laser1Alarm"]; //激光器1报警 m_Laser2Alarm = ioCfgMap["Laser2Alarm"]; //激光器2报警 m_Laser3Alarm = ioCfgMap["Laser3Alarm"]; //激光器3报警 m_Laser4Alarm = ioCfgMap["Laser4Alarm"]; //激光器4报警 m_PrintStorageCar1UpLimit = ioCfgMap["PrintStorageCar1UpLimit"]; //打印存粉小车1上限 1500 m_PrintStorageCar1DownLimit = ioCfgMap["PrintStorageCar1DownLimit"]; //打印存粉小车1下限 1500 m_PrintStorageCar1Connect = ioCfgMap["PrintStorageCar1Connect"]; //打印存粉小车1连接 1500 m_PrintStorageCar1Block = ioCfgMap["PrintStorageCar1Block"]; //打印存粉小车1堵塞 1500 m_PrintStorageCar1PressureHigh = ioCfgMap["PrintStorageCar1PressureHigh"]; //打印存粉小车1压力高 1500 m_SSRInput = ioCfgMap["SSRInput"]; //加热输入检测 m_SSROutput = ioCfgMap["SSROutput"]; //加热输出检测 m_PrintMainAxisUpLimit = ioCfgMap["PrintMainAxisUpLimit"]; //打印主轴上限位 m_PrintMainAxisDownLimit = ioCfgMap["PrintMainAxisDownLimit"]; //打印主轴下限位 m_PrintMainHomeIndex = ioCfgMap["PrintMainHomeIndex"]; //打印主轴原点 m_PrintStorageCar2PressureHigh = ioCfgMap["PrintStorageCar2PressureHigh"]; //打印存粉小车2压力高 1500 m_CleanStorageCar1PressureHigh = ioCfgMap["CleanStorageCar1PressureHigh"]; //清粉存粉小车1压力高 1500 m_CleanStorageCar2PressureHigh = ioCfgMap["CleanStorageCar2PressureHigh"]; //清粉存粉小车2压力高 1500 m_CylinderFixExtendOn = ioCfgMap["CylinderFixExtendOn"]; //缸体固定气缸伸出位 m_CylinderFixExtendOff = ioCfgMap["CylinderFixExtendOff"]; //缸体固定气缸缩回位 m_PrintCylinderJackupReachSensor = ioCfgMap["PrintCylinderJackupReachSensor"]; //打印缸体顶升到位感应器 m_EleCylinderHomeIndex = ioCfgMap["EleCylinderHomeIndex"]; //电缸原点 m_TrackPrintPos = ioCfgMap["TrackPrintPos"]; //轨道打印位 m_EleCylinderUpLimit = ioCfgMap["EleCylinderUpLimit"]; //电缸上限 m_TrackCleanPos = ioCfgMap["TrackCleanPos"]; //轨道清粉位 m_CleannerUpButton = ioCfgMap["CleannerUpButton"]; //清粉上升按钮 m_CleannerDownButton = ioCfgMap["CleannerDownButton"]; //清粉下降按钮 m_EleCylinderDownLimit = ioCfgMap["EleCylinderDownLimit"]; //电缸下限 m_CleannerMotionStop = ioCfgMap["CleannerMotionStop"]; //清粉升降急停 m_CleanBoxTopDoorOpenPos = ioCfgMap["CleanBoxTopDoorOpenPos"]; //清粉箱顶门气缸开位 m_CleanBoxTopDoorClosePos = ioCfgMap["CleanBoxTopDoorClosePos"]; //清粉箱顶门气缸关位 m_PrintStorageCar2UpLimit = ioCfgMap["PrintStorageCar2UpLimit"]; //打印存粉小车2上限 m_PrintStorageCar2DownLimit = ioCfgMap["PrintStorageCar2DownLimit"]; //打印存粉小车2下限 m_PrintStorageCar2Connect = ioCfgMap["PrintStorageCar2Connect"]; //打印存粉小车2连接 m_CylinderHandLockSensor = ioCfgMap["CylinderHandLockSensor"]; //缸体吊装门锁感应 m_PrintStorageCar2Block = ioCfgMap["PrintStorageCar2Block"]; //打印存粉小车2堵塞 m_CleanBoxTopDoorRisePos = ioCfgMap["CleanBoxTopDoorRisePos"]; //清粉箱顶门升高位 m_CleanBoxTopDoorFallPos = ioCfgMap["CleanBoxTopDoorFallPos"]; //清粉箱顶门降低位 m_CoverAcceptPowderPos = ioCfgMap["CoverAcceptPowderPos"]; //铺粉轴接粉位 m_CoverDropPowderPos1 = ioCfgMap["CoverDropPowderPos1"]; //铺粉轴下粉位1 m_CoverDropPowderPos2 = ioCfgMap["CoverDropPowderPos2"]; //铺粉轴下粉位2 m_ArmFrontLimit = ioCfgMap["ArmFrontLimit"]; //铺粉轴前限位 m_ArmBackLimit = ioCfgMap["ArmBackLimit"]; //铺粉轴后限位 m_ArmHomeIndex = ioCfgMap["ArmHomeIndex"]; //铺粉轴原点 m_LoadLeftLimit = ioCfgMap["LoadLeftLimit"]; //移载轴左限位 m_LoadRgithLimit = ioCfgMap["LoadRgithLimit"]; //移载轴右限位 m_LoadHomeIndex = ioCfgMap["LoadHomeIndex"]; //移载轴原点 m_LoadHandPos = ioCfgMap["LoadHandPos"]; m_PowderPosition1 = ioCfgMap["PowderPosition1"]; //粉仓粉位1 m_PowderPosition2 = ioCfgMap["PowderPosition2"]; //粉仓粉位2 m_PowderPosition3 = ioCfgMap["PowderPosition3"]; //粉仓粉位3 m_PowderPosition4 = ioCfgMap["PowderPosition4"]; //粉仓粉位4 m_PowderPosition5 = ioCfgMap["PowderPosition5"]; //粉仓粉位5 m_PowderSupplyHomeIndex = ioCfgMap["PowderSupplyHomeIndex"]; //供粉转轴原点 m_SafeDoorClose1 = ioCfgMap["SafeDoorClose1"]; //安全门锁信号1 m_SafeDoorClose2 = ioCfgMap["SafeDoorClose2"]; //安全门锁信号2 m_SafeDoorClose3 = ioCfgMap["SafeDoorClose3"]; //安全门锁信号3 m_PrintableSignal = ioCfgMap["PrintableSignal"]; //允许打印信号 m_FanRunSignal = ioCfgMap["FanRunSignal"]; //风机运行信号 m_PrintAirRenewalPressure = ioCfgMap["PrintAirRenewalPressure"]; //打印室换气源压力 m_LightPathChillerAlarm = ioCfgMap["LightPathChillerAlarm"]; //光路冷水机报警 m_PurifierChillerAlarm = ioCfgMap["PurifierChillerAlarm"]; //净化器冷水机报警 m_CleanStorageCar1UpLimit = ioCfgMap["CleanStorageCar1UpLimit"]; //清粉存粉小车1上限 m_CleanStorageCar1DownLimit = ioCfgMap["CleanStorageCar1DownLimit"]; //清粉存粉小车1下限 m_CleanStorageCar1Connect = ioCfgMap["CleanStorageCar1Connect"]; //清粉存粉小车1连接 m_CleanStorageCar1Block = ioCfgMap["CleanStorageCar1Block"]; //清粉存粉小车1堵塞 m_CleanStorageCar2UpLimit = ioCfgMap["CleanStorageCar2UpLimit"]; //清粉存粉小车2上限 m_CleanStorageCar2DownLimit = ioCfgMap["CleanStorageCar2DownLimit"]; //清粉存粉小车2下限 m_CleanStorageCar2Connect = ioCfgMap["CleanStorageCar2Connect"]; //清粉存粉小车2连接 m_CleanStorageCar2Block = ioCfgMap["CleanStorageCar2Block"]; //清粉存粉小车2堵塞 m_CylinderHandPlateOpen = ioCfgMap["CylinderHandPlateOpen"]; //缸体吊装盖板开位 m_CylinderHandPlateOff = ioCfgMap["CylinderHandPlateOff"]; //缸体吊装盖板关位 m_CylinderHandDoorOpen = ioCfgMap["CylinderHandDoorOpen"]; //缸体吊装门开位 m_CylinderHandDoorClose = ioCfgMap["CylinderHandDoorClose"]; //缸体吊装门关位 } void IO_1200_V0::Update(unsigned char* arr) { m_SystemStop->m_IsActive = !((arr[0] & 0x1) > 0 ? true : false); m_HighPressureCheck->m_IsActive = ((arr[0] & 0x2) > 0 ? true : false); m_ProtectGasCheck->m_IsActive = ((arr[0] & 0x4) > 0 ? true : false); m_PowerDown->m_IsActive = ((arr[0] & 0x8) > 0 ? true : false); m_PowerOK->m_IsActive = ((arr[0] & 0x10) > 0 ? true : false); m_OutDoorOxygenAlarm->m_IsActive = ((arr[0] & 0x20) > 0 ? true : false); m_LaserChillerAlarm->m_IsActive = ((arr[0] & 0x40) > 0 ? true : false); m_BusAirSwitchClose->m_IsActive = ((arr[0] & 0x80) > 0 ? true : false); m_ExtMachineAirSwitchClose->m_IsActive = ((arr[1] & 0x1) > 0 ? true : false); m_HeattingAirSwitchClose->m_IsActive = ((arr[1] & 0x2) > 0 ? true : false); m_LaserAirSwitchClose->m_IsActive = ((arr[1] & 0x4) > 0 ? true : false); m_ServoAirSwitchClose->m_IsActive = ((arr[1] & 0x8) > 0 ? true : false); m_Laser1Alarm->m_IsActive = ((arr[1] & 0x10) > 0 ? true : false); m_Laser2Alarm->m_IsActive = ((arr[1] & 0x20) > 0 ? true : false); m_Laser3Alarm->m_IsActive = ((arr[1] & 0x40) > 0 ? true : false); m_Laser4Alarm->m_IsActive = ((arr[1] & 0x80) > 0 ? true : false); m_PrintStorageCar1UpLimit->m_IsActive = ((arr[2] & 0x1) > 0 ? true : false); m_PrintStorageCar1DownLimit->m_IsActive = ((arr[2] & 0x2) > 0 ? true : false); m_PrintStorageCar1Connect->m_IsActive = ((arr[2] & 0x4) > 0 ? true : false); m_PrintStorageCar1Block->m_IsActive = ((arr[2] & 0x8) > 0 ? true : false); m_PrintStorageCar1PressureHigh->m_IsActive = ((arr[2] & 0x10) > 0 ? true : false); m_SSRInput->m_IsActive = ((arr[2] & 0x20) > 0 ? true : false); m_SSROutput->m_IsActive = ((arr[2] & 0x40) > 0 ? true : false); m_PrintMainAxisUpLimit->m_IsActive = !((arr[2] & 0x80) > 0 ? true : false); m_PrintMainAxisDownLimit->m_IsActive = !((arr[3] & 0x1) > 0 ? true : false); m_PrintMainHomeIndex->m_IsActive = ((arr[3] & 0x2) > 0 ? true : false); m_PrintStorageCar2PressureHigh->m_IsActive = ((arr[3] & 0x4) > 0 ? true : false); m_CleanStorageCar1PressureHigh->m_IsActive = ((arr[3] & 0x8) > 0 ? true : false); m_CleanStorageCar2PressureHigh->m_IsActive = ((arr[3] & 0x10) > 0 ? true : false); m_CylinderFixExtendOn->m_IsActive = ((arr[4] & 0x40) > 0 ? true : false); m_CylinderFixExtendOff->m_IsActive = ((arr[4] & 0x80) > 0 ? true : false); m_PrintCylinderJackupReachSensor->m_IsActive = ((arr[5] & 0x01) > 0 ? true : false); m_EleCylinderHomeIndex->m_IsActive = ((arr[5] & 0x02) > 0 ? true : false); m_TrackPrintPos->m_IsActive = ((arr[5] & 0x4) > 0 ? true : false); m_EleCylinderUpLimit->m_IsActive = ((arr[6] & 0x4) > 0 ? true : false); m_TrackCleanPos->m_IsActive = ((arr[6] & 0x8) > 0 ? true : false); m_CleannerUpButton->m_IsActive = ((arr[6] & 0x10) > 0 ? true : false); m_CleannerDownButton->m_IsActive = ((arr[6] & 0x20) > 0 ? true : false); m_EleCylinderDownLimit->m_IsActive = ((arr[6] & 0x40) > 0 ? true : false); m_CleannerMotionStop->m_IsActive = !((arr[6] & 0x80) > 0 ? true : false); // m_UpperLidButton->m_IsActive = ((arr[7] & 0x1) > 0 ? true : false); m_CleanBoxTopDoorOpenPos->m_IsActive = !((arr[7] & 0x08) > 0 ? true : false); m_CleanBoxTopDoorClosePos->m_IsActive = !((arr[7] & 0x10) > 0 ? true : false); //m_CleannerBoxCylinderPressOn->m_IsActive = ((arr[7] & 0x80) > 0 ? true : false); m_PrintStorageCar2UpLimit->m_IsActive = ((arr[8] & 0x1) > 0 ? true : false); m_PrintStorageCar2DownLimit->m_IsActive = ((arr[8] & 0x2) > 0 ? true : false); m_PrintStorageCar2Connect->m_IsActive = ((arr[8] & 0x4) > 0 ? true : false); m_CylinderHandLockSensor->m_IsActive = ((arr[8] & 0x08) > 0 ? true : false); // m_CleannerBoxLockOn->m_IsActive = ((arr[8] & 0x8) > 0 ? true : false); // m_CleannerBoxLockOff->m_IsActive = ((arr[8] & 0x10) > 0 ? true : false); m_PrintStorageCar2Block->m_IsActive = ((arr[8] & 0x20) > 0 ? true : false); m_CleanBoxTopDoorRisePos->m_IsActive = ((arr[9] & 0x01) > 0 ? true : false); m_CleanBoxTopDoorFallPos->m_IsActive = ((arr[9] & 0x02) > 0 ? true : false); m_CoverAcceptPowderPos->m_IsActive = ((arr[9] & 0x04) > 0 ? true : false); m_CoverDropPowderPos1->m_IsActive = ((arr[9] & 0x08) > 0 ? true : false); m_CoverDropPowderPos2->m_IsActive = ((arr[9] & 0x10) > 0 ? true : false); m_ArmFrontLimit->m_IsActive = !((arr[9] & 0x20) > 0 ? true : false); m_ArmBackLimit->m_IsActive = !((arr[9] & 0x40) > 0 ? true : false); m_ArmHomeIndex->m_IsActive = ((arr[9] & 0x80) > 0 ? true : false); m_LoadLeftLimit->m_IsActive = !((arr[10] & 0x1) > 0 ? true : false); m_LoadRgithLimit->m_IsActive = !((arr[10] & 0x2) > 0 ? true : false); m_LoadHomeIndex->m_IsActive = ((arr[10] & 0x4) > 0 ? true : false); m_LoadHandPos->m_IsActive = ((arr[10] & 0x20) > 0 ? true : false); m_PowderPosition5->m_IsActive = ((arr[10] & 0x40) > 0 ? true : false); m_PowderPosition4->m_IsActive = ((arr[10] & 0x80) > 0 ? true : false); m_PowderPosition3->m_IsActive = ((arr[11] & 0x1) > 0 ? true : false); m_PowderPosition2->m_IsActive = ((arr[11] & 0x2) > 0 ? true : false); m_PowderPosition1->m_IsActive = ((arr[11] & 0x4) > 0 ? true : false); m_PowderSupplyHomeIndex->m_IsActive = ((arr[11] & 0x8) > 0 ? true : false); m_SafeDoorClose1->m_IsActive = ((arr[11] & 0x10) > 0 ? true : false); m_SafeDoorClose2->m_IsActive = ((arr[11] & 0x20) > 0 ? true : false); m_SafeDoorClose3->m_IsActive = ((arr[11] & 0x40) > 0 ? true : false); m_PrintableSignal->m_IsActive = ((arr[11] & 0x80) > 0 ? true : false); m_FanRunSignal->m_IsActive = ((arr[12] & 0x1) > 0 ? true : false); m_PrintAirRenewalPressure->m_IsActive = ((arr[12] & 0x2) > 0 ? true : false); m_LightPathChillerAlarm->m_IsActive = ((arr[12] & 0x4) > 0 ? true : false); m_PurifierChillerAlarm->m_IsActive = ((arr[12] & 0x8) > 0 ? true : false); m_CleanStorageCar1UpLimit->m_IsActive = ((arr[12] & 0x10) > 0 ? true : false); m_CleanStorageCar1DownLimit->m_IsActive = ((arr[12] & 0x20) > 0 ? true : false); m_CleanStorageCar1Connect->m_IsActive = ((arr[12] & 0x40) > 0 ? true : false); m_CleanStorageCar1Block->m_IsActive = ((arr[12] & 0x80) > 0 ? true : false); m_CleanStorageCar2UpLimit->m_IsActive = ((arr[13] & 0x01) > 0 ? true : false); m_CleanStorageCar2DownLimit->m_IsActive = ((arr[13] & 0x02) > 0 ? true : false); m_CleanStorageCar2Connect->m_IsActive = ((arr[13] & 0x04) > 0 ? true : false); m_CleanStorageCar2Block->m_IsActive = ((arr[13] & 0x08) > 0 ? true : false); m_CylinderHandPlateOpen->m_IsActive = ((arr[13] & 0x10) > 0 ? true : false); m_CylinderHandPlateOff->m_IsActive = ((arr[13] & 0x20) > 0 ? true : false); m_CylinderHandDoorOpen->m_IsActive = ((arr[13] & 0x40) > 0 ? true : false); m_CylinderHandDoorClose->m_IsActive = ((arr[13] & 0x80) > 0 ? true : false); int outputStartAddr = 24; m_ServoMotor->m_IsActive = ((arr[outputStartAddr] & 0x1) > 0 ? true : false); m_Laser->m_IsActive = ((arr[outputStartAddr] & 0x2) > 0 ? true : false); m_Laser1Enable->m_IsActive = ((arr[outputStartAddr] & 0x4) > 0 ? true : false); m_Laser1Start->m_IsActive = ((arr[outputStartAddr] & 0x8) > 0 ? true : false); m_Laser1Red->m_IsActive = ((arr[outputStartAddr] & 0x10) > 0 ? true : false); m_Laser2Enable->m_IsActive = ((arr[outputStartAddr] & 0x20) > 0 ? true : false); m_Laser2Start->m_IsActive = ((arr[outputStartAddr] & 0x40) > 0 ? true : false); m_Laser2Red->m_IsActive = ((arr[outputStartAddr] & 0x80) > 0 ? true : false); m_Laser3Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x1) > 0 ? true : false); m_Laser3Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x2) > 0 ? true : false); m_Laser3Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x4) > 0 ? true : false); m_Laser4Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x8) > 0 ? true : false); m_Laser4Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x10) > 0 ? true : false); m_Laser4Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x20) > 0 ? true : false); m_PrintDoorLock->m_IsActive = ((arr[outputStartAddr + 1] & 0x40) > 0 ? true : false); m_LightOn->m_IsActive = ((arr[outputStartAddr + 1] & 0x80) > 0 ? true : false); m_YellowLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x1) > 0 ? true : false); m_GreenLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x2) > 0 ? true : false); m_RedLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x4) > 0 ? true : false); m_Buzzer->m_IsActive = ((arr[outputStartAddr + 2] & 0x8) > 0 ? true : false); m_PrintAssistGas->m_IsActive = ((arr[outputStartAddr + 2] & 0x10) > 0 ? true : false); m_PrintAirEvacuation->m_IsActive = ((arr[outputStartAddr + 2] & 0x20) > 0 ? true : false); m_PressureRelease->m_IsActive = ((arr[outputStartAddr + 2] & 0x40) > 0 ? true : false); m_ScannerCool->m_IsActive = ((arr[outputStartAddr + 2] & 0x80) > 0 ? true : false); m_Heating->m_IsActive = ((arr[outputStartAddr + 3] & 0x1) > 0 ? true : false); m_PrintStorageCar1DropPowderValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x2) > 0 ? true : false); m_PrintSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x4) > 0 ? true : false); m_PrintCylindFixed->m_IsActive = ((arr[outputStartAddr + 4] & 0x2) > 0 ? true : false); m_PrintCylindRelease->m_IsActive = ((arr[outputStartAddr + 4] & 0x4) > 0 ? true : false); m_HandrailDoorLock->m_IsActive = ((arr[outputStartAddr + 4] & 0x10) > 0 ? true : false); m_PrintMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x40) > 0 ? true : false); //m_PrintSlaveAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x80) > 0 ? true : false); m_PowderCleanerUpOpenGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x8) > 0 ? true : false); m_PowderCleanerUpCloseGap->m_IsActive = ((arr[outputStartAddr + 5] & 0x10) > 0 ? true : false); //m_PowderCleannerPressRelease->m_IsActive = ((arr[outputStartAddr + 5] & 0x80) > 0 ? true : false); m_CleanBoxDeoxygenValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x1) > 0 ? true : false); m_CleanBoxEvacuationValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x2) > 0 ? true : false); m_PrintAirRenewalInOutValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x40) > 0 ? true : false); m_PrintAirRenewalPresRelValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x2) > 0 ? true : false); m_LaserPowerActive->m_IsActive = ((arr[outputStartAddr + 7] & 0x4) > 0 ? true : false); //if (m_LoadPinInserOn)m_LoadPinInserOn->m_IsActive = ((arr[outputStartAddr + 7] & 0x8) > 0 ? true : false); m_PrintVacuumEnterSlave->m_IsActive = ((arr[outputStartAddr + 7] & 0x10) > 0 ? true : false); m_PrintStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x20) > 0 ? true : false); m_PrintStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x40) > 0 ? true : false); m_PurifierCoolerPower->m_IsActive = ((arr[outputStartAddr + 7] & 0x80) > 0 ? true : false); m_PrintStorageCar2DropPowderValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x2) > 0 ? true : false); m_PrintStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x4) > 0 ? true : false); m_PrintStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x8) > 0 ? true : false); m_PrintSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x10) > 0 ? true : false); m_CleanStorageCar1DropPowderValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x20) > 0 ? true : false); m_CleanStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x40) > 0 ? true : false); m_CleanStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x80) > 0 ? true : false); m_CleanSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x01) > 0 ? true : false); m_CleanStorageCar2DropPowderValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x2) > 0 ? true : false); m_CleanStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x4) > 0 ? true : false); m_CleanStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x8) > 0 ? true : false); m_CleanSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x10) > 0 ? true : false); m_CylinderHandPlateOpenValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x20) > 0 ? true : false); m_CylinderHandPlateCloseValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x40) > 0 ? true : false); m_CylinderHandLockOpen->m_IsActive = ((arr[outputStartAddr + 9] & 0x80) > 0 ? true : false); m_EleCylinderMainBrake->m_IsActive = ((arr[outputStartAddr + 10] & 0x01) > 0 ? true : false); m_EleCylinderSlaveBrake->m_IsActive = ((arr[outputStartAddr + 10] & 0x02) > 0 ? true : false); m_LoadAxisBrake->m_IsActive = ((arr[outputStartAddr + 10] & 0x04) > 0 ? true : false); m_CleanLeftVacuumValve->m_IsActive = ((arr[outputStartAddr + 10] & 0x08) > 0 ? true : false); m_CleanRightVacuumValve->m_IsActive = ((arr[outputStartAddr + 10] & 0x10) > 0 ? true : false); m_CleanVacuumReairValve->m_IsActive = ((arr[outputStartAddr + 10] & 0x20) > 0 ? true : false); m_CleanBlowSrcSelect->m_IsActive = ((arr[outputStartAddr + 10] & 0x40) > 0 ? true : false); m_CleanLightOn->m_IsActive = ((arr[outputStartAddr + 10] & 0x80) > 0 ? true : false); m_CleanBoxTopDoorRise->m_IsActive = ((arr[outputStartAddr + 11] & 0x01) > 0 ? true : false); m_CleanBoxTopDoorFall->m_IsActive = ((arr[outputStartAddr + 11] & 0x02) > 0 ? true : false); bitset<8> doorState; doorState.reset(); doorState[0] = m_SafeDoorClose1->m_IsActive; doorState[1] = m_SafeDoorClose2->m_IsActive; doorState[2] = m_SafeDoorClose3->m_IsActive; doorState[3] = m_PrintDoorLock->m_IsActive; m_SafeDoorState = doorState.to_ulong(); } void IO_E1000_V0::Init(map& ioCfgMap) { m_ServoMotor = ioCfgMap["ServoMotor"]; //伺服电源 m_Laser = ioCfgMap["Laser"]; //激光器 m_Laser1Enable = ioCfgMap["Laser1Enable"]; //激光1使能 m_Laser1Start = ioCfgMap["Laser1Start"]; //激光1启动 m_Laser1Red = ioCfgMap["Laser1Red"]; //激光1红光 m_Laser2Enable = ioCfgMap["Laser2Enable"]; //激光2使能 m_Laser2Start = ioCfgMap["Laser2Start"]; //激光2启动 m_Laser2Red = ioCfgMap["Laser2Red"]; //激光2红光 m_Laser3Enable = ioCfgMap["Laser3Enable"]; //激光3使能 m_Laser3Start = ioCfgMap["Laser3Start"]; //激光3启动 m_Laser3Red = ioCfgMap["Laser3Red"]; //激光3红光 m_Laser4Enable = ioCfgMap["Laser4Enable"]; //激光4使能 m_Laser4Start = ioCfgMap["Laser4Start"]; //激光4启动 m_Laser4Red = ioCfgMap["Laser4Red"]; //激光4红光 m_PrintDoorLock = ioCfgMap["PrintDoorLock"]; //打印舱门电锁 m_LightOn = ioCfgMap["LightOn"]; //照明 m_YellowLamp = ioCfgMap["YellowLamp"]; //黄灯 m_GreenLamp = ioCfgMap["GreenLamp"]; //绿灯 m_RedLamp = ioCfgMap["RedLamp"]; //红灯 m_Buzzer = ioCfgMap["Buzzer"]; //蜂鸣器 m_PrintAssistGas = ioCfgMap["PrintAssistGas"]; //辅助气 m_PrintAirEvacuation = ioCfgMap["PrintAirEvacuation"]; //排气阀 m_ScannerCool = ioCfgMap["ScannerCool"]; //振镜冷却 m_Heating = ioCfgMap["Heating"]; //加热 m_PrintSlot1PipeValve = ioCfgMap["PrintSlot1PipeValve"]; //打印槽1管道阀 m_ChillerPower = ioCfgMap["ChillerPower"]; //冷水机电源 m_CarbinBackLock = ioCfgMap["CarbinBackLock"]; //打印舱后锁 m_UpLayerAccessDoorUnlock = ioCfgMap["UpLayerAccessDoorUnlock"]; //上层维护门解锁 m_DownLayerAccessDoorUnlock = ioCfgMap["DownLayerAccessDoorUnlock"]; //下层维护门解锁 m_PrintMainAxisBrake = ioCfgMap["PrintMainAxisBrake"]; //打印主轴刹车 m_CylinderLinerSealChargeValve = ioCfgMap["CylinderLinerSealChargeValve"]; //缸体密封圈充气阀 m_CylinderLinerSealReleaseValve = ioCfgMap["CylinderLinerSealReleaseValve"]; //缸体密封圈泄压阀 m_CleanBoxFoldUp = ioCfgMap["CleanBoxFoldUp"]; //清粉箱折叠升高 m_CleanBoxFoldDown = ioCfgMap["CleanBoxFoldDown"]; //清粉箱折叠降低 m_PrintAirRenewalInOutValve = ioCfgMap["PrintAirRenewalInOutValve"]; //打印室换气进出阀 1500 m_PrintAirRenewalPresRelValve = ioCfgMap["PrintAirRenewalPresRelValve"]; //打印室换气泄压阀 1500 m_LaserPowerActive = ioCfgMap["LaserPowerActive"]; //激光电源激活 m_LaserErrorReset = ioCfgMap["LaserErrorReset"]; //激光错误复位 m_PrintStorageCar1DeoxygenValve = ioCfgMap["PrintStorageCar1DeoxygenValve"]; //打印存粉小车1除氧进气阀 m_PrintStorageCar1EvacuationValve = ioCfgMap["PrintStorageCar1EvacuationValve"]; //打印存粉小车1除氧排气阀 //1500 m_PrintStorageCar2DeoxygenValve = ioCfgMap["PrintStorageCar2DeoxygenValve"]; //打印存粉小车2除氧进气阀 m_PrintStorageCar2EvacuationValve = ioCfgMap["PrintStorageCar2EvacuationValve"]; //打印存粉小车2除氧排气阀 m_PrintSlot2PipeValve = ioCfgMap["PrintSlot2PipeValve"]; //打印槽2管道阀 m_CleanSlot1PipeValve = ioCfgMap["CleanSlot1PipeValve"]; //清粉槽1管道阀 m_CleanSlot2PipeValve = ioCfgMap["CleanSlot2PipeValve"]; //清粉槽2管道阀 m_CylinderHandPlateOpenValve = ioCfgMap["CylinderHandPlateOpenValve"]; //缸体吊装盖板打开阀 m_CylinderHandPlateCloseValve = ioCfgMap["CylinderHandPlateCloseValve"]; //缸体吊装盖板关闭阀 m_LoadAxisBrake = ioCfgMap["LoadAxisBrake"]; //移载轴刹车 m_CleanLeftVacuumValve = ioCfgMap["CleanLeftVacuumValve"]; //清粉左吸尘阀 m_CleanRightVacuumValve = ioCfgMap["CleanRightVacuumValve"]; //清粉右吸尘阀 m_CleanLightOn = ioCfgMap["CleanLightOn"]; //清粉照明 m_Laser5Enable = ioCfgMap["Laser5Enable"]; //激光5使能 m_Laser5Start = ioCfgMap["Laser5Start"]; //激光5启动 m_Laser5Red = ioCfgMap["Laser5Red"]; //激光5红光 m_Laser6Enable = ioCfgMap["Laser6Enable"]; //激光6使能 m_Laser6Start = ioCfgMap["Laser6Start"]; //激光6启动 m_Laser6Red = ioCfgMap["Laser6Red"]; //激光6红光 m_Laser7Enable = ioCfgMap["Laser7Enable"]; //激光7使能 m_Laser7Start = ioCfgMap["Laser7Start"]; //激光7启动 m_Laser7Red = ioCfgMap["Laser7Red"]; //激光7红光 m_Laser8Enable = ioCfgMap["Laser8Enable"]; //激光8使能 m_Laser8Start = ioCfgMap["Laser8Start"]; //激光8启动 m_Laser8Red = ioCfgMap["Laser8Red"]; //激光8红光 m_SystemStop = ioCfgMap["SystemStop"]; //系统急停 m_HighPressureCheck = ioCfgMap["HighPressureCheck"]; //高压报警 m_ProtectGasCheck = ioCfgMap["ProtectGasCheck"]; //低压报警 m_PowerDown = ioCfgMap["PowerDown"]; //外部断电 m_PhaseLossDetection = ioCfgMap["PhaseLossDetection"]; //缺相检测 m_BusAirSwitchClose = ioCfgMap["BusAirSwitchClose"]; //总空开触点 m_ExtMachineAirSwitchClose = ioCfgMap["ExtMachineAirSwitchClose"]; //外部设备空开触点 m_HeattingAirSwitchClose = ioCfgMap["HeattingAirSwitchClose"]; //加热空开触点 m_LaserAirSwitchClose = ioCfgMap["LaserAirSwitchClose"]; //激光空开触点 m_DownServoAirSwitchContact = ioCfgMap["DownServoAirSwitchContact"]; //伺服空开触点 m_Laser1Alarm = ioCfgMap["Laser1Alarm"]; //激光器1报警 m_Laser2Alarm = ioCfgMap["Laser2Alarm"]; //激光器2报警 m_Laser3Alarm = ioCfgMap["Laser3Alarm"]; //激光器3报警 m_Laser4Alarm = ioCfgMap["Laser4Alarm"]; //激光器4报警 m_PrintStorageCar1UpLimit = ioCfgMap["PrintStorageCar1UpLimit"]; //打印存粉小车1上限 1500 m_PrintStorageCar1Connect = ioCfgMap["PrintStorageCar1Connect"]; //打印存粉小车1连接 1500 m_PrintStorageCar1PressureHigh = ioCfgMap["PrintStorageCar1PressureHigh"]; //打印存粉小车1压力高 1500 m_SSRInput = ioCfgMap["SSRInput"]; //加热输入检测 m_SSROutput = ioCfgMap["SSROutput"]; //加热输出检测 m_PrintMainAxisUpLimit = ioCfgMap["PrintMainAxisUpLimit"]; //打印主轴上限位 m_PrintMainAxisDownLimit = ioCfgMap["PrintMainAxisDownLimit"]; //打印主轴下限位 m_PrintMainHomeIndex = ioCfgMap["PrintMainHomeIndex"]; //打印主轴原点 m_PrintStorageCar2PressureHigh = ioCfgMap["PrintStorageCar2PressureHigh"]; //打印存粉小车2压力高 1500 m_UPSException = ioCfgMap["UPSException"]; //UPS异常 m_Laser5Alarm = ioCfgMap["Laser5Alarm"]; //激光器5报警 m_Laser6Alarm = ioCfgMap["Laser6Alarm"]; //激光器6报警 m_Laser7Alarm = ioCfgMap["Laser7Alarm"]; //激光器7报警 m_Laser8Alarm = ioCfgMap["Laser8Alarm"]; //激光器8报警 m_ScannerPowerAssistContact = ioCfgMap["ScannerPowerAssistContact"]; //振镜电源辅助触点 m_ScannerBranchAirSwitch = ioCfgMap["ScannerBranchAirSwitch"]; //激光器支路空开 m_UpServoAirSwitchContact = ioCfgMap["UpServoAirSwitchContact"]; //上层伺服空开触点 m_TrackPrintPos = ioCfgMap["TrackPrintPos"]; //轨道打印位 m_RailCloseSensor = ioCfgMap["RailCloseSensor"]; //栏杆关闭感应 m_RailOpenSensor = ioCfgMap["RailOpenSensor"]; //栏杆打开感应 m_CoverAcceptStirPos = ioCfgMap["CoverAcceptStirPos"]; //铺粉接粉拨板位 m_CoverDropStirPos = ioCfgMap["CoverDropStirPos"]; //铺粉下粉拨板位 m_CleanBoxFoldUpPos = ioCfgMap["CleanBoxFoldUpPos"]; //清粉箱折叠升高位 m_CleanBoxFoldDownPos = ioCfgMap["CleanBoxFoldDownPos"]; //清粉箱折叠降低位 m_TrackCleanPos = ioCfgMap["TrackCleanPos"]; //轨道清粉位 m_CleannerUpButton = ioCfgMap["CleannerUpButton"]; //清粉上升按钮 m_CleannerDownButton = ioCfgMap["CleannerDownButton"]; //清粉下降按钮 m_CleannerMotionStop = ioCfgMap["CleannerMotionStop"]; //清粉升降急停 m_PrintStorageCar2UpLimit = ioCfgMap["PrintStorageCar2UpLimit"]; //打印存粉小车2上限 m_PrintStorageCar2Connect = ioCfgMap["PrintStorageCar2Connect"]; //打印存粉小车2连接 m_SecurityCarpet = ioCfgMap["SecurityCarpet"]; //安全地毯 m_CoverAcceptPowderPos = ioCfgMap["CoverAcceptPowderPos"]; //铺粉轴接粉位 m_CoverDropPowderPos1 = ioCfgMap["CoverDropPowderPos1"]; //铺粉轴下粉位1 m_CoverDropPowderPos2 = ioCfgMap["CoverDropPowderPos2"]; //铺粉轴下粉位2 m_ArmFrontLimit = ioCfgMap["ArmFrontLimit"]; //铺粉轴前限位 m_ArmBackLimit = ioCfgMap["ArmBackLimit"]; //铺粉轴后限位 m_ArmHomeIndex = ioCfgMap["ArmHomeIndex"]; //铺粉轴原点 m_LoadLeftLimit = ioCfgMap["LoadLeftLimit"]; //移载轴左限位 m_LoadRgithLimit = ioCfgMap["LoadRgithLimit"]; //移载轴右限位 m_LoadHomeIndex = ioCfgMap["LoadHomeIndex"]; //移载轴原点 m_LoadHandPos = ioCfgMap["LoadHandPos"]; m_PowderUpestPos = ioCfgMap["PowderUpestPos"]; //粉仓料位最高 m_PowderDownestPos = ioCfgMap["PowderDownestPos"]; //粉仓料位最低 m_PowderSupplyHomeIndex = ioCfgMap["PowderSupplyHomeIndex"]; //供粉转轴原点 m_PrintCarbinDoorLockPos = ioCfgMap["PrintCarbinDoorLockPos"]; //打印舱门锁关闭位 m_UpServiceDoorClosePos = ioCfgMap["UpServiceDoorClosePos"]; //上层维修门关闭位 m_DownServiceDoorClosePos = ioCfgMap["DownServiceDoorClosePos"]; //下层维修门关闭位 m_PrintableSignal = ioCfgMap["PrintableSignal"]; //允许打印信号 m_FanRunSignal = ioCfgMap["FanRunSignal"]; //风机运行信号 m_PrintAirRenewalPressure = ioCfgMap["PrintAirRenewalPressure"]; //打印室换气源压力 m_TotalWaterCoolerAlarm = ioCfgMap["TotalWaterCoolerAlarm"]; //总水冷机报警 m_CleanStorageCar1UpLimit = ioCfgMap["CleanStorageCar1UpLimit"]; //清粉存粉小车1上限 m_CleanStorageCar1Connect = ioCfgMap["CleanStorageCar1Connect"]; //清粉存粉小车1连接 m_CleanStorageCar2UpLimit = ioCfgMap["CleanStorageCar2UpLimit"]; //清粉存粉小车2上限 m_CleanStorageCar2Connect = ioCfgMap["CleanStorageCar2Connect"]; //清粉存粉小车2连接 m_CylinderHandPlateOpen = ioCfgMap["CylinderHandPlateOpen"]; //缸体吊装盖板开位 m_CylinderHandPlateOff = ioCfgMap["CylinderHandPlateOff"]; //缸体吊装盖板关位 m_CylinderHandDoorOpen = ioCfgMap["CylinderHandDoorOpen"]; //缸体吊装门开位 m_CylinderHandDoorClose = ioCfgMap["CylinderHandDoorClose"]; //缸体吊装门关位 } void IO_E1000_V0::Update(unsigned char* arr) { m_SystemStop->m_IsActive = !((arr[0] & 0x1) > 0 ? true : false); m_HighPressureCheck->m_IsActive = ((arr[0] & 0x2) > 0 ? true : false); m_ProtectGasCheck->m_IsActive = ((arr[0] & 0x4) > 0 ? true : false); m_PowerDown->m_IsActive = ((arr[0] & 0x8) > 0 ? true : false); m_PhaseLossDetection->m_IsActive = ((arr[0] & 0x10) > 0 ? true : false); m_BusAirSwitchClose->m_IsActive = ((arr[0] & 0x80) > 0 ? true : false); m_ExtMachineAirSwitchClose->m_IsActive = ((arr[1] & 0x1) > 0 ? true : false); m_HeattingAirSwitchClose->m_IsActive = ((arr[1] & 0x2) > 0 ? true : false); m_LaserAirSwitchClose->m_IsActive = ((arr[1] & 0x4) > 0 ? true : false); m_DownServoAirSwitchContact->m_IsActive = ((arr[1] & 0x8) > 0 ? true : false); m_Laser1Alarm->m_IsActive = ((arr[1] & 0x10) > 0 ? true : false); m_Laser2Alarm->m_IsActive = ((arr[1] & 0x20) > 0 ? true : false); m_Laser3Alarm->m_IsActive = ((arr[1] & 0x40) > 0 ? true : false); m_Laser4Alarm->m_IsActive = ((arr[1] & 0x80) > 0 ? true : false); m_PrintStorageCar1UpLimit->m_IsActive = ((arr[2] & 0x1) > 0 ? true : false); m_PrintStorageCar1Connect->m_IsActive = ((arr[2] & 0x4) > 0 ? true : false); m_PrintStorageCar1PressureHigh->m_IsActive = ((arr[2] & 0x10) > 0 ? true : false); m_SSRInput->m_IsActive = ((arr[2] & 0x20) > 0 ? true : false); m_SSROutput->m_IsActive = ((arr[2] & 0x40) > 0 ? true : false); m_PrintMainAxisUpLimit->m_IsActive = !((arr[2] & 0x80) > 0 ? true : false); m_PrintMainAxisDownLimit->m_IsActive = !((arr[3] & 0x1) > 0 ? true : false); m_PrintMainHomeIndex->m_IsActive = ((arr[3] & 0x2) > 0 ? true : false); m_PrintStorageCar2PressureHigh->m_IsActive = ((arr[3] & 0x4) > 0 ? true : false); m_UPSException->m_IsActive = ((arr[3] & 0x20) > 0 ? true : false); m_Laser5Alarm->m_IsActive = ((arr[3] & 0x40) > 0 ? true : false); m_Laser6Alarm->m_IsActive = ((arr[3] & 0x80) > 0 ? true : false); m_Laser7Alarm->m_IsActive = ((arr[4] & 0x01) > 0 ? true : false); m_Laser8Alarm->m_IsActive = ((arr[4] & 0x02) > 0 ? true : false); m_ScannerPowerAssistContact->m_IsActive = ((arr[4] & 0x04) > 0 ? true : false); m_ScannerBranchAirSwitch->m_IsActive = ((arr[4] & 0x08) > 0 ? true : false); m_UpServoAirSwitchContact->m_IsActive = ((arr[4] & 0x10) > 0 ? true : false); m_TrackPrintPos->m_IsActive = ((arr[5] & 0x04) > 0 ? true : false); m_RailCloseSensor->m_IsActive = ((arr[5] & 0x08) > 0 ? true : false); m_RailOpenSensor->m_IsActive = ((arr[5] & 0x10) > 0 ? true : false); m_CoverAcceptStirPos->m_IsActive = ((arr[5] & 0x20) > 0 ? true : false); m_CoverDropStirPos->m_IsActive = ((arr[5] & 0x40) > 0 ? true : false); m_CleanBoxFoldUpPos->m_IsActive = ((arr[5] & 0x80) > 0 ? true : false); m_CleanBoxFoldDownPos->m_IsActive = ((arr[6] & 0x1) > 0 ? true : false); m_TrackCleanPos->m_IsActive = ((arr[6] & 0x8) > 0 ? true : false); m_CleannerUpButton->m_IsActive = ((arr[6] & 0x10) > 0 ? true : false); m_CleannerDownButton->m_IsActive = ((arr[6] & 0x20) > 0 ? true : false); m_CleannerMotionStop->m_IsActive = !((arr[6] & 0x80) > 0 ? true : false); m_PrintStorageCar2UpLimit->m_IsActive = ((arr[8] & 0x1) > 0 ? true : false); m_PrintStorageCar2Connect->m_IsActive = ((arr[8] & 0x4) > 0 ? true : false); m_SecurityCarpet->m_IsActive = ((arr[8] & 0x08) > 0 ? true : false); m_CoverAcceptPowderPos->m_IsActive = ((arr[9] & 0x04) > 0 ? true : false); m_CoverDropPowderPos1->m_IsActive = ((arr[9] & 0x08) > 0 ? true : false); m_CoverDropPowderPos2->m_IsActive = ((arr[9] & 0x10) > 0 ? true : false); m_ArmFrontLimit->m_IsActive = !((arr[9] & 0x20) > 0 ? true : false); m_ArmBackLimit->m_IsActive = !((arr[9] & 0x40) > 0 ? true : false); m_ArmHomeIndex->m_IsActive = ((arr[9] & 0x80) > 0 ? true : false); m_LoadLeftLimit->m_IsActive = !((arr[10] & 0x1) > 0 ? true : false); m_LoadRgithLimit->m_IsActive = !((arr[10] & 0x2) > 0 ? true : false); m_LoadHomeIndex->m_IsActive = ((arr[10] & 0x4) > 0 ? true : false); m_LoadHandPos->m_IsActive = ((arr[10] & 0x20) > 0 ? true : false); m_PowderUpestPos->m_IsActive = ((arr[10] & 0x40) > 0 ? true : false); m_PowderDownestPos->m_IsActive = ((arr[10] & 0x80) > 0 ? true : false); m_PowderSupplyHomeIndex->m_IsActive = ((arr[11] & 0x8) > 0 ? true : false); m_PrintCarbinDoorLockPos->m_IsActive = ((arr[11] & 0x10) > 0 ? true : false); m_UpServiceDoorClosePos->m_IsActive = ((arr[11] & 0x20) > 0 ? true : false); m_DownServiceDoorClosePos->m_IsActive = ((arr[11] & 0x40) > 0 ? true : false); m_PrintableSignal->m_IsActive = ((arr[11] & 0x80) > 0 ? true : false); m_FanRunSignal->m_IsActive = ((arr[12] & 0x1) > 0 ? true : false); m_PrintAirRenewalPressure->m_IsActive = ((arr[12] & 0x2) > 0 ? true : false); m_TotalWaterCoolerAlarm->m_IsActive = ((arr[12] & 0x8) > 0 ? true : false); m_CleanStorageCar1UpLimit->m_IsActive = ((arr[12] & 0x10) > 0 ? true : false); m_CleanStorageCar1Connect->m_IsActive = ((arr[12] & 0x40) > 0 ? true : false); m_CleanStorageCar2UpLimit->m_IsActive = ((arr[13] & 0x01) > 0 ? true : false); m_CleanStorageCar2Connect->m_IsActive = ((arr[13] & 0x04) > 0 ? true : false); m_CylinderHandPlateOpen->m_IsActive = ((arr[13] & 0x10) > 0 ? true : false); m_CylinderHandPlateOff->m_IsActive = ((arr[13] & 0x20) > 0 ? true : false); m_CylinderHandDoorOpen->m_IsActive = ((arr[13] & 0x40) > 0 ? true : false); m_CylinderHandDoorClose->m_IsActive = ((arr[13] & 0x80) > 0 ? true : false); int outputStartAddr = 24; m_ServoMotor->m_IsActive = ((arr[outputStartAddr] & 0x1) > 0 ? true : false); m_Laser->m_IsActive = ((arr[outputStartAddr] & 0x2) > 0 ? true : false); m_Laser1Enable->m_IsActive = ((arr[outputStartAddr] & 0x4) > 0 ? true : false); m_Laser1Start->m_IsActive = ((arr[outputStartAddr] & 0x8) > 0 ? true : false); m_Laser1Red->m_IsActive = ((arr[outputStartAddr] & 0x10) > 0 ? true : false); m_Laser2Enable->m_IsActive = ((arr[outputStartAddr] & 0x20) > 0 ? true : false); m_Laser2Start->m_IsActive = ((arr[outputStartAddr] & 0x40) > 0 ? true : false); m_Laser2Red->m_IsActive = ((arr[outputStartAddr] & 0x80) > 0 ? true : false); m_Laser3Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x1) > 0 ? true : false); m_Laser3Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x2) > 0 ? true : false); m_Laser3Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x4) > 0 ? true : false); m_Laser4Enable->m_IsActive = ((arr[outputStartAddr + 1] & 0x8) > 0 ? true : false); m_Laser4Start->m_IsActive = ((arr[outputStartAddr + 1] & 0x10) > 0 ? true : false); m_Laser4Red->m_IsActive = ((arr[outputStartAddr + 1] & 0x20) > 0 ? true : false); m_PrintDoorLock->m_IsActive = ((arr[outputStartAddr + 1] & 0x40) > 0 ? true : false); m_LightOn->m_IsActive = ((arr[outputStartAddr + 1] & 0x80) > 0 ? true : false); m_YellowLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x1) > 0 ? true : false); m_GreenLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x2) > 0 ? true : false); m_RedLamp->m_IsActive = ((arr[outputStartAddr + 2] & 0x4) > 0 ? true : false); m_Buzzer->m_IsActive = ((arr[outputStartAddr + 2] & 0x8) > 0 ? true : false); m_PrintAssistGas->m_IsActive = ((arr[outputStartAddr + 2] & 0x10) > 0 ? true : false); m_PrintAirEvacuation->m_IsActive = ((arr[outputStartAddr + 2] & 0x40) > 0 ? true : false); m_ScannerCool->m_IsActive = ((arr[outputStartAddr + 2] & 0x80) > 0 ? true : false); m_Heating->m_IsActive = ((arr[outputStartAddr + 3] & 0x1) > 0 ? true : false); m_PrintSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 3] & 0x4) > 0 ? true : false); m_ChillerPower->m_IsActive = ((arr[outputStartAddr + 3] & 0x8) > 0 ? true : false); m_CarbinBackLock->m_IsActive = ((arr[outputStartAddr + 3] & 0x10) > 0 ? true : false); m_UpLayerAccessDoorUnlock->m_IsActive = ((arr[outputStartAddr + 4] & 0x10) > 0 ? true : false); m_DownLayerAccessDoorUnlock->m_IsActive = ((arr[outputStartAddr + 4] & 0x20) > 0 ? true : false); m_PrintMainAxisBrake->m_IsActive = ((arr[outputStartAddr + 4] & 0x40) > 0 ? true : false); m_CylinderLinerSealChargeValve->m_IsActive = ((arr[outputStartAddr + 4] & 0x80) > 0 ? true : false); m_CylinderLinerSealReleaseValve->m_IsActive = ((arr[outputStartAddr + 5] & 0x1) > 0 ? true : false); m_CleanBoxFoldUp->m_IsActive = ((arr[outputStartAddr + 6] & 0x4) > 0 ? true : false); m_CleanBoxFoldDown->m_IsActive = ((arr[outputStartAddr + 6] & 0x8) > 0 ? true : false); m_PrintAirRenewalInOutValve->m_IsActive = ((arr[outputStartAddr + 6] & 0x40) > 0 ? true : false); m_PrintAirRenewalPresRelValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x2) > 0 ? true : false); m_LaserPowerActive->m_IsActive = ((arr[outputStartAddr + 7] & 0x4) > 0 ? true : false); m_LaserErrorReset->m_IsActive = ((arr[outputStartAddr + 7] & 0x8) > 0 ? true : false); m_PrintStorageCar1DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x20) > 0 ? true : false); m_PrintStorageCar1EvacuationValve->m_IsActive = ((arr[outputStartAddr + 7] & 0x40) > 0 ? true : false); m_PrintStorageCar2DeoxygenValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x4) > 0 ? true : false); m_PrintStorageCar2EvacuationValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x8) > 0 ? true : false); m_PrintSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 8] & 0x10) > 0 ? true : false); m_CleanSlot1PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x01) > 0 ? true : false); m_CleanSlot2PipeValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x10) > 0 ? true : false); m_CylinderHandPlateOpenValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x20) > 0 ? true : false); m_CylinderHandPlateCloseValve->m_IsActive = ((arr[outputStartAddr + 9] & 0x40) > 0 ? true : false); m_LoadAxisBrake->m_IsActive = ((arr[outputStartAddr + 10] & 0x04) > 0 ? true : false); m_CleanLeftVacuumValve->m_IsActive = ((arr[outputStartAddr + 10] & 0x08) > 0 ? true : false); m_CleanRightVacuumValve->m_IsActive = ((arr[outputStartAddr + 10] & 0x10) > 0 ? true : false); m_CleanLightOn->m_IsActive = ((arr[outputStartAddr + 10] & 0x80) > 0 ? true : false); m_Laser5Enable->m_IsActive = ((arr[outputStartAddr + 11] & 0x4) > 0 ? true : false); m_Laser5Start->m_IsActive = ((arr[outputStartAddr + 11] & 0x8) > 0 ? true : false); m_Laser5Red->m_IsActive = ((arr[outputStartAddr + 11] & 0x10) > 0 ? true : false); m_Laser6Enable->m_IsActive = ((arr[outputStartAddr + 110] & 0x20) > 0 ? true : false); m_Laser6Start->m_IsActive = ((arr[outputStartAddr + 11] & 0x40) > 0 ? true : false); m_Laser6Red->m_IsActive = ((arr[outputStartAddr + 11] & 0x80) > 0 ? true : false); m_Laser7Enable->m_IsActive = ((arr[outputStartAddr + 12] & 0x1) > 0 ? true : false); m_Laser7Start->m_IsActive = ((arr[outputStartAddr + 12] & 0x2) > 0 ? true : false); m_Laser7Red->m_IsActive = ((arr[outputStartAddr + 12] & 0x4) > 0 ? true : false); m_Laser8Enable->m_IsActive = ((arr[outputStartAddr + 12] & 0x8) > 0 ? true : false); m_Laser8Start->m_IsActive = ((arr[outputStartAddr + 12] & 0x10) > 0 ? true : false); m_Laser8Red->m_IsActive = ((arr[outputStartAddr + 12] & 0x20) > 0 ? true : false); bitset<8> doorState; doorState.reset(); doorState[2] = m_PrintDoorLock->m_IsActive; m_SafeDoorState = doorState.to_ulong(); }