相机相关功能添加

This commit is contained in:
wangxx1809 2024-05-17 10:57:17 +08:00
parent 686636097d
commit 1a8376d788
38 changed files with 2833 additions and 1589 deletions

View File

@ -324,7 +324,7 @@ IPGLaserClientV1::IPGLaserClientV1(CommunicationCfg* pconfig, AlarmCfg* laserAla
size_t count = ((size_t)&m_State.m_endFlag - (size_t)startPtr) / ptrSize;
InsertMp(startPtr, count);
m_alarmCfgMp.insert(make_pair(m_LaserAlarm->m_Code, m_LaserAlarm));
//m_alarmCfgMp.insert(make_pair(m_LaserAlarm->m_Code, m_LaserAlarm));
}

View File

@ -46,7 +46,6 @@ void OxygenClient::InitCommand()
tref[4] = m_ExtCfg->m_CleanBoxOxygenSensorType;
for (int i = 1; i <= 4;i++) {
Oxygenstat* stat = new Oxygenstat();
//AddToBaseMp("_"+to_string(i), stat); //添加到map
size_t ptrSize = sizeof(nullptr); //指针大小
void* startPtr = &stat->m_startFlag + 1;

View File

@ -10,7 +10,6 @@
#include "../utils/DataByte.h"
PowderSupplySimpleClient::PowderSupplySimpleClient(CommunicationCfg* pconfig) :S7Client(pconfig)
//, m_PressureWriteValue(new StrData("PressureWriteValue",u8"压力写入值"))
{
m_RunCfg = ConfigManager::GetInstance()->GetRunCfg();
m_ExtCfg = ConfigManager::GetInstance()->GetExtCfg();

View File

@ -13,7 +13,7 @@
class Base {
protected:
void InsertMp(void* startPtr, size_t count, const std::string& suff = "") {
void InsertMp(void* startPtr, size_t count = 1, const std::string& suff = "") {
size_t ptrSize = sizeof(nullptr); //指针大小
for (size_t i = 0; i < count; ++i) {
BaseData* bd = *((BaseData**)((char*)startPtr + ptrSize * i));
@ -36,7 +36,7 @@ public:
m_baseMp.clear();
}
void SendToClients(WRITETYPE type, const std::string& addKey = "") {
virtual void SendToClients(WRITETYPE type, const std::string& addKey = "") {
std::list<Item> its;
{
std::shared_lock<std::shared_mutex> lock(m_mtx); //读锁
@ -85,7 +85,7 @@ public:
}
private:
protected:
std::map<std::string, BaseData*> m_baseMp;
public:
std::shared_mutex m_mtx;

View File

@ -121,6 +121,22 @@ void Controller::Init(){
m_reg = new Registration();
m_ExtCfg = ConfigManager::GetInstance()->GetExtCfg();
if (m_ExtCfg->m_CameraType == ExtCfg::Galaxy) {
m_Camera = new GalaxyCamera();
}
else if (m_ExtCfg->m_CameraType == ExtCfg::OPT) {
m_Camera = new OPTCamera();
}
else {
m_Camera = new GalaxyCamera();
}
if (m_ExtCfg->m_UseCamera) {
if (m_Camera->Init()) {
m_Camera->StartUp();
}
}
m_jobController.StartLoadPrepareJob();
}
@ -151,6 +167,7 @@ void Controller::StartSend() {
++count;
if (count == 2) { //发送频率降低
m_ScannerCtrl->SendToClients();
m_Camera->SendToClients();
count = 0;
}

View File

@ -39,8 +39,10 @@ public:
ScannerCtrl* m_ScannerCtrl;
MachineCfg* m_MachineCfg;
ExtCfg* m_ExtCfg;
Registration* m_reg;
HBDCamera* m_Camera;
private:
bool m_sendTdExitFlag;
thread m_sendParamThread;

View File

@ -20,13 +20,14 @@ void DataHandle::LayersDataCallBackProc(void* pthis,const ReadData& msg, ::strea
else if ((READTYPE)msg.dataType == REGISTFUNC) {
p->m_controller->m_reg->CallFunc(msg,response);
}
else if ((READTYPE)msg.dataType == CAMERAFUNC) {
p->m_controller->m_Camera->CallFunc(msg, response);
}
}
DataHandle::DataHandle()
: /*m_dataCallBack(nullptr)
,*/ m_streamServer(nullptr)
: m_streamServer(nullptr)
, m_config(nullptr)
, m_controller(nullptr)
, m_testFlag(false){
@ -92,8 +93,6 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) {
WriteData* wd = nullptr;
int index = 0;
switch (msg.dataType) {
case GET: break;
case SET: break;
case AXISMOVEFUNC:
if (!m_controller->m_ScannerCtrl->IsStandBy() && g_Admin == USER){
printf("没有准备好哦,无法操作\n"); return;
@ -114,7 +113,10 @@ void DataHandle::DataCallBackHandle(const ReadData& msg) {
m_controller->m_Machine->Update(msg,LOADPARAMRSP); break;
case SCANCTRLFUNC:
m_controller->m_ScannerCtrl->CallFunc(msg); break;
case CAMERAFUNC:
m_controller->m_Camera->CallFunc(msg,nullptr); break;
case CAMERAPARAMUPDATE:
m_controller->m_Camera->Update(msg); break;
case REQUEST:
if (msg.nameKey == "36") {
printf("error,36 需要释放ScannerCtrl::Init()内部代码块...\n");

View File

@ -4,9 +4,7 @@
#include <vector>
enum READTYPE {
GET = 0,
SET,
AXISMOVEFUNC, //轴运动函数
AXISMOVEFUNC=0, //轴运动函数
VERSIONREQ, //获取版本信息
@ -14,7 +12,9 @@ enum READTYPE {
RESETELEC, //PowerMeterClient
PURIFIERPARAMW, //净化器参数写入
LAYERDATAREQ, //layer数据请求
REGISTFUNC, //注册函数集
REGISTFUNC, //注册函数集 一次请求,使用请求回复模式
CAMERAFUNC, //相机功能函数调用
CAMERAPARAMUPDATE, //相机参数更新
SETZEROPOS, //AxisState使用
AXISSTOPALL, //axis 运动急停
@ -25,8 +25,6 @@ enum READTYPE {
LOADPARAM, //装载参数
/********************振镜控制******************/
SCANCTRLFUNC, //振镜控制函数
REQUEST, //获取配置信息 test用
@ -58,7 +56,6 @@ struct ReadData {
enum WRITETYPE {
ALARM = 0, //报警
//INITERRORINFOSRSP, //返回初始化错误信息
VERSIONRSP, //返回版本信息
IOSIGNALRSP, //io信号返回数据
SYSPARAMDATA, //系统参数
@ -104,8 +101,8 @@ enum WRITETYPE {
LOADPARAMRSP, //装载参数
SCANCTRLSTATE, //BaseCtrl参数
SCANCTRLPARAM, //scanctrl参数
XYSCANSTATE, //XYScanState参数 在参数更新的时候才会发送到客户端
XYSCANSTATE, //XYScanState参数 在参数更新的时候才会发送到客户端
CAMERAPARAM, //相机参数
TEST = 1000, //test
};

View File

@ -6275,244 +6275,244 @@ void HBD1200::ProcReadPLCData(void* pobject, Command* pcommand)
}
//void HBD1200::GetAlarmState(SignalState& signalState)
//{
// signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC
// signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC
// signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态
// signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态
// signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态
// signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态
// signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态
// signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式
// signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位
//
// signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常
// signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常
// signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常
// signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常
// signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常
// signalState.m_OutsideOxygenLackAlarm = m_SignalStateWrapper->m_OutsideOxygenLackAlarm->GetValue(); //外界氧含量不足警告
// signalState.m_LaserChillerAlarm = m_SignalStateWrapper->m_LaserChillerAlarm->GetValue(); //激光器冷水机报警
// signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常
// signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常
// signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常
// signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常
// signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点
// signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警
// signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警
// signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警
// signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警
// signalState.m_HeatingInputAlarm = m_SignalStateWrapper->m_HeatingInputAlarm->GetValue(); //加热输入异常
// signalState.m_HeatingOutputAlarm = m_SignalStateWrapper->m_HeatingOutputAlarm->GetValue(); //加热输出异常
//
// signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示
// signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示
// signalState.m_PrintStorageCar1BlockWarn = m_SignalStateWrapper->m_PrintStorageCar1BlockWarn->GetValue(); //打印存粉小车1堵塞警示
//
// signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示
// signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示
//
// signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告
//
// signalState.m_CylinderExtendOnAlarm = m_SignalStateWrapper->m_CylinderExtendOnAlarm->GetValue(); //缸体固定气缸伸出不到位异常
// signalState.m_CylinderExtendOffAlarm = m_SignalStateWrapper->m_CylinderExtendOffAlarm->GetValue(); //缸体固定气缸缩回不到位异常
// signalState.m_PrintCylinderVerifyAlarm = m_SignalStateWrapper->m_PrintCylinderVerifyAlarm->GetValue(); //打印位缸体检测异常
// signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常
// signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常
// signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue();
// signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常
// signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常
// signalState.m_CleanBoxUpOpenAlarm = m_SignalStateWrapper->m_CleanBoxUpOpenAlarm->GetValue(); //清粉箱上盖气缸打开不到位异常
// signalState.m_CleanBoxUpCloseAlarm = m_SignalStateWrapper->m_CleanBoxUpCloseAlarm->GetValue(); //清粉箱上盖气缸关闭不到位异常
// signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //缸体吊装盖板打开异常
// signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //缸体吊装门打开异常
// signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常
// signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示
// signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示
// signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示
// signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示
// signalState.m_PowderPosition1Alarm = m_SignalStateWrapper->m_PowderPosition1Alarm->GetValue(); //粉仓料位感应器1异常
// signalState.m_PowderPosition2Alarm = m_SignalStateWrapper->m_PowderPosition2Alarm->GetValue(); //粉仓料位感应器2异常
// signalState.m_PowderPosition3Alarm = m_SignalStateWrapper->m_PowderPosition3Alarm->GetValue(); //粉仓料位感应器3异常
// signalState.m_PowderPosition4Alarm = m_SignalStateWrapper->m_PowderPosition4Alarm->GetValue(); //粉仓料位感应器4异常
// signalState.m_PowderPosition5Alarm = m_SignalStateWrapper->m_PowderPosition5Alarm->GetValue(); //粉仓料位感应器5异常
// signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常
// signalState.m_PrintOxygen1DeciceAlarm = m_SignalStateWrapper->m_PrintOxygen1DeciceAlarm->GetValue(); //打印舱测氧仪1异常
// signalState.m_PrintOxygen2DeviceAlarm = m_SignalStateWrapper->m_PrintOxygen2DeviceAlarm->GetValue(); //打印舱测氧仪2异常
// signalState.m_OutsideOxygenDeviceAlarm = m_SignalStateWrapper->m_OutsideOxygenDeviceAlarm->GetValue(); //室外测氧仪异常
// signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常
// signalState.m_ScannerChillerAlarm = m_SignalStateWrapper->m_ScannerChillerAlarm->GetValue(); //光路冷水机报警
// signalState.m_PurifierChillerAlarm = m_SignalStateWrapper->m_PurifierChillerAlarm->GetValue(); //净化器冷水机报警
//
// signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常
// signalState.m_EleCylinderMainTorqueAlarm = m_SignalStateWrapper->m_EleCylinderMainTorqueAlarm->GetValue(); //电缸主轴扭力异常
// signalState.m_EleCylinderSlaveTorqueAlarm = m_SignalStateWrapper->m_EleCylinderSlaveTorqueAlarm->GetValue(); //电缸从轴扭力异常
// signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常
// signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常
// signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常
// signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败
//
// signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限
// signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限
// signalState.m_EleCylinderMainOverSoftUpLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftUpLimit->GetValue(); //电缸主轴超软上限
// signalState.m_EleCylinderMainOverSoftDownLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftDownLimit->GetValue(); //电缸主轴超软下限
// signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限
// signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限
// signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限
// signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限
// signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示
// signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示
// signalState.m_PrintStorageCar2BlockAlarm = m_SignalStateWrapper->m_PrintStorageCar2BlockAlarm->GetValue(); //打印存粉小车2堵塞报警
//
//
// signalState.m_LoadAxisManualAlarmSignal = m_SignalStateWrapper->m_LoadAxisManualAlarmSignal->GetValue(); //移栽手动异常
// signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常
// signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常
// signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常
// signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常
// signalState.m_EleCylinderMainServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderMainServoAlarmSignal->GetValue(); //电缸主轴伺服异常
// signalState.m_EleCylinderPrintHandupAlarmSignal = m_SignalStateWrapper->m_EleCylinderPrintHandupAlarmSignal->GetValue(); //电缸打印位顶升异常
// signalState.m_CleanBoxTopDoorRiseAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorRiseAlarmSignal->GetValue(); //清粉箱顶门升高异常
// signalState.m_CleanBoxTopDoorFallAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorFallAlarmSignal->GetValue(); //清粉箱顶门降低异常
//
// signalState.m_CoverReachAcceptPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachAcceptPowderAlarmSignal->GetValue(); //铺粉轴到接粉位异常
// signalState.m_CoverReachDropPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachDropPowderAlarmSignal->GetValue(); //铺粉轴到下粉位异常
// signalState.m_EleCylinderSlaveServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderSlaveServoAlarmSignal->GetValue(); //电缸从轴伺服异常
// signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); //光栅尺检测异常
// signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); //打印主轴软急停触发
// signalState.m_EleCylinderSoftStopTrigger = m_SignalStateWrapper->m_EleCylinderSoftStopTrigger->GetValue(); //电缸主轴软急停触发
// signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); //移载轴软急停触发
// signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); //铺粉轴软急停触发
// signalState.m_CoverHomeException = m_SignalStateWrapper->m_CoverHomeException->GetValue(); //铺粉归原点异常
//
// signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R
// signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW
// signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW
// signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW
// signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW
// signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW
// signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW
// signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW
// signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW
// signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW
// signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW
// signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW
// signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW
// signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW
// signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW
// signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW
// signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW
// signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW
// signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW
// signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W
// signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R
// signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW
// signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W
// signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W
// signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W
// signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW
// signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R
//
// signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W
// signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R
// signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW
// signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R
// signalState.m_PrintVacuumTriger = m_SignalStateWrapper->m_PrintVacuumTriger->GetValue(); //打印室启动吸尘器_W
// signalState.m_DisableRasterJudge = m_SignalStateWrapper->m_DisableRasterJudge->GetValue(); //屏蔽光栅尺判断_W
// signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R
// signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R
//
// signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R
// signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R
// signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R
// signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R
// signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R
// signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R
// signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R
//
// signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue();
// signalState.m_SheildCylinderFixSensor = m_SignalStateWrapper->m_SheildCylinderFixSensor->GetValue();
// signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue();
// signalState.m_UseWellAutoCount = m_SignalStateWrapper->m_UseWellAutoCount->GetValue();
// signalState.m_SheilServoEmptyOpen = m_SignalStateWrapper->m_SheilServoEmptyOpen->GetValue();
// signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气
// signalState.m_UnuseCoverReachSensor = m_SignalStateWrapper->m_UnuseCoverReachSensor->GetValue(); //不使用铺粉轴到位感应器
// signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue();
// signalState.m_LinearEncoderOppDirection = m_SignalStateWrapper->m_LinearEncoderOppDirection->GetValue();
// signalState.m_CoverV2UseCintinueMode = m_SignalStateWrapper->m_CoverV2UseCintinueMode->GetValue();
//
// signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内
// signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内
// signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限
// signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发
// signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内
// signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限
// signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发
// signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常
// signalState.m_PrintMoldInPrintPos = m_SignalStateWrapper->m_PrintMoldInPrintPos->GetValue(); //缸体在打印位
// signalState.m_PrintMoldInCleanPos = m_SignalStateWrapper->m_PrintMoldInCleanPos->GetValue(); //缸体在清粉位
// signalState.m_PrintMoldInHandPos = m_SignalStateWrapper->m_PrintMoldInHandPos->GetValue(); //缸体在吊装位
//
//
// signalState.m_CleanTorqueUpInsideLimit = m_SignalStateWrapper->m_CleanTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内
// signalState.m_CleanAxisPosUpInSoftLimit = m_SignalStateWrapper->m_CleanAxisPosUpInSoftLimit->GetValue(); //轴位置没超过软上限
// signalState.m_CleanTorqueDownInsideLimit = m_SignalStateWrapper->m_CleanTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内
// signalState.m_CleanAxisPosDownInsideSoftLimit = m_SignalStateWrapper->m_CleanAxisPosDownInsideSoftLimit->GetValue(); //轴位置没超过软下限
// signalState.m_CleanUpInsideLimit = m_SignalStateWrapper->m_CleanUpInsideLimit->GetValue(); //上限位没触发
// signalState.m_CleanDownInsideLimit = m_SignalStateWrapper->m_CleanDownInsideLimit->GetValue(); //下限位没触发
// signalState.m_EleMainServoNoAlarm = m_SignalStateWrapper->m_EleMainServoNoAlarm->GetValue(); //电缸主轴伺服无异常
// signalState.m_EleSlaveServoNoAlarm = m_SignalStateWrapper->m_EleSlaveServoNoAlarm->GetValue(); //电缸从轴伺服无异常
//
// signalState.m_PrintJackupInSafePos = m_SignalStateWrapper->m_PrintJackupInSafePos->GetValue(); //打印顶升轴在安全位
// signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
// signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限
// signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限
// signalState.m_CylinderFixInReleasePos = m_SignalStateWrapper->m_CylinderFixInReleasePos->GetValue(); //缸体固定气缸在松开位
// signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发
// signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发
// signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常
// signalState.m_EleServoInBottomPos = m_SignalStateWrapper->m_EleServoInBottomPos->GetValue(); //电缸在底座位
//
// signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面
// signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
// signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限
// signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限
// signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发
// signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发
// signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue();
//
// signalState.m_PrintStoreCar1ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar1ExhaustEnable->GetValue(); //触发打印存粉小车1排粉
// signalState.m_PrintStoreCar2ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar2ExhaustEnable->GetValue(); //触发打印存粉小车2排粉
// signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En
// signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位
// signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中
// signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕
//
// signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN
// signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气
// signalState.m_AllowRiseWindSpeed = m_SignalStateWrapper->m_AllowRiseWindSpeed->GetValue(); //允许提风速
// signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试
// signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中
// signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功
// signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败
//
// signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位
// signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面
// signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面
// signalState.m_IsInPrintJackupPos = m_SignalStateWrapper->m_IsInPrintJackupPos->GetValue(); //打印顶升位
// signalState.m_IsInCleanJackupPos = m_SignalStateWrapper->m_IsInCleanJackupPos->GetValue(); //清粉顶升位
// signalState.m_IsInEleCylinderBottomFixPos = m_SignalStateWrapper->m_IsInEleCylinderBottomFixPos->GetValue(); //底座贴合位
// signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位
// signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位
// signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位
// signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位
//
// signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException);
// signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException;
// signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException;
// //memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState));
//}
void HBD1200::GetAlarmState(SignalState& signalState)
{
signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC
signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC
signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态
signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态
signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态
signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态
signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态
signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式
signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位
signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常
signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常
signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常
signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常
signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常
signalState.m_OutsideOxygenLackAlarm = m_SignalStateWrapper->m_OutsideOxygenLackAlarm->GetValue(); //外界氧含量不足警告
signalState.m_LaserChillerAlarm = m_SignalStateWrapper->m_LaserChillerAlarm->GetValue(); //激光器冷水机报警
signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常
signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常
signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常
signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常
signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点
signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警
signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警
signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警
signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警
signalState.m_HeatingInputAlarm = m_SignalStateWrapper->m_HeatingInputAlarm->GetValue(); //加热输入异常
signalState.m_HeatingOutputAlarm = m_SignalStateWrapper->m_HeatingOutputAlarm->GetValue(); //加热输出异常
signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示
signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示
signalState.m_PrintStorageCar1BlockWarn = m_SignalStateWrapper->m_PrintStorageCar1BlockWarn->GetValue(); //打印存粉小车1堵塞警示
signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示
signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示
signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告
signalState.m_CylinderExtendOnAlarm = m_SignalStateWrapper->m_CylinderExtendOnAlarm->GetValue(); //缸体固定气缸伸出不到位异常
signalState.m_CylinderExtendOffAlarm = m_SignalStateWrapper->m_CylinderExtendOffAlarm->GetValue(); //缸体固定气缸缩回不到位异常
signalState.m_PrintCylinderVerifyAlarm = m_SignalStateWrapper->m_PrintCylinderVerifyAlarm->GetValue(); //打印位缸体检测异常
signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常
signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常
signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue();
signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常
signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常
signalState.m_CleanBoxUpOpenAlarm = m_SignalStateWrapper->m_CleanBoxUpOpenAlarm->GetValue(); //清粉箱上盖气缸打开不到位异常
signalState.m_CleanBoxUpCloseAlarm = m_SignalStateWrapper->m_CleanBoxUpCloseAlarm->GetValue(); //清粉箱上盖气缸关闭不到位异常
signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //缸体吊装盖板打开异常
signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //缸体吊装门打开异常
signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常
signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示
signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示
signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示
signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示
signalState.m_PowderPosition1Alarm = m_SignalStateWrapper->m_PowderPosition1Alarm->GetValue(); //粉仓料位感应器1异常
signalState.m_PowderPosition2Alarm = m_SignalStateWrapper->m_PowderPosition2Alarm->GetValue(); //粉仓料位感应器2异常
signalState.m_PowderPosition3Alarm = m_SignalStateWrapper->m_PowderPosition3Alarm->GetValue(); //粉仓料位感应器3异常
signalState.m_PowderPosition4Alarm = m_SignalStateWrapper->m_PowderPosition4Alarm->GetValue(); //粉仓料位感应器4异常
signalState.m_PowderPosition5Alarm = m_SignalStateWrapper->m_PowderPosition5Alarm->GetValue(); //粉仓料位感应器5异常
signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常
signalState.m_PrintOxygen1DeciceAlarm = m_SignalStateWrapper->m_PrintOxygen1DeciceAlarm->GetValue(); //打印舱测氧仪1异常
signalState.m_PrintOxygen2DeviceAlarm = m_SignalStateWrapper->m_PrintOxygen2DeviceAlarm->GetValue(); //打印舱测氧仪2异常
signalState.m_OutsideOxygenDeviceAlarm = m_SignalStateWrapper->m_OutsideOxygenDeviceAlarm->GetValue(); //室外测氧仪异常
signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常
signalState.m_ScannerChillerAlarm = m_SignalStateWrapper->m_ScannerChillerAlarm->GetValue(); //光路冷水机报警
signalState.m_PurifierChillerAlarm = m_SignalStateWrapper->m_PurifierChillerAlarm->GetValue(); //净化器冷水机报警
signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常
signalState.m_EleCylinderMainTorqueAlarm = m_SignalStateWrapper->m_EleCylinderMainTorqueAlarm->GetValue(); //电缸主轴扭力异常
signalState.m_EleCylinderSlaveTorqueAlarm = m_SignalStateWrapper->m_EleCylinderSlaveTorqueAlarm->GetValue(); //电缸从轴扭力异常
signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常
signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常
signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常
signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败
signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限
signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限
signalState.m_EleCylinderMainOverSoftUpLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftUpLimit->GetValue(); //电缸主轴超软上限
signalState.m_EleCylinderMainOverSoftDownLimit = m_SignalStateWrapper->m_EleCylinderMainOverSoftDownLimit->GetValue(); //电缸主轴超软下限
signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限
signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限
signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限
signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限
signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示
signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示
signalState.m_PrintStorageCar2BlockAlarm = m_SignalStateWrapper->m_PrintStorageCar2BlockAlarm->GetValue(); //打印存粉小车2堵塞报警
signalState.m_LoadAxisManualAlarmSignal = m_SignalStateWrapper->m_LoadAxisManualAlarmSignal->GetValue(); //移栽手动异常
signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常
signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常
signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常
signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常
signalState.m_EleCylinderMainServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderMainServoAlarmSignal->GetValue(); //电缸主轴伺服异常
signalState.m_EleCylinderPrintHandupAlarmSignal = m_SignalStateWrapper->m_EleCylinderPrintHandupAlarmSignal->GetValue(); //电缸打印位顶升异常
signalState.m_CleanBoxTopDoorRiseAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorRiseAlarmSignal->GetValue(); //清粉箱顶门升高异常
signalState.m_CleanBoxTopDoorFallAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorFallAlarmSignal->GetValue(); //清粉箱顶门降低异常
signalState.m_CoverReachAcceptPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachAcceptPowderAlarmSignal->GetValue(); //铺粉轴到接粉位异常
signalState.m_CoverReachDropPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachDropPowderAlarmSignal->GetValue(); //铺粉轴到下粉位异常
signalState.m_EleCylinderSlaveServoAlarmSignal = m_SignalStateWrapper->m_EleCylinderSlaveServoAlarmSignal->GetValue(); //电缸从轴伺服异常
signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); //光栅尺检测异常
signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); //打印主轴软急停触发
signalState.m_EleCylinderSoftStopTrigger = m_SignalStateWrapper->m_EleCylinderSoftStopTrigger->GetValue(); //电缸主轴软急停触发
signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); //移载轴软急停触发
signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); //铺粉轴软急停触发
signalState.m_CoverHomeException = m_SignalStateWrapper->m_CoverHomeException->GetValue(); //铺粉归原点异常
signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R
signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW
signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW
signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW
signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW
signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW
signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW
signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW
signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW
signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW
signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW
signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW
signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW
signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW
signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW
signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW
signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW
signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW
signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW
signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W
signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R
signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW
signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W
signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W
signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W
signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW
signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R
signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W
signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R
signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW
signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R
signalState.m_PrintVacuumTriger = m_SignalStateWrapper->m_PrintVacuumTriger->GetValue(); //打印室启动吸尘器_W
signalState.m_DisableRasterJudge = m_SignalStateWrapper->m_DisableRasterJudge->GetValue(); //屏蔽光栅尺判断_W
signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R
signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R
signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R
signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R
signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R
signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R
signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R
signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R
signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R
signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue();
signalState.m_SheildCylinderFixSensor = m_SignalStateWrapper->m_SheildCylinderFixSensor->GetValue();
signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue();
signalState.m_UseWellAutoCount = m_SignalStateWrapper->m_UseWellAutoCount->GetValue();
signalState.m_SheilServoEmptyOpen = m_SignalStateWrapper->m_SheilServoEmptyOpen->GetValue();
signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气
signalState.m_UnuseCoverReachSensor = m_SignalStateWrapper->m_UnuseCoverReachSensor->GetValue(); //不使用铺粉轴到位感应器
signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue();
signalState.m_LinearEncoderOppDirection = m_SignalStateWrapper->m_LinearEncoderOppDirection->GetValue();
signalState.m_CoverV2UseCintinueMode = m_SignalStateWrapper->m_CoverV2UseCintinueMode->GetValue();
signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内
signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内
signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限
signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发
signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内
signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限
signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发
signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常
signalState.m_PrintMoldInPrintPos = m_SignalStateWrapper->m_PrintMoldInPrintPos->GetValue(); //缸体在打印位
signalState.m_PrintMoldInCleanPos = m_SignalStateWrapper->m_PrintMoldInCleanPos->GetValue(); //缸体在清粉位
signalState.m_PrintMoldInHandPos = m_SignalStateWrapper->m_PrintMoldInHandPos->GetValue(); //缸体在吊装位
signalState.m_CleanTorqueUpInsideLimit = m_SignalStateWrapper->m_CleanTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内
signalState.m_CleanAxisPosUpInSoftLimit = m_SignalStateWrapper->m_CleanAxisPosUpInSoftLimit->GetValue(); //轴位置没超过软上限
signalState.m_CleanTorqueDownInsideLimit = m_SignalStateWrapper->m_CleanTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内
signalState.m_CleanAxisPosDownInsideSoftLimit = m_SignalStateWrapper->m_CleanAxisPosDownInsideSoftLimit->GetValue(); //轴位置没超过软下限
signalState.m_CleanUpInsideLimit = m_SignalStateWrapper->m_CleanUpInsideLimit->GetValue(); //上限位没触发
signalState.m_CleanDownInsideLimit = m_SignalStateWrapper->m_CleanDownInsideLimit->GetValue(); //下限位没触发
signalState.m_EleMainServoNoAlarm = m_SignalStateWrapper->m_EleMainServoNoAlarm->GetValue(); //电缸主轴伺服无异常
signalState.m_EleSlaveServoNoAlarm = m_SignalStateWrapper->m_EleSlaveServoNoAlarm->GetValue(); //电缸从轴伺服无异常
signalState.m_PrintJackupInSafePos = m_SignalStateWrapper->m_PrintJackupInSafePos->GetValue(); //打印顶升轴在安全位
signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限
signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限
signalState.m_CylinderFixInReleasePos = m_SignalStateWrapper->m_CylinderFixInReleasePos->GetValue(); //缸体固定气缸在松开位
signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发
signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发
signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常
signalState.m_EleServoInBottomPos = m_SignalStateWrapper->m_EleServoInBottomPos->GetValue(); //电缸在底座位
signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面
signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限
signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限
signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发
signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发
signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue();
signalState.m_PrintStoreCar1ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar1ExhaustEnable->GetValue(); //触发打印存粉小车1排粉
signalState.m_PrintStoreCar2ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar2ExhaustEnable->GetValue(); //触发打印存粉小车2排粉
signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En
signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位
signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中
signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕
signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN
signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气
signalState.m_AllowRiseWindSpeed = m_SignalStateWrapper->m_AllowRiseWindSpeed->GetValue(); //允许提风速
signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试
signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中
signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功
signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败
signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位
signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面
signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面
signalState.m_IsInPrintJackupPos = m_SignalStateWrapper->m_IsInPrintJackupPos->GetValue(); //打印顶升位
signalState.m_IsInCleanJackupPos = m_SignalStateWrapper->m_IsInCleanJackupPos->GetValue(); //清粉顶升位
signalState.m_IsInEleCylinderBottomFixPos = m_SignalStateWrapper->m_IsInEleCylinderBottomFixPos->GetValue(); //底座贴合位
signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位
signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位
signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位
signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位
signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException);
signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException;
signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException;
//memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState));
}
void HBD1200::LoadInRun() {
SetLoadInProcStep(In_Start);

View File

@ -83,7 +83,7 @@ public:
void InitSignal(SignalStateWrapper* ssw, PLCReveiver* cc);
void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc);
void InitPLCCommand(vector<S7Command*>& vecs);
//void GetAlarmState(SignalState& signalState);
void GetAlarmState(SignalState& signalState);
bool CheckPrintMoldReady();
private:
static void CheckIO_V0(vector<string>& ins, IOCfgWrapper* iocfgWrapper, string str, int type);

File diff suppressed because it is too large Load Diff

View File

@ -84,14 +84,14 @@ public:
void InitSignal(SignalStateWrapper* ssw, PLCReveiver* cc);
void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc);
void InitPLCCommand(vector<S7Command*>& vecs);
//void GetAlarmState(SignalState& signalState);
void GetAlarmState(SignalState& signalState);
//bool CheckPrintMoldReady();
private:
static void CheckIO_V0(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int type);
static void ProcReadPLC(void* pobject, Command* pcommand);
static void ProcReadPLCData(void* pobject, Command* pcommand);
void LoadInRun() {}
void LoadOutRun() {}
void LoadInRun();
void LoadOutRun();
bool IsLoadAxisCanMoveLeft();
string GetLoadAxisCanotMoveLeftInfo();

View File

@ -6228,277 +6228,277 @@ void HBD1500::ProcReadPLCData(void* pobject, Command* pcommand)
}
//void HBD1500::GetAlarmState(SignalState& signalState)
//{
// signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC
// signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC
// signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态
// signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态
// signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态
// signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态
// signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态
// signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式
// signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位
//
// signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常
// signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常
// signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常
// signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常
// signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常
// signalState.m_OutsideOxygenLackAlarm = m_SignalStateWrapper->m_OutsideOxygenLackAlarm->GetValue(); //外界氧含量不足警告
// signalState.m_LaserChillerAlarm = m_SignalStateWrapper->m_LaserChillerAlarm->GetValue(); //激光器冷水机报警
// signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常
// signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常
// signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常
// signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常
// signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点
// signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警
// signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警
// signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警
// signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警
// signalState.m_HeatingInputAlarm = m_SignalStateWrapper->m_HeatingInputAlarm->GetValue(); //加热输入异常
// signalState.m_HeatingOutputAlarm = m_SignalStateWrapper->m_HeatingOutputAlarm->GetValue(); //加热输出异常
//
// signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示
// signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示
// signalState.m_PrintStorageCar1BlockWarn = m_SignalStateWrapper->m_PrintStorageCar1BlockWarn->GetValue(); //打印存粉小车1堵塞警示
//
// signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示
// signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示
// signalState.m_Print3RSeparateAlarm = m_SignalStateWrapper->m_Print3RSeparateAlarm->GetValue(); //打印3R脱离感应器异常
// signalState.m_Print3RConnectAlarm = m_SignalStateWrapper->m_Print3RConnectAlarm->GetValue(); //打印3R贴合感应器异常
// signalState.m_Print3RDisableAlarm = m_SignalStateWrapper->m_Print3RDisableAlarm->GetValue(); //打印3R失效异常
// signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告
// signalState.m_PrintPressOnDisableAlarm = m_SignalStateWrapper->m_PrintPressOnDisableAlarm->GetValue(); //打印位压紧气缸压紧不到位异常
// signalState.m_PrintPressOffDisableAlarm = m_SignalStateWrapper->m_PrintPressOffDisableAlarm->GetValue(); //打印位压紧气缸松开不到位异常
// signalState.m_PrintJackUpDisableAlarm = m_SignalStateWrapper->m_PrintJackUpDisableAlarm->GetValue(); //打印顶升气缸顶升不到位异常
// signalState.m_PrintJackDownDisableAlarm = m_SignalStateWrapper->m_PrintJackDownDisableAlarm->GetValue(); //打印顶升气缸下降不到位异常
// signalState.m_PrintSupportOnDisableAlarm = m_SignalStateWrapper->m_PrintSupportOnDisableAlarm->GetValue(); //打印支撑气缸支撑不到位异常
// signalState.m_PrintSupportOffDisableAlarm = m_SignalStateWrapper->m_PrintSupportOffDisableAlarm->GetValue(); //打印支撑气缸避让不到位异常
// signalState.m_CylinderExtendOnAlarm = m_SignalStateWrapper->m_CylinderExtendOnAlarm->GetValue(); //缸体固定气缸伸出不到位异常
// signalState.m_CylinderExtendOffAlarm = m_SignalStateWrapper->m_CylinderExtendOffAlarm->GetValue(); //缸体固定气缸缩回不到位异常
// signalState.m_PrintCylinderVerifyAlarm = m_SignalStateWrapper->m_PrintCylinderVerifyAlarm->GetValue(); //打印位缸体检测异常
// signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常
// signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常
// signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue();
// signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常
// signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常
// signalState.m_CleanBoxUpOpenAlarm = m_SignalStateWrapper->m_CleanBoxUpOpenAlarm->GetValue(); //清粉箱上盖气缸打开不到位异常
// signalState.m_CleanBoxUpCloseAlarm = m_SignalStateWrapper->m_CleanBoxUpCloseAlarm->GetValue(); //清粉箱上盖气缸关闭不到位异常
// signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //清粉箱支撑气缸支撑不到位异常
// signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //清粉箱支撑气缸避让不到位异常
// signalState.m_CleanBoxPressOnAlarm = m_SignalStateWrapper->m_CleanBoxPressOnAlarm->GetValue(); //清粉箱压紧气缸压紧不到位异常
// signalState.m_CleanBoxPressOffAlarm = m_SignalStateWrapper->m_CleanBoxPressOffAlarm->GetValue(); //清粉箱压紧气缸松开不到位异常
// signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常
// signalState.m_CleanPosPressOnAlarm = m_SignalStateWrapper->m_CleanPosPressOnAlarm->GetValue(); //清粉位压紧气缸压紧不到位异常
// signalState.m_CleanPosPressOffAlarm = m_SignalStateWrapper->m_CleanPosPressOffAlarm->GetValue(); //清粉位压紧气缸松开不到位异常
// signalState.m_CleanPosPreventCylinderOnAlarm = m_SignalStateWrapper->m_CleanPosPreventCylinderOnAlarm->GetValue();
// signalState.m_CleanPosPreventCylinderOffAlarm = m_SignalStateWrapper->m_CleanPosPreventCylinderOffAlarm->GetValue();
// signalState.m_Clean3RDisableAlarm = m_SignalStateWrapper->m_Clean3RDisableAlarm->GetValue(); //清粉3R失效异常
// signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示
// signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示
// signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示
// signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示
// signalState.m_LoadAxisSearchEdgeDisableAlarm = m_SignalStateWrapper->m_LoadAxisSearchEdgeDisableAlarm->GetValue(); //移载寻边感应器失效异常
// signalState.m_PowderPosition1Alarm = m_SignalStateWrapper->m_PowderPosition1Alarm->GetValue(); //粉仓料位感应器1异常
// signalState.m_PowderPosition2Alarm = m_SignalStateWrapper->m_PowderPosition2Alarm->GetValue(); //粉仓料位感应器2异常
// signalState.m_PowderPosition3Alarm = m_SignalStateWrapper->m_PowderPosition3Alarm->GetValue(); //粉仓料位感应器3异常
// signalState.m_PowderPosition4Alarm = m_SignalStateWrapper->m_PowderPosition4Alarm->GetValue(); //粉仓料位感应器4异常
// signalState.m_PowderPosition5Alarm = m_SignalStateWrapper->m_PowderPosition5Alarm->GetValue(); //粉仓料位感应器5异常
// signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常
// signalState.m_PrintOxygen1DeciceAlarm = m_SignalStateWrapper->m_PrintOxygen1DeciceAlarm->GetValue(); //打印舱测氧仪1异常
// signalState.m_PrintOxygen2DeviceAlarm = m_SignalStateWrapper->m_PrintOxygen2DeviceAlarm->GetValue(); //打印舱测氧仪2异常
// signalState.m_OutsideOxygenDeviceAlarm = m_SignalStateWrapper->m_OutsideOxygenDeviceAlarm->GetValue(); //室外测氧仪异常
// signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常
// signalState.m_ScannerChillerAlarm = m_SignalStateWrapper->m_ScannerChillerAlarm->GetValue(); //光路冷水机报警
// signalState.m_PurifierChillerAlarm = m_SignalStateWrapper->m_PurifierChillerAlarm->GetValue(); //净化器冷水机报警
//
// signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常
// signalState.m_CleanTorqueAlarm = m_SignalStateWrapper->m_CleanTorqueAlarm->GetValue(); //清粉主轴扭力异常
// signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常
// signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常
// signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常
// signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败
//
// signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限
// signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限
// signalState.m_CleanMainOverSoftUpLimit = m_SignalStateWrapper->m_CleanMainOverSoftUpLimit->GetValue(); //清粉主轴超软上限
// signalState.m_CleanMainOverSoftDownLimit = m_SignalStateWrapper->m_CleanMainOverSoftDownLimit->GetValue(); //清粉主轴超软下限
// signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限
// signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限
// signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限
// signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限
// signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示
// signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示
// signalState.m_PrintStorageCar2BlockAlarm = m_SignalStateWrapper->m_PrintStorageCar2BlockAlarm->GetValue(); //打印存粉小车2堵塞报警
//
// signalState.m_Clean3RPressureLackAlarm= m_SignalStateWrapper->m_Clean3RPressureLackAlarm->GetValue(); //清粉3R压力不足异常
// signalState.m_Print3RPressureLackAlarm = m_SignalStateWrapper->m_Print3RPressureLackAlarm->GetValue(); //打印3R压力不足异常
// signalState.m_LoadElectromagnetDisconnectAlarm = m_SignalStateWrapper->m_LoadElectromagnetDisconnectAlarm->GetValue();
// signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常
// signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常
// signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常
// signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常
// signalState.m_CleanMainServoAlarmSignal = m_SignalStateWrapper->m_CleanMainServoAlarmSignal->GetValue(); //清粉主轴伺服异常
// signalState.m_CleanBoxTopDoorRiseAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorRiseAlarmSignal->GetValue();
// signalState.m_CleanBoxTopDoorFallAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorFallAlarmSignal->GetValue();
// signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue();
// signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue();
// signalState.m_CleanMainSoftStopTrigger = m_SignalStateWrapper->m_CleanMainSoftStopTrigger->GetValue();
// signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue();
// signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue();
//
// signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R
// signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW
// signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW
// signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW
// signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW
// signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW
// signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW
// signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW
// signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW
// signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW
// signalState.m_MoldConnectCylinderTriger = m_SignalStateWrapper->m_MoldConnectCylinderTriger->GetValue(); //触发打印升降轴连接缸体_自动_RW
// signalState.m_MoldConnectCylinderRun = m_SignalStateWrapper->m_MoldConnectCylinderRun->GetValue(); //打印升降轴连接缸体运行中_自动_RW
// signalState.m_MoldConnectCylinderFinished = m_SignalStateWrapper->m_MoldConnectCylinderFinished->GetValue(); //打印升降轴连接缸体完毕_自动_RW
// signalState.m_MoldDisconnectCylinderTriger = m_SignalStateWrapper->m_MoldDisconnectCylinderTriger->GetValue(); //触发打印升降轴脱离缸体_自动_RW
// signalState.m_MoldDisconnectCylinderRun = m_SignalStateWrapper->m_MoldDisconnectCylinderRun->GetValue(); //打印升降轴脱离缸体运行中_自动_RW
// signalState.m_MoldDisconnectCylinderFinished = m_SignalStateWrapper->m_MoldDisconnectCylinderFinished->GetValue(); //打印缸体脱离缸体完毕_自动_RW
// signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW
// signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW
// signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW
// signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW
// signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW
// signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW
// signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW
// signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW
// signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW
// signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W
// signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R
// signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW
// signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W
// signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W
// signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W
// signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW
// signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R
// signalState.m_MoldDeoxygenTriger = m_SignalStateWrapper->m_MoldDeoxygenTriger->GetValue(); //触发打印升降轴除氧_W
// signalState.m_MoldDeoxygenRun = m_SignalStateWrapper->m_MoldDeoxygenRun->GetValue(); //打印升降轴除氧中_R
// signalState.m_MoldDeoxygenFinished = m_SignalStateWrapper->m_MoldDeoxygenFinished->GetValue(); //打印升降轴除氧完毕_RW
// signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W
// signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R
// signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW
// signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R
// signalState.m_PrintVacuumTriger = m_SignalStateWrapper->m_PrintVacuumTriger->GetValue(); //打印室启动吸尘器_W
// signalState.m_DisableRasterJudge = m_SignalStateWrapper->m_DisableRasterJudge->GetValue(); //屏蔽光栅尺判断_W
// signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R
// signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R
//
// signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R
// signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R
// signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R
// signalState.m_MoldConnectCylinderEnable = m_SignalStateWrapper->m_MoldConnectCylinderEnable->GetValue(); //触发打印升降轴连接缸体EN_R
// signalState.m_MoldDisconnectCylinderEnable = m_SignalStateWrapper->m_MoldDisconnectCylinderEnable->GetValue(); //触发打印升降轴分离缸体EN_R
// signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R
// signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R
// signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R
// signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R
// signalState.m_MoldDeoxygenEnable = m_SignalStateWrapper->m_MoldDeoxygenEnable->GetValue(); //触发打印升降轴除氧EN_R
//
// signalState.m_CalcLoadSearchEdgeOffset = m_SignalStateWrapper->m_CalcLoadSearchEdgeOffset->GetValue();
// signalState.m_ManualTestOffset = m_SignalStateWrapper->m_ManualTestOffset->GetValue();
//
//
//
// signalState.m_SheildPrintPosSensor = m_SignalStateWrapper->m_SheildPrintPosSensor->GetValue();
// signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue();
// signalState.m_SheildCylinderFixSensor = m_SignalStateWrapper->m_SheildCylinderFixSensor->GetValue();
// signalState.m_SheildPrintSupportCylinder = m_SignalStateWrapper->m_SheildPrintSupportCylinder->GetValue();
// signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue();
// signalState.m_LoadAxisUseSensorPos = m_SignalStateWrapper->m_LoadAxisUseSensorPos->GetValue();
// signalState.m_RemoveIOActionLimit = m_SignalStateWrapper->m_RemoveIOActionLimit->GetValue(); //屏蔽IO动作限制
// signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气
// signalState.m_LoadPrintBackDistance = m_SignalStateWrapper->m_LoadPrintBackDistance->GetValue(); //移载打印在后退距离
// signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue();
// signalState.m_UseCapacityBar = m_SignalStateWrapper->m_UseCapacityBar->GetValue();
//
// signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内
// signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内
// signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限
// signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发
// signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内
// signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限
// signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发
// signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常
// //signalState.m_PrintSlaveServoNoAlarm = m_SignalStateWrapper->m_PrintSlaveServoNoAlarm->GetValue(); //打印从轴伺服无异常
//
//
// signalState.m_CleanTorqueUpInsideLimit = m_SignalStateWrapper->m_CleanTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内
// signalState.m_CleanAxisPosUpInSoftLimit = m_SignalStateWrapper->m_CleanAxisPosUpInSoftLimit->GetValue(); //轴位置没超过软上限
// signalState.m_CleanTorqueDownInsideLimit = m_SignalStateWrapper->m_CleanTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内
// signalState.m_CleanAxisPosDownInsideSoftLimit = m_SignalStateWrapper->m_CleanAxisPosDownInsideSoftLimit->GetValue(); //轴位置没超过软下限
// signalState.m_CleanUpInsideLimit = m_SignalStateWrapper->m_CleanUpInsideLimit->GetValue(); //上限位没触发
// signalState.m_CleanDownInsideLimit = m_SignalStateWrapper->m_CleanDownInsideLimit->GetValue(); //下限位没触发
// signalState.m_CleanMainServoNoAlarm = m_SignalStateWrapper->m_CleanMainServoNoAlarm->GetValue(); //清粉主轴伺服无异常
//
// signalState.m_PrintJackupInSplitePos = m_SignalStateWrapper->m_PrintJackupInSplitePos->GetValue(); //打印顶升轴在缸体分离位
// signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
// signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限
// signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限
// signalState.m_PrintPressingInReleasePos = m_SignalStateWrapper->m_PrintPressingInReleasePos->GetValue(); //打印位压紧气缸在松开位
// signalState.m_PrintJackupInDropPos = m_SignalStateWrapper->m_PrintJackupInDropPos->GetValue(); //打印位顶升气缸在下降位
// signalState.m_PrintSupportInAvoidPos = m_SignalStateWrapper->m_PrintSupportInAvoidPos->GetValue(); //打印位支撑气缸在避让位
// signalState.m_CleanPressingInReleasePos = m_SignalStateWrapper->m_CleanPressingInReleasePos->GetValue(); //清粉位压紧气缸在松开位
// signalState.m_CylinderFixInReleasePos = m_SignalStateWrapper->m_CylinderFixInReleasePos->GetValue(); //缸体固定气缸在松开位
// signalState.m_CleanBoxReleasePos = m_SignalStateWrapper->m_CleanBoxReleasePos->GetValue(); //清粉箱松开位
// signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发
// signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发
// signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常
// signalState.m_CleanAxisInCylinderSeparatePos = m_SignalStateWrapper->m_CleanAxisInCylinderSeparatePos->GetValue(); //清粉升降轴在缸体分离位
//
// signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面
// signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
// signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限
// signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限
// signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发
// signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发
// signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue();
//
// signalState.m_PrintStoreCar1ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar1ExhaustEnable->GetValue(); //触发打印存粉小车1排粉
// signalState.m_PrintStoreCar2ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar2ExhaustEnable->GetValue(); //触发打印存粉小车2排粉
// signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En
// signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位
// signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中
// signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕
//
// signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN
// signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气
// signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试
// signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中
// signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功
// signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败
//
// signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位
// signalState.m_IsInPrint3RSeparatePos = m_SignalStateWrapper->m_IsInPrint3RSeparatePos->GetValue(); //打印3R脱离位
// signalState.m_IsInPrintDeoxygenLowestPos = m_SignalStateWrapper->m_IsInPrintDeoxygenLowestPos->GetValue(); //打印除氧最低位
// signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面
// signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面
// signalState.m_IsInCleanPlatfromBottomPos = m_SignalStateWrapper->m_IsInCleanPlatfromBottomPos->GetValue(); //清粉基板底座面
// signalState.m_IsInClean3RSeparatePos = m_SignalStateWrapper->m_IsInClean3RSeparatePos->GetValue(); //清粉3R脱离位
// signalState.m_IsInCleanLowestPos = m_SignalStateWrapper->m_IsInCleanLowestPos->GetValue(); //清粉最低面
// signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位
// signalState.m_IsInLoadWaitPos = m_SignalStateWrapper->m_IsInLoadWaitPos->GetValue(); //移载等待位
// signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位
// signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位
// signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位
//
//
// signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException);
// signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException;
// signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException;
//
//
// //memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState));
//}
void HBD1500::GetAlarmState(SignalState& signalState)
{
signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC
signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC
signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态
signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态
signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态
signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态
signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态
signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式
signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位
signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常
signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常
signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常
signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常
signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常
signalState.m_OutsideOxygenLackAlarm = m_SignalStateWrapper->m_OutsideOxygenLackAlarm->GetValue(); //外界氧含量不足警告
signalState.m_LaserChillerAlarm = m_SignalStateWrapper->m_LaserChillerAlarm->GetValue(); //激光器冷水机报警
signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常
signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常
signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常
signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常
signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点
signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警
signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警
signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警
signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警
signalState.m_HeatingInputAlarm = m_SignalStateWrapper->m_HeatingInputAlarm->GetValue(); //加热输入异常
signalState.m_HeatingOutputAlarm = m_SignalStateWrapper->m_HeatingOutputAlarm->GetValue(); //加热输出异常
signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示
signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示
signalState.m_PrintStorageCar1BlockWarn = m_SignalStateWrapper->m_PrintStorageCar1BlockWarn->GetValue(); //打印存粉小车1堵塞警示
signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示
signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示
signalState.m_Print3RSeparateAlarm = m_SignalStateWrapper->m_Print3RSeparateAlarm->GetValue(); //打印3R脱离感应器异常
signalState.m_Print3RConnectAlarm = m_SignalStateWrapper->m_Print3RConnectAlarm->GetValue(); //打印3R贴合感应器异常
signalState.m_Print3RDisableAlarm = m_SignalStateWrapper->m_Print3RDisableAlarm->GetValue(); //打印3R失效异常
signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告
signalState.m_PrintPressOnDisableAlarm = m_SignalStateWrapper->m_PrintPressOnDisableAlarm->GetValue(); //打印位压紧气缸压紧不到位异常
signalState.m_PrintPressOffDisableAlarm = m_SignalStateWrapper->m_PrintPressOffDisableAlarm->GetValue(); //打印位压紧气缸松开不到位异常
signalState.m_PrintJackUpDisableAlarm = m_SignalStateWrapper->m_PrintJackUpDisableAlarm->GetValue(); //打印顶升气缸顶升不到位异常
signalState.m_PrintJackDownDisableAlarm = m_SignalStateWrapper->m_PrintJackDownDisableAlarm->GetValue(); //打印顶升气缸下降不到位异常
signalState.m_PrintSupportOnDisableAlarm = m_SignalStateWrapper->m_PrintSupportOnDisableAlarm->GetValue(); //打印支撑气缸支撑不到位异常
signalState.m_PrintSupportOffDisableAlarm = m_SignalStateWrapper->m_PrintSupportOffDisableAlarm->GetValue(); //打印支撑气缸避让不到位异常
signalState.m_CylinderExtendOnAlarm = m_SignalStateWrapper->m_CylinderExtendOnAlarm->GetValue(); //缸体固定气缸伸出不到位异常
signalState.m_CylinderExtendOffAlarm = m_SignalStateWrapper->m_CylinderExtendOffAlarm->GetValue(); //缸体固定气缸缩回不到位异常
signalState.m_PrintCylinderVerifyAlarm = m_SignalStateWrapper->m_PrintCylinderVerifyAlarm->GetValue(); //打印位缸体检测异常
signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常
signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常
signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue();
signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常
signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常
signalState.m_CleanBoxUpOpenAlarm = m_SignalStateWrapper->m_CleanBoxUpOpenAlarm->GetValue(); //清粉箱上盖气缸打开不到位异常
signalState.m_CleanBoxUpCloseAlarm = m_SignalStateWrapper->m_CleanBoxUpCloseAlarm->GetValue(); //清粉箱上盖气缸关闭不到位异常
signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //清粉箱支撑气缸支撑不到位异常
signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //清粉箱支撑气缸避让不到位异常
signalState.m_CleanBoxPressOnAlarm = m_SignalStateWrapper->m_CleanBoxPressOnAlarm->GetValue(); //清粉箱压紧气缸压紧不到位异常
signalState.m_CleanBoxPressOffAlarm = m_SignalStateWrapper->m_CleanBoxPressOffAlarm->GetValue(); //清粉箱压紧气缸松开不到位异常
signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常
signalState.m_CleanPosPressOnAlarm = m_SignalStateWrapper->m_CleanPosPressOnAlarm->GetValue(); //清粉位压紧气缸压紧不到位异常
signalState.m_CleanPosPressOffAlarm = m_SignalStateWrapper->m_CleanPosPressOffAlarm->GetValue(); //清粉位压紧气缸松开不到位异常
signalState.m_CleanPosPreventCylinderOnAlarm = m_SignalStateWrapper->m_CleanPosPreventCylinderOnAlarm->GetValue();
signalState.m_CleanPosPreventCylinderOffAlarm = m_SignalStateWrapper->m_CleanPosPreventCylinderOffAlarm->GetValue();
signalState.m_Clean3RDisableAlarm = m_SignalStateWrapper->m_Clean3RDisableAlarm->GetValue(); //清粉3R失效异常
signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示
signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示
signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示
signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示
signalState.m_LoadAxisSearchEdgeDisableAlarm = m_SignalStateWrapper->m_LoadAxisSearchEdgeDisableAlarm->GetValue(); //移载寻边感应器失效异常
signalState.m_PowderPosition1Alarm = m_SignalStateWrapper->m_PowderPosition1Alarm->GetValue(); //粉仓料位感应器1异常
signalState.m_PowderPosition2Alarm = m_SignalStateWrapper->m_PowderPosition2Alarm->GetValue(); //粉仓料位感应器2异常
signalState.m_PowderPosition3Alarm = m_SignalStateWrapper->m_PowderPosition3Alarm->GetValue(); //粉仓料位感应器3异常
signalState.m_PowderPosition4Alarm = m_SignalStateWrapper->m_PowderPosition4Alarm->GetValue(); //粉仓料位感应器4异常
signalState.m_PowderPosition5Alarm = m_SignalStateWrapper->m_PowderPosition5Alarm->GetValue(); //粉仓料位感应器5异常
signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常
signalState.m_PrintOxygen1DeciceAlarm = m_SignalStateWrapper->m_PrintOxygen1DeciceAlarm->GetValue(); //打印舱测氧仪1异常
signalState.m_PrintOxygen2DeviceAlarm = m_SignalStateWrapper->m_PrintOxygen2DeviceAlarm->GetValue(); //打印舱测氧仪2异常
signalState.m_OutsideOxygenDeviceAlarm = m_SignalStateWrapper->m_OutsideOxygenDeviceAlarm->GetValue(); //室外测氧仪异常
signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常
signalState.m_ScannerChillerAlarm = m_SignalStateWrapper->m_ScannerChillerAlarm->GetValue(); //光路冷水机报警
signalState.m_PurifierChillerAlarm = m_SignalStateWrapper->m_PurifierChillerAlarm->GetValue(); //净化器冷水机报警
signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常
signalState.m_CleanTorqueAlarm = m_SignalStateWrapper->m_CleanTorqueAlarm->GetValue(); //清粉主轴扭力异常
signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常
signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常
signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常
signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败
signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限
signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限
signalState.m_CleanMainOverSoftUpLimit = m_SignalStateWrapper->m_CleanMainOverSoftUpLimit->GetValue(); //清粉主轴超软上限
signalState.m_CleanMainOverSoftDownLimit = m_SignalStateWrapper->m_CleanMainOverSoftDownLimit->GetValue(); //清粉主轴超软下限
signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限
signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限
signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限
signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限
signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示
signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示
signalState.m_PrintStorageCar2BlockAlarm = m_SignalStateWrapper->m_PrintStorageCar2BlockAlarm->GetValue(); //打印存粉小车2堵塞报警
signalState.m_Clean3RPressureLackAlarm= m_SignalStateWrapper->m_Clean3RPressureLackAlarm->GetValue(); //清粉3R压力不足异常
signalState.m_Print3RPressureLackAlarm = m_SignalStateWrapper->m_Print3RPressureLackAlarm->GetValue(); //打印3R压力不足异常
signalState.m_LoadElectromagnetDisconnectAlarm = m_SignalStateWrapper->m_LoadElectromagnetDisconnectAlarm->GetValue();
signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常
signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常
signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常
signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常
signalState.m_CleanMainServoAlarmSignal = m_SignalStateWrapper->m_CleanMainServoAlarmSignal->GetValue(); //清粉主轴伺服异常
signalState.m_CleanBoxTopDoorRiseAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorRiseAlarmSignal->GetValue();
signalState.m_CleanBoxTopDoorFallAlarmSignal = m_SignalStateWrapper->m_CleanBoxTopDoorFallAlarmSignal->GetValue();
signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue();
signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue();
signalState.m_CleanMainSoftStopTrigger = m_SignalStateWrapper->m_CleanMainSoftStopTrigger->GetValue();
signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue();
signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue();
signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R
signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW
signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW
signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW
signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW
signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW
signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW
signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW
signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW
signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW
signalState.m_MoldConnectCylinderTriger = m_SignalStateWrapper->m_MoldConnectCylinderTriger->GetValue(); //触发打印升降轴连接缸体_自动_RW
signalState.m_MoldConnectCylinderRun = m_SignalStateWrapper->m_MoldConnectCylinderRun->GetValue(); //打印升降轴连接缸体运行中_自动_RW
signalState.m_MoldConnectCylinderFinished = m_SignalStateWrapper->m_MoldConnectCylinderFinished->GetValue(); //打印升降轴连接缸体完毕_自动_RW
signalState.m_MoldDisconnectCylinderTriger = m_SignalStateWrapper->m_MoldDisconnectCylinderTriger->GetValue(); //触发打印升降轴脱离缸体_自动_RW
signalState.m_MoldDisconnectCylinderRun = m_SignalStateWrapper->m_MoldDisconnectCylinderRun->GetValue(); //打印升降轴脱离缸体运行中_自动_RW
signalState.m_MoldDisconnectCylinderFinished = m_SignalStateWrapper->m_MoldDisconnectCylinderFinished->GetValue(); //打印缸体脱离缸体完毕_自动_RW
signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW
signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW
signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW
signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW
signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW
signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW
signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW
signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW
signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW
signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W
signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R
signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW
signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W
signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W
signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W
signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW
signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R
signalState.m_MoldDeoxygenTriger = m_SignalStateWrapper->m_MoldDeoxygenTriger->GetValue(); //触发打印升降轴除氧_W
signalState.m_MoldDeoxygenRun = m_SignalStateWrapper->m_MoldDeoxygenRun->GetValue(); //打印升降轴除氧中_R
signalState.m_MoldDeoxygenFinished = m_SignalStateWrapper->m_MoldDeoxygenFinished->GetValue(); //打印升降轴除氧完毕_RW
signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W
signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R
signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW
signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R
signalState.m_PrintVacuumTriger = m_SignalStateWrapper->m_PrintVacuumTriger->GetValue(); //打印室启动吸尘器_W
signalState.m_DisableRasterJudge = m_SignalStateWrapper->m_DisableRasterJudge->GetValue(); //屏蔽光栅尺判断_W
signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R
signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R
signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R
signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R
signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R
signalState.m_MoldConnectCylinderEnable = m_SignalStateWrapper->m_MoldConnectCylinderEnable->GetValue(); //触发打印升降轴连接缸体EN_R
signalState.m_MoldDisconnectCylinderEnable = m_SignalStateWrapper->m_MoldDisconnectCylinderEnable->GetValue(); //触发打印升降轴分离缸体EN_R
signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R
signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R
signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R
signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R
signalState.m_MoldDeoxygenEnable = m_SignalStateWrapper->m_MoldDeoxygenEnable->GetValue(); //触发打印升降轴除氧EN_R
signalState.m_CalcLoadSearchEdgeOffset = m_SignalStateWrapper->m_CalcLoadSearchEdgeOffset->GetValue();
signalState.m_ManualTestOffset = m_SignalStateWrapper->m_ManualTestOffset->GetValue();
signalState.m_SheildPrintPosSensor = m_SignalStateWrapper->m_SheildPrintPosSensor->GetValue();
signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue();
signalState.m_SheildCylinderFixSensor = m_SignalStateWrapper->m_SheildCylinderFixSensor->GetValue();
signalState.m_SheildPrintSupportCylinder = m_SignalStateWrapper->m_SheildPrintSupportCylinder->GetValue();
signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue();
signalState.m_LoadAxisUseSensorPos = m_SignalStateWrapper->m_LoadAxisUseSensorPos->GetValue();
signalState.m_RemoveIOActionLimit = m_SignalStateWrapper->m_RemoveIOActionLimit->GetValue(); //屏蔽IO动作限制
signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气
signalState.m_LoadPrintBackDistance = m_SignalStateWrapper->m_LoadPrintBackDistance->GetValue(); //移载打印在后退距离
signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue();
signalState.m_UseCapacityBar = m_SignalStateWrapper->m_UseCapacityBar->GetValue();
signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内
signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内
signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限
signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发
signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内
signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限
signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发
signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常
//signalState.m_PrintSlaveServoNoAlarm = m_SignalStateWrapper->m_PrintSlaveServoNoAlarm->GetValue(); //打印从轴伺服无异常
signalState.m_CleanTorqueUpInsideLimit = m_SignalStateWrapper->m_CleanTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内
signalState.m_CleanAxisPosUpInSoftLimit = m_SignalStateWrapper->m_CleanAxisPosUpInSoftLimit->GetValue(); //轴位置没超过软上限
signalState.m_CleanTorqueDownInsideLimit = m_SignalStateWrapper->m_CleanTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内
signalState.m_CleanAxisPosDownInsideSoftLimit = m_SignalStateWrapper->m_CleanAxisPosDownInsideSoftLimit->GetValue(); //轴位置没超过软下限
signalState.m_CleanUpInsideLimit = m_SignalStateWrapper->m_CleanUpInsideLimit->GetValue(); //上限位没触发
signalState.m_CleanDownInsideLimit = m_SignalStateWrapper->m_CleanDownInsideLimit->GetValue(); //下限位没触发
signalState.m_CleanMainServoNoAlarm = m_SignalStateWrapper->m_CleanMainServoNoAlarm->GetValue(); //清粉主轴伺服无异常
signalState.m_PrintJackupInSplitePos = m_SignalStateWrapper->m_PrintJackupInSplitePos->GetValue(); //打印顶升轴在缸体分离位
signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限
signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限
signalState.m_PrintPressingInReleasePos = m_SignalStateWrapper->m_PrintPressingInReleasePos->GetValue(); //打印位压紧气缸在松开位
signalState.m_PrintJackupInDropPos = m_SignalStateWrapper->m_PrintJackupInDropPos->GetValue(); //打印位顶升气缸在下降位
signalState.m_PrintSupportInAvoidPos = m_SignalStateWrapper->m_PrintSupportInAvoidPos->GetValue(); //打印位支撑气缸在避让位
signalState.m_CleanPressingInReleasePos = m_SignalStateWrapper->m_CleanPressingInReleasePos->GetValue(); //清粉位压紧气缸在松开位
signalState.m_CylinderFixInReleasePos = m_SignalStateWrapper->m_CylinderFixInReleasePos->GetValue(); //缸体固定气缸在松开位
signalState.m_CleanBoxReleasePos = m_SignalStateWrapper->m_CleanBoxReleasePos->GetValue(); //清粉箱松开位
signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发
signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发
signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常
signalState.m_CleanAxisInCylinderSeparatePos = m_SignalStateWrapper->m_CleanAxisInCylinderSeparatePos->GetValue(); //清粉升降轴在缸体分离位
signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面
signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限
signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限
signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发
signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发
signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue();
signalState.m_PrintStoreCar1ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar1ExhaustEnable->GetValue(); //触发打印存粉小车1排粉
signalState.m_PrintStoreCar2ExhaustEnable = m_SignalStateWrapper->m_PrintStoreCar2ExhaustEnable->GetValue(); //触发打印存粉小车2排粉
signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En
signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位
signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中
signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕
signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN
signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气
signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试
signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中
signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功
signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败
signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位
signalState.m_IsInPrint3RSeparatePos = m_SignalStateWrapper->m_IsInPrint3RSeparatePos->GetValue(); //打印3R脱离位
signalState.m_IsInPrintDeoxygenLowestPos = m_SignalStateWrapper->m_IsInPrintDeoxygenLowestPos->GetValue(); //打印除氧最低位
signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面
signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面
signalState.m_IsInCleanPlatfromBottomPos = m_SignalStateWrapper->m_IsInCleanPlatfromBottomPos->GetValue(); //清粉基板底座面
signalState.m_IsInClean3RSeparatePos = m_SignalStateWrapper->m_IsInClean3RSeparatePos->GetValue(); //清粉3R脱离位
signalState.m_IsInCleanLowestPos = m_SignalStateWrapper->m_IsInCleanLowestPos->GetValue(); //清粉最低面
signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位
signalState.m_IsInLoadWaitPos = m_SignalStateWrapper->m_IsInLoadWaitPos->GetValue(); //移载等待位
signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位
signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位
signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位
signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException);
signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException;
signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException;
//memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState));
}
//void HBD1500::LoadInRun() {
// SetLoadInProcStep(In_Start);

View File

@ -86,7 +86,7 @@ public:
void InitSignal(SignalStateWrapper* ssw, PLCReveiver* cc);
void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc);
void InitPLCCommand(vector<S7Command*>& vecs);
//void GetAlarmState(SignalState& signalState);
void GetAlarmState(SignalState& signalState);
//bool CheckPrintMoldReady();
//bool CheckPrintHigh(float jobhigh);
private:

View File

@ -5250,239 +5250,239 @@ void HBDE1000::ProcReadPLCData(void* pobject, Command* pcommand)
//}
//
//
//
//void HBDE1000::GetAlarmState(SignalState& signalState)
//{
// signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC
// signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC
// signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态
// signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态
// signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态
// signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态
// signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态
// signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式
// signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位
//
// signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常
// signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常
// signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常
// signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常
// signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常
// signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常
// signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常
// signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常
// signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常
// signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点
// signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警
// signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警
// signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警
// signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警
// signalState.m_HeatingAlarm = m_SignalStateWrapper->m_HeatingAlarm->GetValue(); //加热异常报警
//
// signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示
// signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示
// signalState.m_CleanStorageCar1JarFullWarn = m_SignalStateWrapper->m_CleanStorageCar1JarFullWarn->GetValue(); //清粉存粉小车1粉罐已满警示
// signalState.m_CleanStorageCar1DisconnectWarn = m_SignalStateWrapper->m_CleanStorageCar1DisconnectWarn->GetValue(); //清粉存粉小车1没有连接警示
// signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示
// signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示
//
//
// signalState.m_UpsAlarm = m_SignalStateWrapper->m_UpsAlarm->GetValue(); //UPS报警
// signalState.m_Laser5Alarm = m_SignalStateWrapper->m_Laser5Alarm->GetValue(); //激光5报警
// signalState.m_Laser6Alarm = m_SignalStateWrapper->m_Laser6Alarm->GetValue(); //激光6报警
// signalState.m_Laser7Alarm = m_SignalStateWrapper->m_Laser7Alarm->GetValue(); //激光7报警
// signalState.m_Laser8Alarm = m_SignalStateWrapper->m_Laser8Alarm->GetValue(); //激光8报警
// signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告
//
// signalState.m_CylinderLinerSealReleaseValveException = m_SignalStateWrapper->m_CylinderLinerSealReleaseValveException->GetValue(); //缸体密封圈泄压异常
// signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常
// signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常
// signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue();
// signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常
// signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常
// signalState.m_CleanBoxFoldUpException = m_SignalStateWrapper->m_CleanBoxFoldUpException->GetValue(); //清粉箱折叠气缸升高异常
// signalState.m_CleanBoxFoldDownException = m_SignalStateWrapper->m_CleanBoxFoldDownException->GetValue(); //清粉箱折叠气缸降低异常
// signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //缸体吊装盖板打开异常
// signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //缸体吊装门打开异常
//
// signalState.m_SecurityCarpetTriggered = m_SignalStateWrapper->m_SecurityCarpetTriggered->GetValue(); //安全地毯被触发
// signalState.m_RailNotInOpenOrClosePos = m_SignalStateWrapper->m_RailNotInOpenOrClosePos->GetValue(); //栏杆不在打开或者关闭位置
// signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常
// signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示
// signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示
// signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示
// signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示
//
// signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常
//
// signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常
// signalState.m_TotalWaterCoolerAlarm = m_SignalStateWrapper->m_TotalWaterCoolerAlarm->GetValue(); //总冷水机报警
//
//
// signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常
//
// signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常
// signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常
// signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常
// signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败
//
// signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限
// signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限
//
// signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限
// signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限
// signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限
// signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限
// signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示
// signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示
// signalState.m_CleanStorageCar2JarFullWarn = m_SignalStateWrapper->m_CleanStorageCar2JarFullWarn->GetValue(); //清粉存粉小车2粉罐已满警示
// signalState.m_CleanStorageCar2DisconnectWarn = m_SignalStateWrapper->m_CleanStorageCar2DisconnectWarn->GetValue(); //清粉存粉小车2没有连接警示
//
// signalState.m_CoverBaffleNotInFrontAcceptPos = m_SignalStateWrapper->m_CoverBaffleNotInFrontAcceptPos->GetValue(); //铺粉臂挡板不在前接粉位
// signalState.m_CoverBaffleNotInDropPos = m_SignalStateWrapper->m_CoverBaffleNotInDropPos->GetValue(); //铺粉臂挡板不在下粉位
// signalState.m_ArmMoveBackAcceptPosException = m_SignalStateWrapper->m_ArmMoveBackAcceptPosException->GetValue(); //铺粉臂到接粉后位异常
// signalState.m_UpServiceDoorOpenWarn = m_SignalStateWrapper->m_UpServiceDoorOpenWarn->GetValue(); //上层维修门打开警告
// signalState.m_DownServiceDoorOpenWarn = m_SignalStateWrapper->m_DownServiceDoorOpenWarn->GetValue(); //下层维修门打开警告
//
//
// signalState.m_LoadAxisManualAlarmSignal = m_SignalStateWrapper->m_LoadAxisManualAlarmSignal->GetValue(); //移栽手动异常
// signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常
// signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常
// signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常
// signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常
//
// signalState.m_CoverReachAcceptPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachAcceptPowderAlarmSignal->GetValue(); //铺粉轴到接粉位异常
// signalState.m_CoverReachDropPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachDropPowderAlarmSignal->GetValue(); //铺粉轴到下粉位异常
// signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); //光栅尺检测异常
// signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); //打印主轴软急停触发
// signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); //移载轴软急停触发
// signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); //铺粉轴软急停触发
// signalState.m_CoverHomeException = m_SignalStateWrapper->m_CoverHomeException->GetValue(); //铺粉归原点异常
//
// signalState.m_CylinderSealInflationFailureAlarm = m_SignalStateWrapper->m_CylinderSealInflationFailureAlarm->GetValue(); //缸体密封圈充气失败报警
// signalState.m_CylinderSealInflationHighPressureAlarm = m_SignalStateWrapper->m_CylinderSealInflationHighPressureAlarm->GetValue(); //缸体密封圈充气过压报警
// signalState.m_CylinderSealLeakageWarn = m_SignalStateWrapper->m_CylinderSealLeakageWarn->GetValue(); //缸体密封圈存在漏气警告
// signalState.m_SealPressureExceptionWhenPrint = m_SignalStateWrapper->m_SealPressureExceptionWhenPrint->GetValue(); //密封圈压力异常
//
//
// signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R
// signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW
// signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW
// signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW
// signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW
// signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW
// signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW
// signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW
// signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW
// signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW
// signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW
// signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW
// signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW
// signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW
// signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW
// signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW
// signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW
// signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW
// signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW
// signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W
// signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R
// signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW
// signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W
// signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W
// signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W
// signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW
// signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R
//
// signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W
// signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R
// signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW
// signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R
//
// signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R
// signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R
//
// signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R
// signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R
// signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R
// signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R
// signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R
// signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R
// signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R
//
// signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue();
// signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue();
// signalState.m_SheilServoEmptyOpen = m_SignalStateWrapper->m_SheilServoEmptyOpen->GetValue();
// signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气
// signalState.m_UnuseCoverReachSensor = m_SignalStateWrapper->m_UnuseCoverReachSensor->GetValue(); //不使用铺粉轴到位感应器
//
// signalState.m_UseCoverBaffleSensor = m_SignalStateWrapper->m_UseCoverBaffleSensor->GetValue(); //使用铺粉挡板感应器
// signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue();
// signalState.m_LinearEncoderOppDirection = m_SignalStateWrapper->m_LinearEncoderOppDirection->GetValue();
// signalState.m_CoverV2UseCintinueMode = m_SignalStateWrapper->m_CoverV2UseCintinueMode->GetValue();
// signalState.m_UseCoverShiftSpeed = m_SignalStateWrapper->m_UseCoverShiftSpeed->GetValue(); //使用打印区域变速
//
// signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内
// signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内
// signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限
// signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发
// signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内
// signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限
// signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发
// signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常
// signalState.m_PrintMoldInPrintPos = m_SignalStateWrapper->m_PrintMoldInPrintPos->GetValue(); //缸体在打印位
// signalState.m_PrintMoldInCleanPos = m_SignalStateWrapper->m_PrintMoldInCleanPos->GetValue(); //缸体在清粉位
// signalState.m_PrintMoldInHandPos = m_SignalStateWrapper->m_PrintMoldInHandPos->GetValue(); //缸体在吊装位
// signalState.m_MoldUpDownServiceDoorCloseStatue = m_SignalStateWrapper->m_MoldUpDownServiceDoorCloseStatue->GetValue(); //升降上下维护门在关闭状态
//
//
// signalState.m_PrintJackupInSafePos = m_SignalStateWrapper->m_PrintJackupInSafePos->GetValue(); //打印顶升轴在安全位
// signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
// signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限
// signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限
//
// signalState.m_CylinderSealNoInflationStatue = m_SignalStateWrapper->m_CylinderSealNoInflationStatue->GetValue(); //密封圈无充气状态
// signalState.m_LoadUpDownServiceDoorCloseStatue = m_SignalStateWrapper->m_LoadUpDownServiceDoorCloseStatue->GetValue(); //移载上下维护门在关闭状态
// signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发
// signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发
// signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常
//
// signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面
// signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
// signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限
// signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限
// signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发
// signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发
// signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue();
//
//
// signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En
// signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位
// signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中
// signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕
//
// signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN
// signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气
// signalState.m_AllowRiseWindSpeed = m_SignalStateWrapper->m_AllowRiseWindSpeed->GetValue(); //允许提风速
// signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试
// signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中
// signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功
// signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败
//
// signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位
// signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面
// signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面
// signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位
// signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位
// signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位
// signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位
//
// signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException);
// signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException;
// signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException;
// //memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState));
//}
//
//
void HBDE1000::GetAlarmState(SignalState& signalState)
{
signalState.m_PLCKeepAlive = m_SignalStateWrapper->m_PLCKeepAlive->GetValue(); //PLC心跳-》PC
signalState.m_PCKeepAlice = m_SignalStateWrapper->m_PCKeepAlice->GetValue(); //PC心跳-》PLC
signalState.m_DeviceStandby = m_SignalStateWrapper->m_DeviceStandby->GetValue(); //设备空闲状态
signalState.m_DevicePrinting = m_SignalStateWrapper->m_DevicePrinting->GetValue(); //设备打印状态
signalState.m_DeviceManualDebug = m_SignalStateWrapper->m_DeviceManualDebug->GetValue(); //设备手动调试状态
signalState.m_DeviceAutoRuning = m_SignalStateWrapper->m_DeviceAutoRuning->GetValue(); //设备自动运行状态
signalState.m_TouchPanelCtrling = m_SignalStateWrapper->m_TouchPanelCtrling->GetValue(); //触摸屏控制状态
signalState.m_MotionDebug = m_SignalStateWrapper->m_MotionDebug->GetValue(); //动作流程调试模式
signalState.m_CylinderExceptionReset = m_SignalStateWrapper->m_CylinderExceptionReset->GetValue(); //气缸异常复位
signalState.m_PLCConnectAlarm = m_SignalStateWrapper->m_PLCConnectAlarm->GetValue(); //PC与PLC网络异常
signalState.m_SystemStopAlarm = m_SignalStateWrapper->m_SystemStopAlarm->GetValue(); //系统急停异常
signalState.m_HighPressureLackAlarm = m_SignalStateWrapper->m_HighPressureLackAlarm->GetValue(); //高压气压力不足异常
signalState.m_ProtectGasLackAlarm = m_SignalStateWrapper->m_ProtectGasLackAlarm->GetValue(); //保护气压力不足异常
signalState.m_PowerDownAlarm = m_SignalStateWrapper->m_PowerDownAlarm->GetValue(); //外部电源断电异常
signalState.m_BusAirSwitchAlarm = m_SignalStateWrapper->m_BusAirSwitchAlarm->GetValue(); //总空开触点异常
signalState.m_ExtDevicePowerAirSwitchAlarm = m_SignalStateWrapper->m_ExtDevicePowerAirSwitchAlarm->GetValue(); //外部设备电源空开触点异常
signalState.m_HeatingPowerAirSwitchAlarm = m_SignalStateWrapper->m_HeatingPowerAirSwitchAlarm->GetValue(); //加热电源空开触点异常
signalState.m_LaserPowerAirSwitchAlarm = m_SignalStateWrapper->m_LaserPowerAirSwitchAlarm->GetValue(); //激光电源空开触点异常
signalState.m_ServoPowerAirSwitchAlarm = m_SignalStateWrapper->m_ServoPowerAirSwitchAlarm->GetValue(); //伺服电源空开触点
signalState.m_Laser1Alarm = m_SignalStateWrapper->m_Laser1Alarm->GetValue(); //激光器1报警
signalState.m_Laser2Alarm = m_SignalStateWrapper->m_Laser2Alarm->GetValue(); //激光器2报警
signalState.m_Laser3Alarm = m_SignalStateWrapper->m_Laser3Alarm->GetValue(); //激光器3报警
signalState.m_Laser4Alarm = m_SignalStateWrapper->m_Laser4Alarm->GetValue(); //激光器4报警
signalState.m_HeatingAlarm = m_SignalStateWrapper->m_HeatingAlarm->GetValue(); //加热异常报警
signalState.m_PrintStorageCar1JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar1JarFullWarn->GetValue(); //存粉小车粉罐已满警示
signalState.m_PrintStorageCar1DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar1DisconnectWarn->GetValue(); //打印存粉小车1没有连接警示
signalState.m_CleanStorageCar1JarFullWarn = m_SignalStateWrapper->m_CleanStorageCar1JarFullWarn->GetValue(); //清粉存粉小车1粉罐已满警示
signalState.m_CleanStorageCar1DisconnectWarn = m_SignalStateWrapper->m_CleanStorageCar1DisconnectWarn->GetValue(); //清粉存粉小车1没有连接警示
signalState.m_MoldMainUpLimitActive = m_SignalStateWrapper->m_MoldMainUpLimitActive->GetValue(); //打印主轴上限位触发警示
signalState.m_MoldMainDownLimitActive = m_SignalStateWrapper->m_MoldMainDownLimitActive->GetValue(); //打印主轴下限位触发警示
signalState.m_UpsAlarm = m_SignalStateWrapper->m_UpsAlarm->GetValue(); //UPS报警
signalState.m_Laser5Alarm = m_SignalStateWrapper->m_Laser5Alarm->GetValue(); //激光5报警
signalState.m_Laser6Alarm = m_SignalStateWrapper->m_Laser6Alarm->GetValue(); //激光6报警
signalState.m_Laser7Alarm = m_SignalStateWrapper->m_Laser7Alarm->GetValue(); //激光7报警
signalState.m_Laser8Alarm = m_SignalStateWrapper->m_Laser8Alarm->GetValue(); //激光8报警
signalState.m_PrintTrackDisableWarn = m_SignalStateWrapper->m_PrintTrackDisableWarn->GetValue(); //轨道打印位感应失效警告
signalState.m_CylinderLinerSealReleaseValveException = m_SignalStateWrapper->m_CylinderLinerSealReleaseValveException->GetValue(); //缸体密封圈泄压异常
signalState.m_CleanTrackPosDisableAlarm = m_SignalStateWrapper->m_CleanTrackPosDisableAlarm->GetValue(); //轨道清粉位失效异常
signalState.m_CleanLiftStopAlarm = m_SignalStateWrapper->m_CleanLiftStopAlarm->GetValue(); //清粉升降急停异常
signalState.m_LoadHandPosSensorDiable = m_SignalStateWrapper->m_LoadHandPosSensorDiable->GetValue();
signalState.m_MainPowerLossCheckAlarm = m_SignalStateWrapper->m_MainPowerLossCheckAlarm->GetValue(); //主电源缺相检测异常
signalState.m_PrintCabinLockDisableAlarm = m_SignalStateWrapper->m_PrintCabinLockDisableAlarm->GetValue(); //打印舱电锁感应异常
signalState.m_CleanBoxFoldUpException = m_SignalStateWrapper->m_CleanBoxFoldUpException->GetValue(); //清粉箱折叠气缸升高异常
signalState.m_CleanBoxFoldDownException = m_SignalStateWrapper->m_CleanBoxFoldDownException->GetValue(); //清粉箱折叠气缸降低异常
signalState.m_CylinderHandPlatformOpenAlarm = m_SignalStateWrapper->m_CylinderHandPlatformOpenAlarm->GetValue(); //缸体吊装盖板打开异常
signalState.m_CylinderHandDoorOpenAlarm = m_SignalStateWrapper->m_CylinderHandDoorOpenAlarm->GetValue(); //缸体吊装门打开异常
signalState.m_SecurityCarpetTriggered = m_SignalStateWrapper->m_SecurityCarpetTriggered->GetValue(); //安全地毯被触发
signalState.m_RailNotInOpenOrClosePos = m_SignalStateWrapper->m_RailNotInOpenOrClosePos->GetValue(); //栏杆不在打开或者关闭位置
signalState.m_HandPlatformCloseAlarm = m_SignalStateWrapper->m_HandPlatformCloseAlarm->GetValue(); //吊装盖板关闭异常
signalState.m_ArmFrontLimit = m_SignalStateWrapper->m_ArmFrontLimit->GetValue(); //铺粉轴前限位触发警示
signalState.m_ArmBackLimit = m_SignalStateWrapper->m_ArmBackLimit->GetValue(); //铺粉轴后限位触发警示
signalState.m_LoadAxisLeftLimit = m_SignalStateWrapper->m_LoadAxisLeftLimit->GetValue(); //移载轴左限位触发警示
signalState.m_LoadAxisRightLimit = m_SignalStateWrapper->m_LoadAxisRightLimit->GetValue(); //移载轴右限位触发警示
signalState.m_SupplyHomeIndexDisableAlarm = m_SignalStateWrapper->m_SupplyHomeIndexDisableAlarm->GetValue(); //供粉转轴原点失效异常
signalState.m_PrintPressureOverLimitAlarm = m_SignalStateWrapper->m_PrintPressureOverLimitAlarm->GetValue(); //打印舱压力过高异常
signalState.m_TotalWaterCoolerAlarm = m_SignalStateWrapper->m_TotalWaterCoolerAlarm->GetValue(); //总冷水机报警
signalState.m_MoldTorqueAlarm = m_SignalStateWrapper->m_MoldTorqueAlarm->GetValue(); //打印主轴扭力异常
signalState.m_LoadTorqueAlarm = m_SignalStateWrapper->m_LoadTorqueAlarm->GetValue(); //移载轴扭力异常
signalState.m_ArmTorqueAlarm = m_SignalStateWrapper->m_ArmTorqueAlarm->GetValue(); //铺粉轴扭力异常
signalState.m_SupplyTorqueAlarm = m_SignalStateWrapper->m_SupplyTorqueAlarm->GetValue(); //供粉轴扭力异常
signalState.m_GratingRulerFail = m_SignalStateWrapper->m_GratingRulerFail->GetValue(); //光栅尺补偿失败
signalState.m_PrintMainOverSoftUpLimit = m_SignalStateWrapper->m_PrintMainOverSoftUpLimit->GetValue(); //打印主轴超软上限
signalState.m_PrintMainOverSoftDownLimit = m_SignalStateWrapper->m_PrintMainOverSoftDownLimit->GetValue(); //打印主轴超软下限
signalState.m_LoadAxisOverSoftLeftLimit = m_SignalStateWrapper->m_LoadAxisOverSoftLeftLimit->GetValue(); //移载轴超左软限
signalState.m_LoadAxisOverSoftRightLimit = m_SignalStateWrapper->m_LoadAxisOverSoftRightLimit->GetValue(); //移载轴超右软限
signalState.m_ArmOverSoftFrontLimit = m_SignalStateWrapper->m_ArmOverSoftFrontLimit->GetValue(); //铺粉轴超前软限
signalState.m_ArmOverSoftBackLimit = m_SignalStateWrapper->m_ArmOverSoftBackLimit->GetValue(); //铺粉轴超后软限
signalState.m_PrintStorageCar2JarFullWarn = m_SignalStateWrapper->m_PrintStorageCar2JarFullWarn->GetValue(); //打印存粉小车2粉罐已满警示
signalState.m_PrintStorageCar2DisconnectWarn = m_SignalStateWrapper->m_PrintStorageCar2DisconnectWarn->GetValue(); //打印存粉小车2没有连接警示
signalState.m_CleanStorageCar2JarFullWarn = m_SignalStateWrapper->m_CleanStorageCar2JarFullWarn->GetValue(); //清粉存粉小车2粉罐已满警示
signalState.m_CleanStorageCar2DisconnectWarn = m_SignalStateWrapper->m_CleanStorageCar2DisconnectWarn->GetValue(); //清粉存粉小车2没有连接警示
signalState.m_CoverBaffleNotInFrontAcceptPos = m_SignalStateWrapper->m_CoverBaffleNotInFrontAcceptPos->GetValue(); //铺粉臂挡板不在前接粉位
signalState.m_CoverBaffleNotInDropPos = m_SignalStateWrapper->m_CoverBaffleNotInDropPos->GetValue(); //铺粉臂挡板不在下粉位
signalState.m_ArmMoveBackAcceptPosException = m_SignalStateWrapper->m_ArmMoveBackAcceptPosException->GetValue(); //铺粉臂到接粉后位异常
signalState.m_UpServiceDoorOpenWarn = m_SignalStateWrapper->m_UpServiceDoorOpenWarn->GetValue(); //上层维修门打开警告
signalState.m_DownServiceDoorOpenWarn = m_SignalStateWrapper->m_DownServiceDoorOpenWarn->GetValue(); //下层维修门打开警告
signalState.m_LoadAxisManualAlarmSignal = m_SignalStateWrapper->m_LoadAxisManualAlarmSignal->GetValue(); //移栽手动异常
signalState.m_PrintMainServoAlarmSignal = m_SignalStateWrapper->m_PrintMainServoAlarmSignal->GetValue(); //打印主轴伺服驱动器异常
signalState.m_LoadAxisServoAlarmSignal = m_SignalStateWrapper->m_LoadAxisServoAlarmSignal->GetValue(); //移载轴伺服驱动器异常
signalState.m_ArmServoAlarmSignal = m_SignalStateWrapper->m_ArmServoAlarmSignal->GetValue(); //铺粉轴伺服驱动器异常
signalState.m_SupplyServoAlarmSignal = m_SignalStateWrapper->m_SupplyServoAlarmSignal->GetValue(); //供粉转轴伺服驱动器异常
signalState.m_CoverReachAcceptPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachAcceptPowderAlarmSignal->GetValue(); //铺粉轴到接粉位异常
signalState.m_CoverReachDropPowderAlarmSignal = m_SignalStateWrapper->m_CoverReachDropPowderAlarmSignal->GetValue(); //铺粉轴到下粉位异常
signalState.m_LinearEncoderCheckAlarmSignal = m_SignalStateWrapper->m_LinearEncoderCheckAlarmSignal->GetValue(); //光栅尺检测异常
signalState.m_PrintMainSoftStopTrigger = m_SignalStateWrapper->m_PrintMainSoftStopTrigger->GetValue(); //打印主轴软急停触发
signalState.m_LoadAxisSoftStopTrigger = m_SignalStateWrapper->m_LoadAxisSoftStopTrigger->GetValue(); //移载轴软急停触发
signalState.m_CoverSoftStopTrigger = m_SignalStateWrapper->m_CoverSoftStopTrigger->GetValue(); //铺粉轴软急停触发
signalState.m_CoverHomeException = m_SignalStateWrapper->m_CoverHomeException->GetValue(); //铺粉归原点异常
signalState.m_CylinderSealInflationFailureAlarm = m_SignalStateWrapper->m_CylinderSealInflationFailureAlarm->GetValue(); //缸体密封圈充气失败报警
signalState.m_CylinderSealInflationHighPressureAlarm = m_SignalStateWrapper->m_CylinderSealInflationHighPressureAlarm->GetValue(); //缸体密封圈充气过压报警
signalState.m_CylinderSealLeakageWarn = m_SignalStateWrapper->m_CylinderSealLeakageWarn->GetValue(); //缸体密封圈存在漏气警告
signalState.m_SealPressureExceptionWhenPrint = m_SignalStateWrapper->m_SealPressureExceptionWhenPrint->GetValue(); //密封圈压力异常
signalState.m_CylinderState = m_SignalStateWrapper->m_CylinderState->GetValue(); //缸体状态_R
signalState.m_CylinderReachPrintTriger = m_SignalStateWrapper->m_CylinderReachPrintTriger->GetValue(); //触发缸体到达打印位_自动_RW
signalState.m_CylinderReachPrintRun = m_SignalStateWrapper->m_CylinderReachPrintRun->GetValue(); //缸体到打印位运行中_自动_RW
signalState.m_CylinderReachPrintFinished = m_SignalStateWrapper->m_CylinderReachPrintFinished->GetValue(); //缸体到达打印位完毕_自动_RW
signalState.m_CylinderPrintLoadTriger = m_SignalStateWrapper->m_CylinderPrintLoadTriger->GetValue(); //触发缸体打印位装载_自动_RW
signalState.m_CylinderPrintLoadRun = m_SignalStateWrapper->m_CylinderPrintLoadRun->GetValue(); //缸体打印位装载运行中_自动_RW
signalState.m_CylinderPrintLoadFinished = m_SignalStateWrapper->m_CylinderPrintLoadFinished->GetValue(); //缸体打印位装载完毕_自动_RW
signalState.m_CylinderPrintUnloadTriger = m_SignalStateWrapper->m_CylinderPrintUnloadTriger->GetValue(); //触发缸体打印位卸载_自动_RW
signalState.m_CylinderPrintUnloadRun = m_SignalStateWrapper->m_CylinderPrintUnloadRun->GetValue(); //缸体打印位卸载运行中_自动_RW
signalState.m_CylinderPrintUnloadFinished = m_SignalStateWrapper->m_CylinderPrintUnloadFinished->GetValue(); //缸体打印位卸载完毕_自动_RW
signalState.m_CylinderReachCleanTriger = m_SignalStateWrapper->m_CylinderReachCleanTriger->GetValue(); //触发缸体到达清粉位_自动_RW
signalState.m_CylinderReachCleanRun = m_SignalStateWrapper->m_CylinderReachCleanRun->GetValue(); //缸体到清粉位运行中_RW
signalState.m_CylinderReachCleanFinished = m_SignalStateWrapper->m_CylinderReachCleanFinished->GetValue(); //缸体到清粉位完毕_自动_RW
signalState.m_CylinderConnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderConnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱连接_自动_RW
signalState.m_CylinderConnectCleanBoxRun = m_SignalStateWrapper->m_CylinderConnectCleanBoxRun->GetValue(); //缸体与清粉箱连接中_RW
signalState.m_CylinderConnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderConnectCleanBoxFinished->GetValue(); //缸体与清粉箱连接完毕_自动_RW
signalState.m_CylinderDisconnectCleanBoxTriger = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxTriger->GetValue(); //触发缸体与清粉箱分离_自动_RW
signalState.m_CylinderDisconnectCleanBoxRun = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxRun->GetValue(); //缸体与清粉箱分离中_RW
signalState.m_CylinderDisconnectCleanBoxFinished = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxFinished->GetValue(); //缸体与清粉箱分离完毕_自动_RW
signalState.m_CoverTriger = m_SignalStateWrapper->m_CoverTriger->GetValue(); //触发铺粉流程_W
signalState.m_IsCovering = m_SignalStateWrapper->m_IsCovering->GetValue(); //铺粉流程忙_R
signalState.m_IsCoverFinishedCanPrint = m_SignalStateWrapper->m_IsCoverFinishedCanPrint->GetValue(); //铺粉完成允许打印_RW
signalState.m_IsCoverDebug = m_SignalStateWrapper->m_IsCoverDebug->GetValue(); //铺粉调试模式_W
signalState.m_IsFirstCover = m_SignalStateWrapper->m_IsFirstCover->GetValue(); //第一次铺粉_W
signalState.m_PrintDeoxygenTriger = m_SignalStateWrapper->m_PrintDeoxygenTriger->GetValue(); //触发打印室除氧_W
signalState.m_PrintDeoxygenRun = m_SignalStateWrapper->m_PrintDeoxygenRun->GetValue(); //打印室除氧中_RW
signalState.m_PrintDeoxygenFinished = m_SignalStateWrapper->m_PrintDeoxygenFinished->GetValue(); //打印室氧含量值到达_R
signalState.m_StorgeCarDeoxygenTriger = m_SignalStateWrapper->m_StorgeCarDeoxygenTriger->GetValue(); //触发存粉小车除氧_W
signalState.m_StorgeCarDeoxygenRun = m_SignalStateWrapper->m_StorgeCarDeoxygenRun->GetValue(); //存粉小车除氧中_R
signalState.m_StorgeCarDeoxygenFinished = m_SignalStateWrapper->m_StorgeCarDeoxygenFinished->GetValue(); //存粉小车除氧完毕_RW
signalState.m_CleanBoxVacuumTriger = m_SignalStateWrapper->m_CleanBoxVacuumTriger->GetValue(); //清粉箱启动吸尘器_R
signalState.m_RasterJudgeOK = m_SignalStateWrapper->m_RasterJudgeOK->GetValue(); //光栅尺判断OK_R
signalState.m_RasterJudgeNG = m_SignalStateWrapper->m_RasterJudgeNG->GetValue(); //光栅尺判断NG_R
signalState.m_CylinderReachPrintEnable = m_SignalStateWrapper->m_CylinderReachPrintEnable->GetValue(); //触发缸体到打印位EN_R
signalState.m_CylinderPrintLoadEnable = m_SignalStateWrapper->m_CylinderPrintLoadEnable->GetValue(); //触发缸体打印位装载EN_R
signalState.m_CylinderPrintUnloadEnable = m_SignalStateWrapper->m_CylinderPrintUnloadEnable->GetValue(); //触发缸体打印位卸载EN_R
signalState.m_CylinderReachCleanEnable = m_SignalStateWrapper->m_CylinderReachCleanEnable->GetValue(); //触发缸体到清粉位EN_R
signalState.m_CylinderConnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderConnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱连接EN_R
signalState.m_CylinderDisconnectCleanBoxEnable = m_SignalStateWrapper->m_CylinderDisconnectCleanBoxEnable->GetValue(); //触发缸体与清粉箱分离EN_R
signalState.m_CoverEnable = m_SignalStateWrapper->m_CoverEnable->GetValue(); //触发铺粉EN_R
signalState.m_UseSupplySearchEdge = m_SignalStateWrapper->m_UseSupplySearchEdge->GetValue();
signalState.m_SheildLinearEncoder = m_SignalStateWrapper->m_SheildLinearEncoder->GetValue();
signalState.m_SheilServoEmptyOpen = m_SignalStateWrapper->m_SheilServoEmptyOpen->GetValue();
signalState.m_SheildHighPressure = m_SignalStateWrapper->m_SheildHighPressure->GetValue(); //屏蔽高压气
signalState.m_UnuseCoverReachSensor = m_SignalStateWrapper->m_UnuseCoverReachSensor->GetValue(); //不使用铺粉轴到位感应器
signalState.m_UseCoverBaffleSensor = m_SignalStateWrapper->m_UseCoverBaffleSensor->GetValue(); //使用铺粉挡板感应器
signalState.m_UseArmCaptureHome = m_SignalStateWrapper->m_UseArmCaptureHome->GetValue();
signalState.m_LinearEncoderOppDirection = m_SignalStateWrapper->m_LinearEncoderOppDirection->GetValue();
signalState.m_CoverV2UseCintinueMode = m_SignalStateWrapper->m_CoverV2UseCintinueMode->GetValue();
signalState.m_UseCoverShiftSpeed = m_SignalStateWrapper->m_UseCoverShiftSpeed->GetValue(); //使用打印区域变速
signalState.m_PrintTorqueUpInsideLimit = m_SignalStateWrapper->m_PrintTorqueUpInsideLimit->GetValue(); //扭力值在上升扭力范围内
signalState.m_ArmNotUponBasePlatform = m_SignalStateWrapper->m_ArmNotUponBasePlatform->GetValue(); //铺粉轴不在基板范围内
signalState.m_PrintMoldPosInsideUpSoftLimit = m_SignalStateWrapper->m_PrintMoldPosInsideUpSoftLimit->GetValue(); //轴位置没超过软上限
signalState.m_PrintInsideUpLimit = m_SignalStateWrapper->m_PrintInsideUpLimit->GetValue(); //上限位没触发
signalState.m_PrintTorqueDownInsideLimit = m_SignalStateWrapper->m_PrintTorqueDownInsideLimit->GetValue(); //扭力值在下降扭力范围内
signalState.m_PrintAxisPosInsideDownSoftLimit = m_SignalStateWrapper->m_PrintAxisPosInsideDownSoftLimit->GetValue(); //轴位置没超过软下限
signalState.m_PrintInsideDownLimit = m_SignalStateWrapper->m_PrintInsideDownLimit->GetValue(); //下限位没触发
signalState.m_PrintMainServoNoAlarm = m_SignalStateWrapper->m_PrintMainServoNoAlarm->GetValue(); //打印主轴伺服无异常
signalState.m_PrintMoldInPrintPos = m_SignalStateWrapper->m_PrintMoldInPrintPos->GetValue(); //缸体在打印位
signalState.m_PrintMoldInCleanPos = m_SignalStateWrapper->m_PrintMoldInCleanPos->GetValue(); //缸体在清粉位
signalState.m_PrintMoldInHandPos = m_SignalStateWrapper->m_PrintMoldInHandPos->GetValue(); //缸体在吊装位
signalState.m_MoldUpDownServiceDoorCloseStatue = m_SignalStateWrapper->m_MoldUpDownServiceDoorCloseStatue->GetValue(); //升降上下维护门在关闭状态
signalState.m_PrintJackupInSafePos = m_SignalStateWrapper->m_PrintJackupInSafePos->GetValue(); //打印顶升轴在安全位
signalState.m_LoadTorqueInsideLimit = m_SignalStateWrapper->m_LoadTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
signalState.m_LoadPosInsideLeftSoftLimit = m_SignalStateWrapper->m_LoadPosInsideLeftSoftLimit->GetValue(); //轴位置没超过软左限
signalState.m_LoadPosInsideRightSoftLimit = m_SignalStateWrapper->m_LoadPosInsideRightSoftLimit->GetValue(); //轴位置没超过软右限
signalState.m_CylinderSealNoInflationStatue = m_SignalStateWrapper->m_CylinderSealNoInflationStatue->GetValue(); //密封圈无充气状态
signalState.m_LoadUpDownServiceDoorCloseStatue = m_SignalStateWrapper->m_LoadUpDownServiceDoorCloseStatue->GetValue(); //移载上下维护门在关闭状态
signalState.m_LoadLeftNotInsideLimit = m_SignalStateWrapper->m_LoadLeftNotInsideLimit->GetValue(); //左限位没触发
signalState.m_LoadRightNotInsideLimit = m_SignalStateWrapper->m_LoadRightNotInsideLimit->GetValue(); //右限位没触发
signalState.m_LoadServoNoAlarm = m_SignalStateWrapper->m_LoadServoNoAlarm->GetValue(); //移载轴伺服无异常
signalState.m_PrintUpDownPosBelowPlatform = m_SignalStateWrapper->m_PrintUpDownPosBelowPlatform->GetValue(); //打印顶升轴位置低于基板缸平面
signalState.m_ArmTorqueInsideLimit = m_SignalStateWrapper->m_ArmTorqueInsideLimit->GetValue(); //扭力值在扭力范围内
signalState.m_ArmPosInsideSoftFrontLimit = m_SignalStateWrapper->m_ArmPosInsideSoftFrontLimit->GetValue(); //轴位置没超过软前限
signalState.m_ArmPosInsideSoftBackLimit = m_SignalStateWrapper->m_ArmPosInsideSoftBackLimit->GetValue(); //轴位置没超过软后限
signalState.m_ArmPosInsideFrontLimit = m_SignalStateWrapper->m_ArmPosInsideFrontLimit->GetValue(); //前限位没触发
signalState.m_ArmPosInsideBackLimit = m_SignalStateWrapper->m_ArmPosInsideBackLimit->GetValue(); //后限位没触发
signalState.m_ArmServoNoAlarm = m_SignalStateWrapper->m_ArmServoNoAlarm->GetValue();
signalState.m_CylinderMoveHandPosEnable = m_SignalStateWrapper->m_CylinderMoveHandPosEnable->GetValue(); //触发缸体到吊装位En
signalState.m_CylinderMoveHandPos = m_SignalStateWrapper->m_CylinderMoveHandPos->GetValue(); //触发缸体到吊装位
signalState.m_CylinderMovingHandPos = m_SignalStateWrapper->m_CylinderMovingHandPos->GetValue(); //触发缸体到吊装位运行中
signalState.m_CylinderMovedHandPos = m_SignalStateWrapper->m_CylinderMovedHandPos->GetValue();//触发缸体到吊装位完毕
signalState.m_PrintAirRenewalEnable = m_SignalStateWrapper->m_PrintAirRenewalEnable->GetValue(); //打印室换气功能EN
signalState.m_PrintAirRenewalTrigger = m_SignalStateWrapper->m_PrintAirRenewalTrigger->GetValue(); //触发打印室换气
signalState.m_AllowRiseWindSpeed = m_SignalStateWrapper->m_AllowRiseWindSpeed->GetValue(); //允许提风速
signalState.m_ManualCoverTest = m_SignalStateWrapper->m_ManualCoverTest->GetValue(); //手动铺粉测试
signalState.m_RollerEdgeSearching = m_SignalStateWrapper->m_RollerEdgeSearching->GetValue(); //滚粉轴寻边中
signalState.m_RollerEdgeSearchSuccess = m_SignalStateWrapper->m_RollerEdgeSearchSuccess->GetValue(); //滚粉轴寻边成功
signalState.m_RollerEdgeSearchFaild = m_SignalStateWrapper->m_RollerEdgeSearchFaild->GetValue(); //滚粉轴寻边失败
signalState.m_IsInPrintCylinderSeparatePos = m_SignalStateWrapper->m_IsInPrintCylinderSeparatePos->GetValue(); //打印缸体分离位
signalState.m_IsInPrintPlatformBottomPos = m_SignalStateWrapper->m_IsInPrintPlatformBottomPos->GetValue(); //打印基板底座面
signalState.m_IsInPrintPlatformFlatPos = m_SignalStateWrapper->m_IsInPrintPlatformFlatPos->GetValue(); //打印基板平面
signalState.m_IsInLoadPrintPos = m_SignalStateWrapper->m_IsInLoadPrintPos->GetValue(); //移载打印位
signalState.m_IsInLoadCleanPos = m_SignalStateWrapper->m_IsInLoadCleanPos->GetValue(); //移载清粉位
signalState.m_IsInDropPowderPos = m_SignalStateWrapper->m_IsInDropPowderPos->GetValue(); //铺粉下粉位
signalState.m_IsInAcceptPowderPos = m_SignalStateWrapper->m_IsInAcceptPowderPos->GetValue(); //铺粉接粉位
signalState.m_PrintMoldServoAlarm = (m_Axis->m_Mold->GetState()->m_ServoException || m_Axis->m_MoldSlave->GetState()->m_ServoException);
signalState.m_ArmServoAlarm = m_Axis->m_Arm->GetState()->m_ServoException;
signalState.m_SupplyServoAlarm = m_Axis->m_Supply->GetState()->m_ServoException;
//memcpy_s(&alarmState, sizeof(AlarmState),m_AlarmStateWrapper,sizeof(alarmState));
}
//void HBDE1000::LoadInRun()
//{
//

View File

@ -72,7 +72,7 @@ public:
void InitSignal(SignalStateWrapper* ssw, PLCReveiver* cc);
void InitSysParam(SysParamWrapper* spw, PLCReveiver* cc);
void InitPLCCommand(vector<S7Command*>& vecs);
//void GetAlarmState(SignalState& signalState);
void GetAlarmState(SignalState& signalState);
//bool CheckPrintMoldReady();
private:
static void CheckIO_V0(vector<string>&ins, IOCfgWrapper* iocfgWrapper, string str, int mtype);

View File

@ -163,7 +163,7 @@ public:
virtual void InitPLCCommand(vector<S7Command*>& vecs) = 0;
//virtual void GetAlarmState(SignalState& signalState) = 0;
virtual void GetAlarmState(SignalState& signalState) = 0;
virtual void LoadIn();
virtual void LoadOut();

View File

@ -112,8 +112,8 @@ void CoreCommunication::Init()
InitCommand();
//if (m_IOCfgWrapper)
// m_IOCfgWrapper->SetCC(this);
if (m_IOCfgWrapper)
m_IOCfgWrapper->SetCC(this);
}
void CoreCommunication::InitCommand()
@ -354,7 +354,7 @@ void CoreCommunication::AssistRun()
void CoreCommunication::GetAlarmState(SignalState& signalState)
{
std::shared_lock<std::shared_mutex> lock(m_ValueMtx);
//ConfigManager::GetInstance()->GetMachine()->GetAlarmState(signalState);
ConfigManager::GetInstance()->GetMachine()->GetAlarmState(signalState);
}
void CoreCommunication::GetEnvState(EnvState& envState)

View File

@ -202,7 +202,7 @@ void GalaxyCamera::CatpureRun(void)
continue;
}
}
bool rel = (m_ShowFlag || m_DemandFlag);
bool rel = (m_ShowFlag->GetValue() || m_DemandFlag);
if (rel) {
CImageDataPointer objImageDataPointer = m_objStreamPtr->GetImage(300);
if (objImageDataPointer->GetStatus() == GX_FRAME_STATUS_SUCCESS)

View File

@ -1,7 +1,9 @@
#include "HBDCamera.h"
#include "HBDCamera.h"
#include "../config/ConfigManager.h"
#include <gl/GL.h>
#include <GL/khronos_glext.h>
#include "../protobuf/stream.pb.h"
#include "../logger.h"
#include <fstream>
@ -89,23 +91,28 @@ void PointImageShowInfo::Update()
}
HBDCamera::HBDCamera()
:m_DemandFlag(false)
, m_ShowFlag(false)
: m_DemandFlag(false)
//, m_ShowFlag(false)
, m_OriginalData(NULL)
, m_ImageChanged(false)
, m_RunFlag(false)
, m_CatpureThread(INVALID_HANDLE_VALUE)
, m_Aspect(1.0f)
//, m_ShowWidth(0)
//,m_ShowHeight(0)
, m_ShowFlag(new BoolData("ShowFlag"))
, m_LastMouRefImgPosX(new IntData("LastMouRefImgPosX"))
, m_LastMouRefImgPosY(new IntData("LastMouRefImgPosY"))
, m_PointImage(nullptr)
{
m_ExtCfg = ConfigManager::GetInstance()->GetExtCfg();
m_CameraCalibrationCfg = ConfigManager::GetInstance()->GetCameraCalibrationCfg();
m_tjinstance = tjInitCompress();
InitializeCriticalSection(&m_OriginalDataCS);
m_LastMouRefImgPosX = 0;
m_LastMouRefImgPosY = 0;
//m_LastMouRefImgPosX = 0;
//m_LastMouRefImgPosY = 0;
//InsertMp(&m_ShowFlag);
//InsertMp(&m_LastMouRefImgPosX);
//InsertMp(&m_LastMouRefImgPosY);
}
HBDCamera::~HBDCamera()
@ -198,3 +205,116 @@ bool HBDCamera::GetRawImage(unsigned char* img)
return true;
}
void HBDCamera::TakePhotos() {
unsigned char* imagetemp;
int width = 0, height = 0, datasize = 0;
GetOriginSize(width, height, datasize);
if (datasize > 0) {
imagetemp = new unsigned char[datasize];
if (GetRawImage(imagetemp))
{
cv::Mat image(height, width, CV_8U, imagetemp);
if (m_PointImage) {
delete m_PointImage;
m_PointImage = NULL;
}
PointImageShowInfo* info = new PointImageShowInfo();
info->Init(image, image.data);
m_PointImage = info;
delete[] imagetemp;
}
else {
delete[]imagetemp;
}
}
}
void HBDCamera::GetImageSize(int rowindex,::stream::ResponseAny** response) {
stream::ImgInfoResponce result;
unsigned char* image = nullptr;
unsigned long image_size = 0;
int width = 0, height = 0;
if (g_log->m_LogDao->FindImage(rowindex, &image, &image_size)) {
result.set_levelimage(GetShowImage(image, image_size, &width, &height));
result.set_height(height);
result.set_width(width);
}
if (image != nullptr)delete[] image;
(*response)->mutable_data()->PackFrom(result);
}
void HBDCamera::CallFunc(const ReadData& rd, ::stream::ResponseAny** response) {
stream::ImgInfoResponce result;
CameraFunc func = (CameraFunc)stoi(rd.nameKey);
switch (func) {
case SETDEMANDCATPURE:
SetDemandCatpure((bool)stoi(rd.strValue));
break;
case SETEXPOSUREAUTOBYCFG:
SetExposureAutoByCfg();
break;
case SETGAINAUTOBYCFG:
SetGainAutoByCfg();
break;
case SETEXPOSURETIMEBYCFG:
SetExposureTimeByCfg();
break;
case SETFRAMERATEENABLE:
SetFrameRateEnable();
break;
case SETFRAMERATE:
SetFrameRate();
break;
case GETSHOWIMAGE:
result.set_levelimage(GetShowImage());
(*response)->mutable_data()->PackFrom(result);
break;
case GETSHOWIMAGES:
GetImageSize(stoi(rd.strValue),response);
break;
case TAKEPHOTOS:
TakePhotos();
break;
default: break;
}
}
void HBDCamera::SendToClients(WRITETYPE type, const std::string& addKey) {
std::list<Item> its;
its.emplace_back(Item{ "IsConnect",to_string(IsConnect()),iBOOL });
its.emplace_back(Item{ m_ShowFlag->GetCode(),m_ShowFlag->GetValueStr(),m_ShowFlag->GetDataType()});
its.emplace_back(Item{ m_LastMouRefImgPosX->GetCode(),m_LastMouRefImgPosX->GetValueStr(),m_LastMouRefImgPosX->GetDataType()});
its.emplace_back(Item{ m_LastMouRefImgPosY->GetCode(),m_LastMouRefImgPosY->GetValueStr(),m_LastMouRefImgPosY->GetDataType()});
if (m_PointImage) {
its.emplace_back(Item{ "High",to_string(m_PointImage->m_High),iINT });
its.emplace_back(Item{ "Width",to_string(m_PointImage->m_Width),iINT });
its.emplace_back(Item{ "ShowTex",to_string(m_PointImage->GetTex()),iUINT });
}
ClientWrapper::Instance()->PushAllClient(WriteData(CAMERAPARAM, its));
}
void HBDCamera::Update(const ReadData& rd, WRITETYPE type) {
//这3参数只在客户端修改
if (rd.nameKey == "LastMouRefImgPosX") {
m_LastMouRefImgPosX->SetValue(stoi(rd.strValue));
}
else if (rd.nameKey == "LastMouRefImgPosY") {
m_LastMouRefImgPosY->SetValue(stoi(rd.strValue));
}
else if (rd.nameKey == "ShowFlag") {
m_ShowFlag->SetValue((bool)stoi(rd.strValue));
}
SendToClients(); //客户端更新后在发送给客户端
}

View File

@ -4,13 +4,32 @@
#include "turbojpeg.h"
#include <windows.h>
#include <opencv2/opencv.hpp>
#include "../Controller/Base.h"
enum CameraFunc {
SETDEMANDCATPURE=0,
SETEXPOSUREAUTOBYCFG,
SETGAINAUTOBYCFG,
SETEXPOSURETIMEBYCFG,
SETFRAMERATEENABLE,
SETFRAMERATE,
GETSHOWIMAGE,
GETSHOWIMAGES,
TAKEPHOTOS,
};
class PointImageShowInfo {
public:
PointImageShowInfo()
:m_ShowTex(0) {
m_IsColor = false;
: m_ShowTex(0)
, m_Width(0)
, m_High(0)
, m_PixelRatio(0)
, m_ImageData(nullptr)
, m_IsColor(false)
{
}
~PointImageShowInfo();
@ -23,9 +42,10 @@ public:
public:
int m_Width;
int m_High;
float m_PixelRatio;
cv::Mat m_ImageMat;
bool m_IsColor;
float m_PixelRatio; //不传
bool m_IsColor; //不传
cv::Mat m_ImageMat; //不传
private:
unsigned char* m_ImageData;
uint32_t m_ShowTex;
@ -42,7 +62,7 @@ public:
virtual void StartUp();
virtual bool IsConnect() { return false; }
virtual bool IsConnect() { return false; } //当参数传
void SetDemandCatpure(bool demand) { m_DemandFlag = demand; }
bool GetDemandCatpure() { return m_DemandFlag; }
virtual void SetExposureAutoByCfg() {}
@ -53,23 +73,23 @@ public:
virtual unsigned int GetShowImage() = 0;
virtual unsigned int GetShowImage(unsigned char * data, unsigned long size, int *width, int *height);
virtual bool GenLogImage(void) { return false; }
virtual bool GenLogImage(void) { return false; } //不传
unsigned char * GetLogImage(void) { return m_LogImage; }
unsigned int GetLogImageSize(void) { return m_LogImageSize; }
float GetAspect() { return m_Aspect; }
unsigned char * GetLogImage(void) { return m_LogImage; } //不传
unsigned int GetLogImageSize(void) { return m_LogImageSize; } //不传
float GetAspect() { return m_Aspect; } //当参数传
//unsigned int GetLogImageWidth() { return m_ImgWidth; }
//unsigned int GetLogImageHeight() { return m_ImgHeight; }
virtual bool GetRawImage(unsigned char* img);
virtual bool GetRawImage(unsigned char* img); //TakePhotos包含了
void GetRemoteShowImageMat(cv::Mat& mat)
void GetRemoteShowImageMat(cv::Mat& mat) //不用传
{
EnterCriticalSection(&m_OriginalDataCS);
m_ShowImage.copyTo(mat);
LeaveCriticalSection(&m_OriginalDataCS);
}
void GetOriginSize(int& width, int& height, int &datasize) {
void GetOriginSize(int& width, int& height, int &datasize) { //TakePhotos包含了
EnterCriticalSection(&m_OriginalDataCS);
width = m_OriginalWidth;
height = m_OriginalHeight;
@ -77,6 +97,10 @@ public:
LeaveCriticalSection(&m_OriginalDataCS);
}
void TakePhotos(); //拍照
void CallFunc(const ReadData& rd, ::stream::ResponseAny** response);
void SendToClients(WRITETYPE type = CAMERAPARAM, const std::string& addKey = "");
void Update(const ReadData& rd, WRITETYPE type = CAMERAPARAM);
protected:
virtual bool ConnectCamera() { return false; }
virtual void GenTex(uint32_t *tex, unsigned int w, unsigned int h, void * data) {}
@ -86,11 +110,15 @@ protected:
virtual void CatpureRun() = 0;
virtual void CreateTestImage() {}
private:
void GetImageSize(int rowindex, ::stream::ResponseAny** response);
public:
bool m_ShowFlag;
BoolData* m_ShowFlag; //只有界面会修改
IntData* m_LastMouRefImgPosX; //只有界面会修改
IntData* m_LastMouRefImgPosY; //只有界面会修改
PointImageShowInfo* m_PointImage;
int m_LastMouRefImgPosX;
int m_LastMouRefImgPosY;
protected:
bool m_IsColor;
bool m_DemandFlag;

View File

@ -1,4 +1,4 @@
#include "OPTCamera.h"
#include "OPTCamera.h"
#include <gl/GL.h>
#include <GL/khronos_glext.h>
#include "../config/ConfigManager.h"
@ -204,7 +204,7 @@ void OPTCamera::OnDeviceLinkNotify(const GENICAM_SConnectArg* pConnectArg, void*
cam->m_StreamSource->detachGrabbingEx(cam->m_StreamSource, OnGetFrame, (void*)cam);
cam->m_StreamSource->stopGrabbing(cam->m_StreamSource);
cam->SetConnect(false);
// ×¢Ïú»Øµ÷
// 注销回调
}
return;
}
@ -214,7 +214,7 @@ void OPTCamera::OnGetFrame(GENICAM_Frame* pFrame, void* pUser)
if (!pUser)return;
OPTCamera* cam = (OPTCamera*)pUser;
int rel = pFrame->valid(pFrame);
if ((rel == 0) && (cam->m_DemandFlag || cam->m_ShowFlag))
if ((rel == 0) && (cam->m_DemandFlag || cam->m_ShowFlag->GetValue()))
{
uint32_t datasize = pFrame->getImageSize(pFrame);
cam->m_OriginalWidth = pFrame->getImageWidth(pFrame);

Binary file not shown.

View File

@ -215,8 +215,26 @@ struct RegResponceDefaultTypeInternal {
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RegResponceDefaultTypeInternal _RegResponce_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR ImgInfoResponce::ImgInfoResponce(::_pbi::ConstantInitialized)
: _impl_{
/*decltype(_impl_.levelimage_)*/ 0u,
/*decltype(_impl_.width_)*/ 0,
/*decltype(_impl_.height_)*/ 0,
/*decltype(_impl_._cached_size_)*/ {},
} {}
struct ImgInfoResponceDefaultTypeInternal {
PROTOBUF_CONSTEXPR ImgInfoResponceDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
~ImgInfoResponceDefaultTypeInternal() {}
union {
ImgInfoResponce _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ImgInfoResponceDefaultTypeInternal _ImgInfoResponce_default_instance_;
} // namespace stream
static ::_pb::Metadata file_level_metadata_stream_2eproto[10];
static ::_pb::Metadata file_level_metadata_stream_2eproto[11];
static const ::_pb::EnumDescriptor* file_level_enum_descriptors_stream_2eproto[1];
static constexpr const ::_pb::ServiceDescriptor**
file_level_service_descriptors_stream_2eproto = nullptr;
@ -334,6 +352,17 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE
~0u, // no _split_
~0u, // no sizeof(Split)
PROTOBUF_FIELD_OFFSET(::stream::RegResponce, _impl_.data_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
~0u, // no _split_
~0u, // no sizeof(Split)
PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.levelimage_),
PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.width_),
PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.height_),
};
static const ::_pbi::MigrationSchema
@ -348,6 +377,7 @@ static const ::_pbi::MigrationSchema
{83, -1, -1, sizeof(::stream::ChainDataBlock)},
{93, -1, -1, sizeof(::stream::Point)},
{103, -1, -1, sizeof(::stream::RegResponce)},
{112, -1, -1, sizeof(::stream::ImgInfoResponce)},
};
static const ::_pb::Message* const file_default_instances[] = {
@ -361,6 +391,7 @@ static const ::_pb::Message* const file_default_instances[] = {
&::stream::_ChainDataBlock_default_instance_._instance,
&::stream::_Point_default_instance_._instance,
&::stream::_RegResponce_default_instance_._instance,
&::stream::_ImgInfoResponce_default_instance_._instance,
};
const char descriptor_table_protodef_stream_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
"\n\014stream.proto\022\006stream\032\031google/protobuf/"
@ -385,17 +416,19 @@ const char descriptor_table_protodef_stream_2eproto[] PROTOBUF_SECTION_VARIABLE(
"dY\030\004 \001(\002\"A\n\016ChainDataBlock\022\016\n\006dotNum\030\001 \001"
"(\r\022\037\n\010pointVec\030\002 \003(\0132\r.stream.Point\"#\n\005P"
"oint\022\014\n\004xPos\030\001 \001(\002\022\014\n\004yPos\030\002 \001(\002\"\033\n\013RegR"
"esponce\022\014\n\004data\030\001 \001(\005*X\n\004TYPE\022\t\n\005iBOOL\020\000"
"\022\n\n\006iSHORT\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004iINT\020\003\022\t\n\005i"
"UINT\020\004\022\n\n\006iFLOAT\020\005\022\013\n\007iSTRING\020\0062\372\001\n\006Stre"
"am\0224\n\006Simple\022\023.stream.RequestInfo\032\023.stre"
"am.ResponseAny\"\000\022=\n\014ServerStream\022\023.strea"
"m.RequestInfo\032\024.stream.ResponseInfo\"\0000\001\022"
"=\n\014ClientStream\022\023.stream.RequestInfo\032\024.s"
"tream.ResponseInfo\"\000(\001\022<\n\tAllStream\022\023.st"
"ream.RequestInfo\032\024.stream.ResponseInfo\"\000"
"(\0010\001B-\n\027io.grpc.examples.streamB\013StreamP"
"rotoP\001\242\002\002STb\006proto3"
"esponce\022\014\n\004data\030\001 \001(\005\"D\n\017ImgInfoResponce"
"\022\022\n\nlevelImage\030\001 \001(\r\022\r\n\005width\030\002 \001(\005\022\016\n\006h"
"eight\030\003 \001(\005*X\n\004TYPE\022\t\n\005iBOOL\020\000\022\n\n\006iSHORT"
"\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004iINT\020\003\022\t\n\005iUINT\020\004\022\n\n\006"
"iFLOAT\020\005\022\013\n\007iSTRING\020\0062\372\001\n\006Stream\0224\n\006Simp"
"le\022\023.stream.RequestInfo\032\023.stream.Respons"
"eAny\"\000\022=\n\014ServerStream\022\023.stream.RequestI"
"nfo\032\024.stream.ResponseInfo\"\0000\001\022=\n\014ClientS"
"tream\022\023.stream.RequestInfo\032\024.stream.Resp"
"onseInfo\"\000(\001\022<\n\tAllStream\022\023.stream.Reque"
"stInfo\032\024.stream.ResponseInfo\"\000(\0010\001B-\n\027io"
".grpc.examples.streamB\013StreamProtoP\001\242\002\002S"
"Tb\006proto3"
};
static const ::_pbi::DescriptorTable* const descriptor_table_stream_2eproto_deps[1] =
{
@ -405,13 +438,13 @@ static ::absl::once_flag descriptor_table_stream_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_stream_2eproto = {
false,
false,
1299,
1369,
descriptor_table_protodef_stream_2eproto,
"stream.proto",
&descriptor_table_stream_2eproto_once,
descriptor_table_stream_2eproto_deps,
1,
10,
11,
schemas,
file_default_instances,
TableStruct_stream_2eproto::offsets,
@ -2946,6 +2979,226 @@ void RegResponce::InternalSwap(RegResponce* other) {
&descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once,
file_level_metadata_stream_2eproto[9]);
}
// ===================================================================
class ImgInfoResponce::_Internal {
public:
};
ImgInfoResponce::ImgInfoResponce(::google::protobuf::Arena* arena)
: ::google::protobuf::Message(arena) {
SharedCtor(arena);
// @@protoc_insertion_point(arena_constructor:stream.ImgInfoResponce)
}
ImgInfoResponce::ImgInfoResponce(const ImgInfoResponce& from)
: ::google::protobuf::Message(), _impl_(from._impl_) {
_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
from._internal_metadata_);
// @@protoc_insertion_point(copy_constructor:stream.ImgInfoResponce)
}
inline void ImgInfoResponce::SharedCtor(::_pb::Arena* arena) {
(void)arena;
new (&_impl_) Impl_{
decltype(_impl_.levelimage_){0u},
decltype(_impl_.width_){0},
decltype(_impl_.height_){0},
/*decltype(_impl_._cached_size_)*/ {},
};
}
ImgInfoResponce::~ImgInfoResponce() {
// @@protoc_insertion_point(destructor:stream.ImgInfoResponce)
_internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
SharedDtor();
}
inline void ImgInfoResponce::SharedDtor() {
ABSL_DCHECK(GetArenaForAllocation() == nullptr);
}
void ImgInfoResponce::SetCachedSize(int size) const {
_impl_._cached_size_.Set(size);
}
PROTOBUF_NOINLINE void ImgInfoResponce::Clear() {
// @@protoc_insertion_point(message_clear_start:stream.ImgInfoResponce)
::uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
::memset(&_impl_.levelimage_, 0, static_cast<::size_t>(
reinterpret_cast<char*>(&_impl_.height_) -
reinterpret_cast<char*>(&_impl_.levelimage_)) + sizeof(_impl_.height_));
_internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}
const char* ImgInfoResponce::_InternalParse(
const char* ptr, ::_pbi::ParseContext* ctx) {
ptr = ::_pbi::TcParser::ParseLoop(this, ptr, ctx, &_table_.header);
return ptr;
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2> ImgInfoResponce::_table_ = {
{
0, // no _has_bits_
0, // no _extensions_
3, 24, // max_field_number, fast_idx_mask
offsetof(decltype(_table_), field_lookup_table),
4294967288, // skipmap
offsetof(decltype(_table_), field_entries),
3, // num_field_entries
0, // num_aux_entries
offsetof(decltype(_table_), field_names), // no aux_entries
&_ImgInfoResponce_default_instance_._instance,
::_pbi::TcParser::GenericFallback, // fallback
}, {{
{::_pbi::TcParser::MiniParse, {}},
// uint32 levelImage = 1;
{::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.levelimage_), 63>(),
{8, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_)}},
// int32 width = 2;
{::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.width_), 63>(),
{16, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.width_)}},
// int32 height = 3;
{::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.height_), 63>(),
{24, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_)}},
}}, {{
65535, 65535
}}, {{
// uint32 levelImage = 1;
{PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_), 0, 0,
(0 | ::_fl::kFcSingular | ::_fl::kUInt32)},
// int32 width = 2;
{PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.width_), 0, 0,
(0 | ::_fl::kFcSingular | ::_fl::kInt32)},
// int32 height = 3;
{PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_), 0, 0,
(0 | ::_fl::kFcSingular | ::_fl::kInt32)},
}},
// no aux_entries
{{
}},
};
::uint8_t* ImgInfoResponce::_InternalSerialize(
::uint8_t* target,
::google::protobuf::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:stream.ImgInfoResponce)
::uint32_t cached_has_bits = 0;
(void)cached_has_bits;
// uint32 levelImage = 1;
if (this->_internal_levelimage() != 0) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
1, this->_internal_levelimage(), target);
}
// int32 width = 2;
if (this->_internal_width() != 0) {
target = ::google::protobuf::internal::WireFormatLite::
WriteInt32ToArrayWithField<2>(
stream, this->_internal_width(), target);
}
// int32 height = 3;
if (this->_internal_height() != 0) {
target = ::google::protobuf::internal::WireFormatLite::
WriteInt32ToArrayWithField<3>(
stream, this->_internal_height(), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target =
::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:stream.ImgInfoResponce)
return target;
}
::size_t ImgInfoResponce::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:stream.ImgInfoResponce)
::size_t total_size = 0;
::uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// uint32 levelImage = 1;
if (this->_internal_levelimage() != 0) {
total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
this->_internal_levelimage());
}
// int32 width = 2;
if (this->_internal_width() != 0) {
total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
this->_internal_width());
}
// int32 height = 3;
if (this->_internal_height() != 0) {
total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
this->_internal_height());
}
return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}
const ::google::protobuf::Message::ClassData ImgInfoResponce::_class_data_ = {
::google::protobuf::Message::CopyWithSourceCheck,
ImgInfoResponce::MergeImpl
};
const ::google::protobuf::Message::ClassData*ImgInfoResponce::GetClassData() const { return &_class_data_; }
void ImgInfoResponce::MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg) {
auto* const _this = static_cast<ImgInfoResponce*>(&to_msg);
auto& from = static_cast<const ImgInfoResponce&>(from_msg);
// @@protoc_insertion_point(class_specific_merge_from_start:stream.ImgInfoResponce)
ABSL_DCHECK_NE(&from, _this);
::uint32_t cached_has_bits = 0;
(void) cached_has_bits;
if (from._internal_levelimage() != 0) {
_this->_internal_set_levelimage(from._internal_levelimage());
}
if (from._internal_width() != 0) {
_this->_internal_set_width(from._internal_width());
}
if (from._internal_height() != 0) {
_this->_internal_set_height(from._internal_height());
}
_this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}
void ImgInfoResponce::CopyFrom(const ImgInfoResponce& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:stream.ImgInfoResponce)
if (&from == this) return;
Clear();
MergeFrom(from);
}
PROTOBUF_NOINLINE bool ImgInfoResponce::IsInitialized() const {
return true;
}
void ImgInfoResponce::InternalSwap(ImgInfoResponce* other) {
using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
::google::protobuf::internal::memswap<
PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_)
+ sizeof(ImgInfoResponce::_impl_.height_)
- PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_)>(
reinterpret_cast<char*>(&_impl_.levelimage_),
reinterpret_cast<char*>(&other->_impl_.levelimage_));
}
::google::protobuf::Metadata ImgInfoResponce::GetMetadata() const {
return ::_pbi::AssignDescriptors(
&descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once,
file_level_metadata_stream_2eproto[10]);
}
// @@protoc_insertion_point(namespace_scope)
} // namespace stream
namespace google {

View File

@ -59,6 +59,9 @@ namespace stream {
class ChainDataBlock;
struct ChainDataBlockDefaultTypeInternal;
extern ChainDataBlockDefaultTypeInternal _ChainDataBlock_default_instance_;
class ImgInfoResponce;
struct ImgInfoResponceDefaultTypeInternal;
extern ImgInfoResponceDefaultTypeInternal _ImgInfoResponce_default_instance_;
class LayerData;
struct LayerDataDefaultTypeInternal;
extern LayerDataDefaultTypeInternal _LayerData_default_instance_;
@ -2036,6 +2039,188 @@ class RegResponce final :
};
union { Impl_ _impl_; };
friend struct ::TableStruct_stream_2eproto;
};// -------------------------------------------------------------------
class ImgInfoResponce final :
public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:stream.ImgInfoResponce) */ {
public:
inline ImgInfoResponce() : ImgInfoResponce(nullptr) {}
~ImgInfoResponce() override;
template<typename = void>
explicit PROTOBUF_CONSTEXPR ImgInfoResponce(::google::protobuf::internal::ConstantInitialized);
ImgInfoResponce(const ImgInfoResponce& from);
ImgInfoResponce(ImgInfoResponce&& from) noexcept
: ImgInfoResponce() {
*this = ::std::move(from);
}
inline ImgInfoResponce& operator=(const ImgInfoResponce& from) {
CopyFrom(from);
return *this;
}
inline ImgInfoResponce& operator=(ImgInfoResponce&& from) noexcept {
if (this == &from) return *this;
if (GetOwningArena() == from.GetOwningArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
&& GetOwningArena() != nullptr
#endif // !PROTOBUF_FORCE_COPY_IN_MOVE
) {
InternalSwap(&from);
} else {
CopyFrom(from);
}
return *this;
}
inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
}
inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
}
static const ::google::protobuf::Descriptor* descriptor() {
return GetDescriptor();
}
static const ::google::protobuf::Descriptor* GetDescriptor() {
return default_instance().GetMetadata().descriptor;
}
static const ::google::protobuf::Reflection* GetReflection() {
return default_instance().GetMetadata().reflection;
}
static const ImgInfoResponce& default_instance() {
return *internal_default_instance();
}
static inline const ImgInfoResponce* internal_default_instance() {
return reinterpret_cast<const ImgInfoResponce*>(
&_ImgInfoResponce_default_instance_);
}
static constexpr int kIndexInFileMessages =
10;
friend void swap(ImgInfoResponce& a, ImgInfoResponce& b) {
a.Swap(&b);
}
inline void Swap(ImgInfoResponce* other) {
if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() != nullptr &&
GetOwningArena() == other->GetOwningArena()) {
#else // PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() == other->GetOwningArena()) {
#endif // !PROTOBUF_FORCE_COPY_IN_SWAP
InternalSwap(other);
} else {
::google::protobuf::internal::GenericSwap(this, other);
}
}
void UnsafeArenaSwap(ImgInfoResponce* other) {
if (other == this) return;
ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
InternalSwap(other);
}
// implements Message ----------------------------------------------
ImgInfoResponce* New(::google::protobuf::Arena* arena = nullptr) const final {
return CreateMaybeMessage<ImgInfoResponce>(arena);
}
using ::google::protobuf::Message::CopyFrom;
void CopyFrom(const ImgInfoResponce& from);
using ::google::protobuf::Message::MergeFrom;
void MergeFrom( const ImgInfoResponce& from) {
ImgInfoResponce::MergeImpl(*this, from);
}
private:
static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg);
public:
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
bool IsInitialized() const final;
::size_t ByteSizeLong() const final;
const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
::uint8_t* _InternalSerialize(
::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
private:
void SharedCtor(::google::protobuf::Arena* arena);
void SharedDtor();
void SetCachedSize(int size) const final;
void InternalSwap(ImgInfoResponce* other);
private:
friend class ::google::protobuf::internal::AnyMetadata;
static ::absl::string_view FullMessageName() {
return "stream.ImgInfoResponce";
}
protected:
explicit ImgInfoResponce(::google::protobuf::Arena* arena);
public:
static const ClassData _class_data_;
const ::google::protobuf::Message::ClassData*GetClassData() const final;
::google::protobuf::Metadata GetMetadata() const final;
// nested types ----------------------------------------------------
// accessors -------------------------------------------------------
enum : int {
kLevelImageFieldNumber = 1,
kWidthFieldNumber = 2,
kHeightFieldNumber = 3,
};
// uint32 levelImage = 1;
void clear_levelimage() ;
::uint32_t levelimage() const;
void set_levelimage(::uint32_t value);
private:
::uint32_t _internal_levelimage() const;
void _internal_set_levelimage(::uint32_t value);
public:
// int32 width = 2;
void clear_width() ;
::int32_t width() const;
void set_width(::int32_t value);
private:
::int32_t _internal_width() const;
void _internal_set_width(::int32_t value);
public:
// int32 height = 3;
void clear_height() ;
::int32_t height() const;
void set_height(::int32_t value);
private:
::int32_t _internal_height() const;
void _internal_set_height(::int32_t value);
public:
// @@protoc_insertion_point(class_scope:stream.ImgInfoResponce)
private:
class _Internal;
friend class ::google::protobuf::internal::TcParser;
static const ::google::protobuf::internal::TcParseTable<2, 3, 0, 0, 2> _table_;
template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_;
struct Impl_ {
::uint32_t levelimage_;
::int32_t width_;
::int32_t height_;
mutable ::google::protobuf::internal::CachedSize _cached_size_;
PROTOBUF_TSAN_DECLARE_MEMBER
};
union { Impl_ _impl_; };
friend struct ::TableStruct_stream_2eproto;
};
// ===================================================================
@ -3078,6 +3263,76 @@ inline void RegResponce::_internal_set_data(::int32_t value) {
_impl_.data_ = value;
}
// -------------------------------------------------------------------
// ImgInfoResponce
// uint32 levelImage = 1;
inline void ImgInfoResponce::clear_levelimage() {
_impl_.levelimage_ = 0u;
}
inline ::uint32_t ImgInfoResponce::levelimage() const {
// @@protoc_insertion_point(field_get:stream.ImgInfoResponce.levelImage)
return _internal_levelimage();
}
inline void ImgInfoResponce::set_levelimage(::uint32_t value) {
_internal_set_levelimage(value);
// @@protoc_insertion_point(field_set:stream.ImgInfoResponce.levelImage)
}
inline ::uint32_t ImgInfoResponce::_internal_levelimage() const {
PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
return _impl_.levelimage_;
}
inline void ImgInfoResponce::_internal_set_levelimage(::uint32_t value) {
PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
;
_impl_.levelimage_ = value;
}
// int32 width = 2;
inline void ImgInfoResponce::clear_width() {
_impl_.width_ = 0;
}
inline ::int32_t ImgInfoResponce::width() const {
// @@protoc_insertion_point(field_get:stream.ImgInfoResponce.width)
return _internal_width();
}
inline void ImgInfoResponce::set_width(::int32_t value) {
_internal_set_width(value);
// @@protoc_insertion_point(field_set:stream.ImgInfoResponce.width)
}
inline ::int32_t ImgInfoResponce::_internal_width() const {
PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
return _impl_.width_;
}
inline void ImgInfoResponce::_internal_set_width(::int32_t value) {
PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
;
_impl_.width_ = value;
}
// int32 height = 3;
inline void ImgInfoResponce::clear_height() {
_impl_.height_ = 0;
}
inline ::int32_t ImgInfoResponce::height() const {
// @@protoc_insertion_point(field_get:stream.ImgInfoResponce.height)
return _internal_height();
}
inline void ImgInfoResponce::set_height(::int32_t value) {
_internal_set_height(value);
// @@protoc_insertion_point(field_set:stream.ImgInfoResponce.height)
}
inline ::int32_t ImgInfoResponce::_internal_height() const {
PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
return _impl_.height_;
}
inline void ImgInfoResponce::_internal_set_height(::int32_t value) {
PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
;
_impl_.height_ = value;
}
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif // __GNUC__

View File

@ -103,6 +103,11 @@ message RegResponce{
int32 data = 1;
}
message ImgInfoResponce{
uint32 levelImage = 1;
int32 width = 2;
int32 height = 3;
}
service Stream {
rpc Simple(RequestInfo) returns (ResponseAny) {} //

View File

@ -15,7 +15,6 @@
服务端保存一份数据,
plcparam 重复code:
ArmFrontLimit
ArmBackLimit

View File

@ -109,6 +109,7 @@ void DataHandle::Usage() {
printf(" 3: " COLOR_YELLOW "test axis move interface...\n" COLOR_RESET);
printf(" 4: " COLOR_YELLOW "test scan control interface...\n" COLOR_RESET);
printf(" 5: " COLOR_YELLOW "test registration interface...\n" COLOR_RESET);
printf(" 6: " COLOR_YELLOW "test camera interface...\n" COLOR_RESET);
printf(" 100: " COLOR_YELLOW "start test recv param interface...\n" COLOR_RESET);
}
@ -153,6 +154,7 @@ void DataHandle::ParamReadUsage() {
printf(" 34: " COLOR_YELLOW "print scan ctrl state data...\n" COLOR_RESET);
printf(" 35: " COLOR_YELLOW "print scan ctrl Param data...\n" COLOR_RESET);
printf(" 36: " COLOR_YELLOW "print xy scan state data...\n" COLOR_RESET);
printf(" 37: " COLOR_YELLOW "print camera param data...\n" COLOR_RESET);
}
int DataHandle::Request(int index) {
@ -172,6 +174,8 @@ int DataHandle::Request(int index) {
ScanCtrlTest(); break;
case 5:
RegistrationTest(); break;
case 6:
CameraTest(); break;
case 100:
ParamReadUsage();
while (printf("*请输入命令:") && std::getline(std::cin, userInput)) {
@ -199,6 +203,7 @@ void DataHandle::AllTest() {
AxisMoveTest();
ScanCtrlTest();
RegistrationTest();
CameraTest();
}
@ -247,10 +252,10 @@ void DataHandle::ScanCtrlTest() {
int count = (int)SCANCTRLFUNC::END1;
for (int i = 0; i < count; ++i) {
if (i == 6) {
if (i == REMOVESCANNER) {
SetPushMsg(WRITETYPE::SCANCTRLFUNC, to_string(i), to_string(1),iINT);
}
else if (i == 8) {
else if (i == STOPHEATINGMOTION) {
SetPushMsg(WRITETYPE::SCANCTRLFUNC, to_string(i),to_string(0),iBOOL);
}
else {
@ -258,31 +263,24 @@ void DataHandle::ScanCtrlTest() {
}
printf("发送请求%d成功...\n", i);
Sleep(1000);
Sleep(500);
}
}
void DataHandle::RegistrationTest(){
::stream::ResponseAny resp;
WriteData wdata;
stream::RegResponce result;
wdata.valueType = iSTRING;
wdata.strValue = to_string(time(nullptr));
wdata.nameKey = to_string(CHECKREG);
wdata.dataType = REGISTFUNC;
WriteData wdata{ REGISTFUNC ,to_string(CHECKREG),to_string(time(nullptr)) ,iSTRING };
m_streamClient->Request(wdata,&resp);
if (resp.data().Is<stream::RegResponce>()) {
resp.data().UnpackTo(&result);
printf("CHECKREG resp:%d\n", result.data());
}
Sleep(100);
wdata.valueType = iSTRING;
wdata.strValue = "123456789";
wdata.nameKey = to_string(GETSN);
m_streamClient->Request(wdata, &resp);
@ -292,7 +290,6 @@ void DataHandle::RegistrationTest(){
}
Sleep(100);
wdata.valueType = iSTRING;
wdata.strValue = "regconfig";
wdata.nameKey = to_string(CHECKREGKEY);
m_streamClient->Request(wdata, &resp);
@ -300,4 +297,44 @@ void DataHandle::RegistrationTest(){
resp.data().UnpackTo(&result);
printf("CHECKREGKEY resp:%d\n", result.data());
}
}
void DataHandle::CameraTest() {
int count = (int)CAMERAFUNC::END2;
for (int i = 0; i < count; ++i) {
if (i == GETSHOWIMAGE || i == GETSHOWIMAGES) continue;
if(i == SETDEMANDCATPURE) SetPushMsg(CAMERAFUNC, to_string(i),to_string(1),iBOOL);
else SetPushMsg(CAMERAFUNC, to_string(i));
printf("发送请求%d成功...\n", i);
Sleep(100);
}
::stream::ResponseAny resp;
stream::ImgInfoResponce result;
WriteData wdata{ CAMERAFUNC ,to_string(GETSHOWIMAGE)};
m_streamClient->Request(wdata, &resp);
if (resp.data().Is<stream::ImgInfoResponce>()) {
resp.data().UnpackTo(&result);
printf("GETSHOWIMAGE resp:%u\n", result.levelimage());
}
Sleep(100);
resp.Clear();
wdata.nameKey = to_string(GETSHOWIMAGES);
wdata.strValue = to_string(5); //测试值
wdata.valueType = iINT; //测试值
m_streamClient->Request(wdata, &resp);
if (resp.data().Is<stream::ImgInfoResponce>()) {
resp.data().UnpackTo(&result);
printf("GETSHOWIMAGES resp levelimg:%u,height:%d,width:%d\n", result.levelimage(),result.width(),result.height());
}
Sleep(100);
//修改参数
SetPushMsg(WRITETYPE::CAMERAPARAMUPDATE,"LastMouRefImgPosX", to_string(10),iINT);
SetPushMsg(WRITETYPE::CAMERAPARAMUPDATE,"LastMouRefImgPosY", to_string(100),iINT);
SetPushMsg(WRITETYPE::CAMERAPARAMUPDATE,"ShowFlag", to_string(1),iBOOL);
printf("CAMERAPARAMUPDATE update finish\n");
}

View File

@ -29,6 +29,7 @@ public:
void AxisMoveTest(); //轴运动测试
void ScanCtrlTest(); //扫描控制测试
void RegistrationTest(); //注册功能测试
void CameraTest(); //相机功能测试
void Usage();
void ParamReadUsage();

View File

@ -62,4 +62,18 @@ typedef enum {
REG_SUCCESS = 0,
REG_TRIAL,
REG_FAIL,
} RegType;
} RegType;
enum CAMERAFUNC {
SETDEMANDCATPURE = 0,
SETEXPOSUREAUTOBYCFG,
SETGAINAUTOBYCFG,
SETEXPOSURETIMEBYCFG,
SETFRAMERATEENABLE,
SETFRAMERATE,
GETSHOWIMAGE,
GETSHOWIMAGES,
TAKEPHOTOS,
END2,
};

View File

@ -2,6 +2,8 @@
#include <string>
#include <list>
//#define DELP(p) if(p){delete p; p = nullptr;}
enum READTYPE {
ALARM = 0, //报警
VERSIONRSP, //返回版本信息
@ -50,6 +52,7 @@ enum READTYPE {
SCANCTRLSTATE, //BaseCtrl参数
SCANCTRLPARAM, //scanctrl参数
XYSCANSTATE, //XYScanState参数 在参数更新的时候才会发送到客户端
CAMERAPARAM, //相机参数
TEST = 1000, //test
@ -87,9 +90,7 @@ struct ReadData {
enum WRITETYPE {
GET = 0,
SET,
AXISMOVEFUNC, //轴运动函数
AXISMOVEFUNC = 0, //轴运动函数
VERSIONREQ, //获取版本信息
@ -97,7 +98,9 @@ enum WRITETYPE {
RESETELEC, //PowerMeterClient
PURIFIERPARAMW, //净化器参数写入
LAYERDATAREQ, //layer数据请求
REGISTFUNC, //注册函数集
REGISTFUNC, //注册函数集 一次请求,使用请求回复模式
CAMERAFUNC, //相机功能函数调用
CAMERAPARAMUPDATE, //相机参数更新
SETZEROPOS, //AxisState使用
AXISSTOPALL, //axis 运动急停
@ -108,8 +111,6 @@ enum WRITETYPE {
LOADPARAM, //装载参数
/********************振镜控制******************/
SCANCTRLFUNC, //振镜控制函数
REQUEST, //获取配置信息 test用

View File

@ -107,7 +107,7 @@ void StreamClient::AllStream() {
Status status = stream->Finish();
if (!status.ok()) {
std::cout << "RPC failed: " << status.error_message() << std::endl;
exit(-1);
//exit(-1);
}
}
@ -135,10 +135,10 @@ int StreamClient::Request(const WriteData& writeData , ::stream::ResponseAny* re
ClientContext context;
::stream::RequestInfo request;
request.set_datatype(REGISTFUNC);
request.set_datatype(writeData.dataType);
request.set_namekey(writeData.nameKey);
request.set_strvalue(writeData.strValue);
request.set_valuetype((stream::TYPE)iSTRING);
request.set_valuetype((stream::TYPE)writeData.valueType);
Status status = _stub->Simple(&context, request, response);
return status.ok();

View File

@ -182,9 +182,9 @@
<ClCompile Include="log\PartPosBean.cpp" />
<ClCompile Include="log\ScannerPowerLog.cpp" />
<ClCompile Include="log\ScannerStatus.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="protobuf\stream.grpc.pb.cc" />
<ClCompile Include="protobuf\stream.pb.cc" />
<ClCompile Include="main.cpp" />
<ClCompile Include="Registration\aes.c" />
<ClCompile Include="Registration\GetHDDSerial2.cpp" />
<ClCompile Include="Registration\key.cpp" />

View File

@ -74,9 +74,6 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="protobuf\stream.pb.cc">
<Filter>protobuf</Filter>
</ClCompile>
<ClCompile Include="DataManage\StreamClient.cpp">
<Filter>DataManage</Filter>
</ClCompile>
@ -260,14 +257,11 @@
<ClCompile Include="protobuf\stream.grpc.pb.cc">
<Filter>protobuf</Filter>
</ClCompile>
<ClCompile Include="protobuf\stream.pb.cc">
<Filter>protobuf</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="protobuf\stream.grpc.pb.h">
<Filter>protobuf</Filter>
</ClInclude>
<ClInclude Include="protobuf\stream.pb.h">
<Filter>protobuf</Filter>
</ClInclude>
<ClInclude Include="utils\LocalAddr.h">
<Filter>utils</Filter>
</ClInclude>
@ -518,6 +512,12 @@
<ClInclude Include="UI\UIBean.h">
<Filter>UI</Filter>
</ClInclude>
<ClInclude Include="protobuf\stream.grpc.pb.h">
<Filter>protobuf</Filter>
</ClInclude>
<ClInclude Include="protobuf\stream.pb.h">
<Filter>protobuf</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="protobuf\stream.proto">

View File

@ -8,6 +8,7 @@
#include "SystemInfo.h"
#include "Logger.h"
#include "Toast.h"
#include "stdafx.h"
#include <map>
#include "LanguageManager.h"
#include "../DataManage/DataHandle.h"
@ -82,8 +83,9 @@ int main(int argc, char** argv) {
}
delete sys;
sys = nullptr;
DELP(dataHandle);
DELP(sys);
return 0;
}

View File

@ -215,8 +215,26 @@ struct RegResponceDefaultTypeInternal {
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RegResponceDefaultTypeInternal _RegResponce_default_instance_;
template <typename>
PROTOBUF_CONSTEXPR ImgInfoResponce::ImgInfoResponce(::_pbi::ConstantInitialized)
: _impl_{
/*decltype(_impl_.levelimage_)*/ 0u,
/*decltype(_impl_.width_)*/ 0,
/*decltype(_impl_.height_)*/ 0,
/*decltype(_impl_._cached_size_)*/ {},
} {}
struct ImgInfoResponceDefaultTypeInternal {
PROTOBUF_CONSTEXPR ImgInfoResponceDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
~ImgInfoResponceDefaultTypeInternal() {}
union {
ImgInfoResponce _instance;
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ImgInfoResponceDefaultTypeInternal _ImgInfoResponce_default_instance_;
} // namespace stream
static ::_pb::Metadata file_level_metadata_stream_2eproto[10];
static ::_pb::Metadata file_level_metadata_stream_2eproto[11];
static const ::_pb::EnumDescriptor* file_level_enum_descriptors_stream_2eproto[1];
static constexpr const ::_pb::ServiceDescriptor**
file_level_service_descriptors_stream_2eproto = nullptr;
@ -334,6 +352,17 @@ const ::uint32_t TableStruct_stream_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE
~0u, // no _split_
~0u, // no sizeof(Split)
PROTOBUF_FIELD_OFFSET(::stream::RegResponce, _impl_.data_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
~0u, // no _inlined_string_donated_
~0u, // no _split_
~0u, // no sizeof(Split)
PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.levelimage_),
PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.width_),
PROTOBUF_FIELD_OFFSET(::stream::ImgInfoResponce, _impl_.height_),
};
static const ::_pbi::MigrationSchema
@ -348,6 +377,7 @@ static const ::_pbi::MigrationSchema
{83, -1, -1, sizeof(::stream::ChainDataBlock)},
{93, -1, -1, sizeof(::stream::Point)},
{103, -1, -1, sizeof(::stream::RegResponce)},
{112, -1, -1, sizeof(::stream::ImgInfoResponce)},
};
static const ::_pb::Message* const file_default_instances[] = {
@ -361,6 +391,7 @@ static const ::_pb::Message* const file_default_instances[] = {
&::stream::_ChainDataBlock_default_instance_._instance,
&::stream::_Point_default_instance_._instance,
&::stream::_RegResponce_default_instance_._instance,
&::stream::_ImgInfoResponce_default_instance_._instance,
};
const char descriptor_table_protodef_stream_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
"\n\014stream.proto\022\006stream\032\031google/protobuf/"
@ -385,17 +416,19 @@ const char descriptor_table_protodef_stream_2eproto[] PROTOBUF_SECTION_VARIABLE(
"dY\030\004 \001(\002\"A\n\016ChainDataBlock\022\016\n\006dotNum\030\001 \001"
"(\r\022\037\n\010pointVec\030\002 \003(\0132\r.stream.Point\"#\n\005P"
"oint\022\014\n\004xPos\030\001 \001(\002\022\014\n\004yPos\030\002 \001(\002\"\033\n\013RegR"
"esponce\022\014\n\004data\030\001 \001(\005*X\n\004TYPE\022\t\n\005iBOOL\020\000"
"\022\n\n\006iSHORT\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004iINT\020\003\022\t\n\005i"
"UINT\020\004\022\n\n\006iFLOAT\020\005\022\013\n\007iSTRING\020\0062\372\001\n\006Stre"
"am\0224\n\006Simple\022\023.stream.RequestInfo\032\023.stre"
"am.ResponseAny\"\000\022=\n\014ServerStream\022\023.strea"
"m.RequestInfo\032\024.stream.ResponseInfo\"\0000\001\022"
"=\n\014ClientStream\022\023.stream.RequestInfo\032\024.s"
"tream.ResponseInfo\"\000(\001\022<\n\tAllStream\022\023.st"
"ream.RequestInfo\032\024.stream.ResponseInfo\"\000"
"(\0010\001B-\n\027io.grpc.examples.streamB\013StreamP"
"rotoP\001\242\002\002STb\006proto3"
"esponce\022\014\n\004data\030\001 \001(\005\"D\n\017ImgInfoResponce"
"\022\022\n\nlevelImage\030\001 \001(\r\022\r\n\005width\030\002 \001(\005\022\016\n\006h"
"eight\030\003 \001(\005*X\n\004TYPE\022\t\n\005iBOOL\020\000\022\n\n\006iSHORT"
"\020\001\022\013\n\007iUSHORT\020\002\022\010\n\004iINT\020\003\022\t\n\005iUINT\020\004\022\n\n\006"
"iFLOAT\020\005\022\013\n\007iSTRING\020\0062\372\001\n\006Stream\0224\n\006Simp"
"le\022\023.stream.RequestInfo\032\023.stream.Respons"
"eAny\"\000\022=\n\014ServerStream\022\023.stream.RequestI"
"nfo\032\024.stream.ResponseInfo\"\0000\001\022=\n\014ClientS"
"tream\022\023.stream.RequestInfo\032\024.stream.Resp"
"onseInfo\"\000(\001\022<\n\tAllStream\022\023.stream.Reque"
"stInfo\032\024.stream.ResponseInfo\"\000(\0010\001B-\n\027io"
".grpc.examples.streamB\013StreamProtoP\001\242\002\002S"
"Tb\006proto3"
};
static const ::_pbi::DescriptorTable* const descriptor_table_stream_2eproto_deps[1] =
{
@ -405,13 +438,13 @@ static ::absl::once_flag descriptor_table_stream_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_stream_2eproto = {
false,
false,
1299,
1369,
descriptor_table_protodef_stream_2eproto,
"stream.proto",
&descriptor_table_stream_2eproto_once,
descriptor_table_stream_2eproto_deps,
1,
10,
11,
schemas,
file_default_instances,
TableStruct_stream_2eproto::offsets,
@ -2946,6 +2979,226 @@ void RegResponce::InternalSwap(RegResponce* other) {
&descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once,
file_level_metadata_stream_2eproto[9]);
}
// ===================================================================
class ImgInfoResponce::_Internal {
public:
};
ImgInfoResponce::ImgInfoResponce(::google::protobuf::Arena* arena)
: ::google::protobuf::Message(arena) {
SharedCtor(arena);
// @@protoc_insertion_point(arena_constructor:stream.ImgInfoResponce)
}
ImgInfoResponce::ImgInfoResponce(const ImgInfoResponce& from)
: ::google::protobuf::Message(), _impl_(from._impl_) {
_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
from._internal_metadata_);
// @@protoc_insertion_point(copy_constructor:stream.ImgInfoResponce)
}
inline void ImgInfoResponce::SharedCtor(::_pb::Arena* arena) {
(void)arena;
new (&_impl_) Impl_{
decltype(_impl_.levelimage_){0u},
decltype(_impl_.width_){0},
decltype(_impl_.height_){0},
/*decltype(_impl_._cached_size_)*/ {},
};
}
ImgInfoResponce::~ImgInfoResponce() {
// @@protoc_insertion_point(destructor:stream.ImgInfoResponce)
_internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
SharedDtor();
}
inline void ImgInfoResponce::SharedDtor() {
ABSL_DCHECK(GetArenaForAllocation() == nullptr);
}
void ImgInfoResponce::SetCachedSize(int size) const {
_impl_._cached_size_.Set(size);
}
PROTOBUF_NOINLINE void ImgInfoResponce::Clear() {
// @@protoc_insertion_point(message_clear_start:stream.ImgInfoResponce)
::uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
::memset(&_impl_.levelimage_, 0, static_cast<::size_t>(
reinterpret_cast<char*>(&_impl_.height_) -
reinterpret_cast<char*>(&_impl_.levelimage_)) + sizeof(_impl_.height_));
_internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}
const char* ImgInfoResponce::_InternalParse(
const char* ptr, ::_pbi::ParseContext* ctx) {
ptr = ::_pbi::TcParser::ParseLoop(this, ptr, ctx, &_table_.header);
return ptr;
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2> ImgInfoResponce::_table_ = {
{
0, // no _has_bits_
0, // no _extensions_
3, 24, // max_field_number, fast_idx_mask
offsetof(decltype(_table_), field_lookup_table),
4294967288, // skipmap
offsetof(decltype(_table_), field_entries),
3, // num_field_entries
0, // num_aux_entries
offsetof(decltype(_table_), field_names), // no aux_entries
&_ImgInfoResponce_default_instance_._instance,
::_pbi::TcParser::GenericFallback, // fallback
}, {{
{::_pbi::TcParser::MiniParse, {}},
// uint32 levelImage = 1;
{::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.levelimage_), 63>(),
{8, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_)}},
// int32 width = 2;
{::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.width_), 63>(),
{16, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.width_)}},
// int32 height = 3;
{::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImgInfoResponce, _impl_.height_), 63>(),
{24, 63, 0, PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_)}},
}}, {{
65535, 65535
}}, {{
// uint32 levelImage = 1;
{PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_), 0, 0,
(0 | ::_fl::kFcSingular | ::_fl::kUInt32)},
// int32 width = 2;
{PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.width_), 0, 0,
(0 | ::_fl::kFcSingular | ::_fl::kInt32)},
// int32 height = 3;
{PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_), 0, 0,
(0 | ::_fl::kFcSingular | ::_fl::kInt32)},
}},
// no aux_entries
{{
}},
};
::uint8_t* ImgInfoResponce::_InternalSerialize(
::uint8_t* target,
::google::protobuf::io::EpsCopyOutputStream* stream) const {
// @@protoc_insertion_point(serialize_to_array_start:stream.ImgInfoResponce)
::uint32_t cached_has_bits = 0;
(void)cached_has_bits;
// uint32 levelImage = 1;
if (this->_internal_levelimage() != 0) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
1, this->_internal_levelimage(), target);
}
// int32 width = 2;
if (this->_internal_width() != 0) {
target = ::google::protobuf::internal::WireFormatLite::
WriteInt32ToArrayWithField<2>(
stream, this->_internal_width(), target);
}
// int32 height = 3;
if (this->_internal_height() != 0) {
target = ::google::protobuf::internal::WireFormatLite::
WriteInt32ToArrayWithField<3>(
stream, this->_internal_height(), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target =
::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
}
// @@protoc_insertion_point(serialize_to_array_end:stream.ImgInfoResponce)
return target;
}
::size_t ImgInfoResponce::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:stream.ImgInfoResponce)
::size_t total_size = 0;
::uint32_t cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
// uint32 levelImage = 1;
if (this->_internal_levelimage() != 0) {
total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
this->_internal_levelimage());
}
// int32 width = 2;
if (this->_internal_width() != 0) {
total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
this->_internal_width());
}
// int32 height = 3;
if (this->_internal_height() != 0) {
total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
this->_internal_height());
}
return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}
const ::google::protobuf::Message::ClassData ImgInfoResponce::_class_data_ = {
::google::protobuf::Message::CopyWithSourceCheck,
ImgInfoResponce::MergeImpl
};
const ::google::protobuf::Message::ClassData*ImgInfoResponce::GetClassData() const { return &_class_data_; }
void ImgInfoResponce::MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg) {
auto* const _this = static_cast<ImgInfoResponce*>(&to_msg);
auto& from = static_cast<const ImgInfoResponce&>(from_msg);
// @@protoc_insertion_point(class_specific_merge_from_start:stream.ImgInfoResponce)
ABSL_DCHECK_NE(&from, _this);
::uint32_t cached_has_bits = 0;
(void) cached_has_bits;
if (from._internal_levelimage() != 0) {
_this->_internal_set_levelimage(from._internal_levelimage());
}
if (from._internal_width() != 0) {
_this->_internal_set_width(from._internal_width());
}
if (from._internal_height() != 0) {
_this->_internal_set_height(from._internal_height());
}
_this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}
void ImgInfoResponce::CopyFrom(const ImgInfoResponce& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:stream.ImgInfoResponce)
if (&from == this) return;
Clear();
MergeFrom(from);
}
PROTOBUF_NOINLINE bool ImgInfoResponce::IsInitialized() const {
return true;
}
void ImgInfoResponce::InternalSwap(ImgInfoResponce* other) {
using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
::google::protobuf::internal::memswap<
PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.height_)
+ sizeof(ImgInfoResponce::_impl_.height_)
- PROTOBUF_FIELD_OFFSET(ImgInfoResponce, _impl_.levelimage_)>(
reinterpret_cast<char*>(&_impl_.levelimage_),
reinterpret_cast<char*>(&other->_impl_.levelimage_));
}
::google::protobuf::Metadata ImgInfoResponce::GetMetadata() const {
return ::_pbi::AssignDescriptors(
&descriptor_table_stream_2eproto_getter, &descriptor_table_stream_2eproto_once,
file_level_metadata_stream_2eproto[10]);
}
// @@protoc_insertion_point(namespace_scope)
} // namespace stream
namespace google {

View File

@ -59,6 +59,9 @@ namespace stream {
class ChainDataBlock;
struct ChainDataBlockDefaultTypeInternal;
extern ChainDataBlockDefaultTypeInternal _ChainDataBlock_default_instance_;
class ImgInfoResponce;
struct ImgInfoResponceDefaultTypeInternal;
extern ImgInfoResponceDefaultTypeInternal _ImgInfoResponce_default_instance_;
class LayerData;
struct LayerDataDefaultTypeInternal;
extern LayerDataDefaultTypeInternal _LayerData_default_instance_;
@ -2036,6 +2039,188 @@ class RegResponce final :
};
union { Impl_ _impl_; };
friend struct ::TableStruct_stream_2eproto;
};// -------------------------------------------------------------------
class ImgInfoResponce final :
public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:stream.ImgInfoResponce) */ {
public:
inline ImgInfoResponce() : ImgInfoResponce(nullptr) {}
~ImgInfoResponce() override;
template<typename = void>
explicit PROTOBUF_CONSTEXPR ImgInfoResponce(::google::protobuf::internal::ConstantInitialized);
ImgInfoResponce(const ImgInfoResponce& from);
ImgInfoResponce(ImgInfoResponce&& from) noexcept
: ImgInfoResponce() {
*this = ::std::move(from);
}
inline ImgInfoResponce& operator=(const ImgInfoResponce& from) {
CopyFrom(from);
return *this;
}
inline ImgInfoResponce& operator=(ImgInfoResponce&& from) noexcept {
if (this == &from) return *this;
if (GetOwningArena() == from.GetOwningArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
&& GetOwningArena() != nullptr
#endif // !PROTOBUF_FORCE_COPY_IN_MOVE
) {
InternalSwap(&from);
} else {
CopyFrom(from);
}
return *this;
}
inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
}
inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
}
static const ::google::protobuf::Descriptor* descriptor() {
return GetDescriptor();
}
static const ::google::protobuf::Descriptor* GetDescriptor() {
return default_instance().GetMetadata().descriptor;
}
static const ::google::protobuf::Reflection* GetReflection() {
return default_instance().GetMetadata().reflection;
}
static const ImgInfoResponce& default_instance() {
return *internal_default_instance();
}
static inline const ImgInfoResponce* internal_default_instance() {
return reinterpret_cast<const ImgInfoResponce*>(
&_ImgInfoResponce_default_instance_);
}
static constexpr int kIndexInFileMessages =
10;
friend void swap(ImgInfoResponce& a, ImgInfoResponce& b) {
a.Swap(&b);
}
inline void Swap(ImgInfoResponce* other) {
if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() != nullptr &&
GetOwningArena() == other->GetOwningArena()) {
#else // PROTOBUF_FORCE_COPY_IN_SWAP
if (GetOwningArena() == other->GetOwningArena()) {
#endif // !PROTOBUF_FORCE_COPY_IN_SWAP
InternalSwap(other);
} else {
::google::protobuf::internal::GenericSwap(this, other);
}
}
void UnsafeArenaSwap(ImgInfoResponce* other) {
if (other == this) return;
ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
InternalSwap(other);
}
// implements Message ----------------------------------------------
ImgInfoResponce* New(::google::protobuf::Arena* arena = nullptr) const final {
return CreateMaybeMessage<ImgInfoResponce>(arena);
}
using ::google::protobuf::Message::CopyFrom;
void CopyFrom(const ImgInfoResponce& from);
using ::google::protobuf::Message::MergeFrom;
void MergeFrom( const ImgInfoResponce& from) {
ImgInfoResponce::MergeImpl(*this, from);
}
private:
static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg);
public:
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
bool IsInitialized() const final;
::size_t ByteSizeLong() const final;
const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
::uint8_t* _InternalSerialize(
::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
int GetCachedSize() const final { return _impl_._cached_size_.Get(); }
private:
void SharedCtor(::google::protobuf::Arena* arena);
void SharedDtor();
void SetCachedSize(int size) const final;
void InternalSwap(ImgInfoResponce* other);
private:
friend class ::google::protobuf::internal::AnyMetadata;
static ::absl::string_view FullMessageName() {
return "stream.ImgInfoResponce";
}
protected:
explicit ImgInfoResponce(::google::protobuf::Arena* arena);
public:
static const ClassData _class_data_;
const ::google::protobuf::Message::ClassData*GetClassData() const final;
::google::protobuf::Metadata GetMetadata() const final;
// nested types ----------------------------------------------------
// accessors -------------------------------------------------------
enum : int {
kLevelImageFieldNumber = 1,
kWidthFieldNumber = 2,
kHeightFieldNumber = 3,
};
// uint32 levelImage = 1;
void clear_levelimage() ;
::uint32_t levelimage() const;
void set_levelimage(::uint32_t value);
private:
::uint32_t _internal_levelimage() const;
void _internal_set_levelimage(::uint32_t value);
public:
// int32 width = 2;
void clear_width() ;
::int32_t width() const;
void set_width(::int32_t value);
private:
::int32_t _internal_width() const;
void _internal_set_width(::int32_t value);
public:
// int32 height = 3;
void clear_height() ;
::int32_t height() const;
void set_height(::int32_t value);
private:
::int32_t _internal_height() const;
void _internal_set_height(::int32_t value);
public:
// @@protoc_insertion_point(class_scope:stream.ImgInfoResponce)
private:
class _Internal;
friend class ::google::protobuf::internal::TcParser;
static const ::google::protobuf::internal::TcParseTable<2, 3, 0, 0, 2> _table_;
template <typename T> friend class ::google::protobuf::Arena::InternalHelper;
typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_;
struct Impl_ {
::uint32_t levelimage_;
::int32_t width_;
::int32_t height_;
mutable ::google::protobuf::internal::CachedSize _cached_size_;
PROTOBUF_TSAN_DECLARE_MEMBER
};
union { Impl_ _impl_; };
friend struct ::TableStruct_stream_2eproto;
};
// ===================================================================
@ -3078,6 +3263,76 @@ inline void RegResponce::_internal_set_data(::int32_t value) {
_impl_.data_ = value;
}
// -------------------------------------------------------------------
// ImgInfoResponce
// uint32 levelImage = 1;
inline void ImgInfoResponce::clear_levelimage() {
_impl_.levelimage_ = 0u;
}
inline ::uint32_t ImgInfoResponce::levelimage() const {
// @@protoc_insertion_point(field_get:stream.ImgInfoResponce.levelImage)
return _internal_levelimage();
}
inline void ImgInfoResponce::set_levelimage(::uint32_t value) {
_internal_set_levelimage(value);
// @@protoc_insertion_point(field_set:stream.ImgInfoResponce.levelImage)
}
inline ::uint32_t ImgInfoResponce::_internal_levelimage() const {
PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
return _impl_.levelimage_;
}
inline void ImgInfoResponce::_internal_set_levelimage(::uint32_t value) {
PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
;
_impl_.levelimage_ = value;
}
// int32 width = 2;
inline void ImgInfoResponce::clear_width() {
_impl_.width_ = 0;
}
inline ::int32_t ImgInfoResponce::width() const {
// @@protoc_insertion_point(field_get:stream.ImgInfoResponce.width)
return _internal_width();
}
inline void ImgInfoResponce::set_width(::int32_t value) {
_internal_set_width(value);
// @@protoc_insertion_point(field_set:stream.ImgInfoResponce.width)
}
inline ::int32_t ImgInfoResponce::_internal_width() const {
PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
return _impl_.width_;
}
inline void ImgInfoResponce::_internal_set_width(::int32_t value) {
PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
;
_impl_.width_ = value;
}
// int32 height = 3;
inline void ImgInfoResponce::clear_height() {
_impl_.height_ = 0;
}
inline ::int32_t ImgInfoResponce::height() const {
// @@protoc_insertion_point(field_get:stream.ImgInfoResponce.height)
return _internal_height();
}
inline void ImgInfoResponce::set_height(::int32_t value) {
_internal_set_height(value);
// @@protoc_insertion_point(field_set:stream.ImgInfoResponce.height)
}
inline ::int32_t ImgInfoResponce::_internal_height() const {
PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
return _impl_.height_;
}
inline void ImgInfoResponce::_internal_set_height(::int32_t value) {
PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
;
_impl_.height_ = value;
}
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif // __GNUC__

View File

@ -103,6 +103,11 @@ message RegResponce{
int32 data = 1;
}
message ImgInfoResponce{
uint32 levelImage = 1;
int32 width = 2;
int32 height = 3;
}
service Stream {
rpc Simple(RequestInfo) returns (ResponseAny) {} //