3903 lines
264 KiB
C++
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();
|
|
} |