2024-04-10 16:15:33 +08:00

3903 lines
264 KiB
C++

#include "IOCfg.h"
#include "../../utils/StringHelper.h"
#include "SystemBase.h"
#include "../../LanguageManager.h"
#include "../../SystemInfo.h"
#include "../../Toast.h"
#include "../../global.h"
#include <shared_mutex>
#include <thread>
#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<string, IOCfg*>::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<IOCfg*> 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_RunCfg->m_AlarmOxygen && g_SystemInfo->m_ComPrintOxygen2<m_RunCfg->m_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<string, IOCfg*>& 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<string, IOCfg *>& 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<string, IOCfg *>& 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<string, IOCfg *>& 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<string, IOCfg*>& 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<string, IOCfg *>& 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<string, IOCfg *>& 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<string, IOCfg *>& 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<string, IOCfg*>& 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();
}