1.SVdata不主动上报,但先缓存。且bonder1和bonder2分开变量。
| | |
| | | }; |
| | | masterListener.onSVDataReport = [&](void* pMaster, SERVO::CEquipment* pEquipment, const std::vector<CParam>& params) { |
| | | (void)pMaster; |
| | | // 客户要求暂时关掉SV上报,将来换另一种方式 |
| | | /* |
| | | // Keep SV variable cache updated, but do not actively send S6F11 reports. |
| | | const int eqId = pEquipment ? pEquipment->getID() : 0; |
| | | |
| | | auto sendSv = [&](const auto& vidMap, const char* evName) { |
| | | auto cacheSv = [&](const auto& vidMap) { |
| | | const size_t count = (std::min)(params.size(), vidMap.size()); |
| | | m_hsmsPassive.withVariableLock([&] { |
| | | if (pEquipment != nullptr) { |
| | |
| | | const std::string val = formatParamValue(params[idx]); |
| | | m_hsmsPassive.setVariableValue(std::to_string(vidMap[idx]).c_str(), val.c_str()); |
| | | } |
| | | m_hsmsPassive.requestEventReportSend(evName); |
| | | }); |
| | | }; |
| | | |
| | | if (eqId == EQ_ID_Bonder1 || eqId == EQ_ID_Bonder2) { |
| | | if (eqId == EQ_ID_Bonder1) { |
| | | static constexpr std::array<int, 19> vids = { |
| | | 6000,6001,6002,6003,6004,6005,6006,6007,6008,6009, |
| | | 6010,6011,6012,6013,6014,6015,6016,6017,6018 |
| | | }; |
| | | sendSv(vids, "BonderSVData"); |
| | | cacheSv(vids); |
| | | } |
| | | else if (eqId == EQ_ID_Bonder2) { |
| | | static constexpr std::array<int, 19> vids = { |
| | | 6020,6021,6022,6023,6024,6025,6026,6027,6028,6029, |
| | | 6030,6031,6032,6033,6034,6035,6036,6037,6038 |
| | | }; |
| | | cacheSv(vids); |
| | | } |
| | | else if (eqId == EQ_ID_VACUUMBAKE) { |
| | | static constexpr std::array<int, 18> vids = { |
| | | 6200,6201,6202,6203,6204,6205,6206,6207,6208, |
| | | 6209,6210,6211,6212,6213,6214,6215,6216,6217 |
| | | }; |
| | | sendSv(vids, "VacuumBakeSVData"); |
| | | cacheSv(vids); |
| | | } |
| | | else if (eqId == EQ_ID_BAKE_COOLING) { |
| | | static constexpr std::array<int, 20> vids = { |
| | | 6400,6401,6402,6403,6404,6405,6406,6407,6408,6409, |
| | | 6410,6411,6412,6413,6414,6415,6416,6417,6418,6419 |
| | | }; |
| | | sendSv(vids, "BakeCoolingSVData"); |
| | | cacheSv(vids); |
| | | } |
| | | else if (eqId == EQ_ID_MEASUREMENT) { |
| | | static constexpr std::array<int, 2> vids = { 6600, 6601 }; |
| | | sendSv(vids, "MeasurementSVData"); |
| | | cacheSv(vids); |
| | | } |
| | | */ |
| | | }; |
| | | masterListener.onProcessDataReport = [&](void* pMaster, SERVO::CEquipment* pEquipment, const std::vector<CParam>& params) { |
| | | (void)pMaster; |
| | |
| | | 50021,GlassReceivedJob,Glass received into equipment slot,(50021) |
| | | 50022,GlassSentOutJob,Glass sent out from equipment slot,(50022) |
| | | 60000,BonderSVData,,(60000) |
| | | 60001,Bonder2SVData,,(60001) |
| | | 61000,BonderProcessData,,(61000) |
| | | 62000,VacuumBakeSVData,,(62000) |
| | | 63000,VacuumBakeProcessData,,(63000) |
| | |
| | | 6016,Bonder_SV_LowerTemp6,A20,Bonder SV: 下腔温度6
|
| | | 6017,Bonder_SV_HeatingRemaining,A20,Bonder SV: 加热剩余时间
|
| | | 6018,Bonder_SV_PressingRemaining,A20,Bonder SV: 压合剩余时间
|
| | | 6020,Bonder2_SV_ProcessStep,A20,Bonder2 SV: 工艺运行步骤 |
| | | 6021,Bonder2_SV_BladderPressure,A20,Bonder2 SV: 气囊压力当前 |
| | | 6022,Bonder2_SV_UpperChamberPressure,A20,Bonder2 SV: 上腔压力合计 |
| | | 6023,Bonder2_SV_PipeVacuumGauge,A20,Bonder2 SV: 管道真空规值 |
| | | 6024,Bonder2_SV_ChamberVacuumGauge,A20,Bonder2 SV: 腔体真空规值 |
| | | 6025,Bonder2_SV_UpperTemp1,A20,Bonder2 SV: 上腔温度1 |
| | | 6026,Bonder2_SV_UpperTemp2,A20,Bonder2 SV: 上腔温度2 |
| | | 6027,Bonder2_SV_UpperTemp3,A20,Bonder2 SV: 上腔温度3 |
| | | 6028,Bonder2_SV_UpperTemp4,A20,Bonder2 SV: 上腔温度4 |
| | | 6029,Bonder2_SV_UpperTemp5,A20,Bonder2 SV: 上腔温度5 |
| | | 6030,Bonder2_SV_UpperTemp6,A20,Bonder2 SV: 上腔温度6 |
| | | 6031,Bonder2_SV_LowerTemp1,A20,Bonder2 SV: 下腔温度1 |
| | | 6032,Bonder2_SV_LowerTemp2,A20,Bonder2 SV: 下腔温度2 |
| | | 6033,Bonder2_SV_LowerTemp3,A20,Bonder2 SV: 下腔温度3 |
| | | 6034,Bonder2_SV_LowerTemp4,A20,Bonder2 SV: 下腔温度4 |
| | | 6035,Bonder2_SV_LowerTemp5,A20,Bonder2 SV: 下腔温度5 |
| | | 6036,Bonder2_SV_LowerTemp6,A20,Bonder2 SV: 下腔温度6 |
| | | 6037,Bonder2_SV_HeatingRemaining,A20,Bonder2 SV: 加热剩余时间 |
| | | 6038,Bonder2_SV_PressingRemaining,A20,Bonder2 SV: 压合剩余时间 |
| | | 6100,Bonder_PD_AlignDelay,A20,Bonder PD: 对位延时
|
| | | 6101,Bonder_PD_DwellTime,A20,Bonder PD: 保压时间
|
| | | 6102,Bonder_PD_BreakVacuumDelay,A20,Bonder PD: 破真空延时
|
| | |
| | | 50021,(5018,5019,5028,5029,5030) |
| | | 50022,(5018,5019,5025,5026,5027) |
| | | 60000,(500,5018,5019,6000,6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016,6017,6018) |
| | | 60001,(500,5018,5019,6020,6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032,6033,6034,6035,6036,6037,6038) |
| | | 61000,(500,5018,5019,6100,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112,6113,6114,6115,6116,6117,6118,6119,6120,6121) |
| | | 62000,(500,5018,5019,6200,6201,6202,6203,6204,6205,6206,6207,6208,6209,6210,6211,6212,6213,6214,6215,6216,6217) |
| | | 63000,(500,5018,5019,6300,6301,6302,6303,6304) |