1.CIM Message set(下发CIM消息到PLC),测试成功
2.CIM Message clear(清除PLC中的指定CIM消息), 测试成功
3.CIM Message Confirm(PLC确认CIM消息事件检测和获取),测试成功
| | |
| | | m_nValue = (unsigned int)CToolUnits::toInt32(&szBuffer[0]); |
| | | } |
| | | |
| | | LOGI("<CEqReadIntStep>Value(%s) Changed<Dev:%d, Value:%d>\n", |
| | | LOGI("<CEqReadIntStep-%s>Value Changed<Dev:%d, Value:%d>\n", |
| | | m_strName.c_str(), m_nValueDev, m_nValue); |
| | | |
| | | return 0; |
| | |
| | | // CIM Mode |
| | | CHECK_WRITE_STEP_SIGNAL(0x350, pszData, size); |
| | | |
| | | // CIM Message Set |
| | | CHECK_WRITE_STEP_SIGNAL(0x351, pszData, size); |
| | | |
| | | // CIM Message Clear |
| | | CHECK_WRITE_STEP_SIGNAL(0x352, pszData, size); |
| | | |
| | | // CIM Message Confirm |
| | | CHECK_READ_STEP_SIGNAL(0x369, pszData, size); |
| | | |
| | | |
| | | // EQ Mode |
| | | CHECK_WRITE_STEP_SIGNAL(0x355, pszData, size); |
| | | |
| | |
| | | } |
| | | |
| | | return 1; |
| | | } |
| | | else if (isCimMessageConfirmStep(pStep)) { |
| | | SERVO::CEqReadIntStep* pEqReadIntStep = (SERVO::CEqReadIntStep*)pStep; |
| | | int value = pEqReadIntStep->getValue(); |
| | | // 此处将value按高低位拆分为message id和panel no. |
| | | // 可能还需要上报到cim |
| | | short msgId, panelNo; |
| | | msgId = (value & 0xffff0000 >> 16); |
| | | panelNo = (value & 0xffff); |
| | | LOGI("Cim Message Confirm(msgID = %d, panel no.=%d).", msgId, panelNo); |
| | | } |
| | | } |
| | | |
| | |
| | | && pStep->getName().find("Cassette") != std::string::npos; |
| | | } |
| | | |
| | | bool CEquipment::isCimMessageConfirmStep(SERVO::CStep* pStep) |
| | | { |
| | | return pStep->getName().compare(STEP_EQ_CIM_MESSAGE_CONFIRM) == 0; |
| | | } |
| | | |
| | | int CEquipment::setEqMode(short mode) |
| | | { |
| | | SERVO::CEqModeChangeStep* pStep = (SERVO::CEqModeChangeStep*)getStepWithName(STEP_EQ_MODE_CHANGE); |
| | |
| | | else |
| | | return pStep->cimOff(); |
| | | } |
| | | |
| | | int CEquipment::setCimMessage(const char* pszMessage, short id, short nTouchPanelNo) |
| | | { |
| | | SERVO::CEqCimMessageCmdStep* pStep = (SERVO::CEqCimMessageCmdStep*)getStepWithName(STEP_CIM_MESSAGE_CMD); |
| | | if (pStep == nullptr) { |
| | | return -1; |
| | | } |
| | | |
| | | return pStep->setCimMessage(pszMessage, id, nTouchPanelNo); |
| | | } |
| | | |
| | | int CEquipment::clearCimMessage(short id, short nTouchPanelNo) |
| | | { |
| | | SERVO::CEqCimMessageClearStep* pStep = (SERVO::CEqCimMessageClearStep*)getStepWithName(STEP_CIM_MESSAGE_CLEAR); |
| | | if (pStep == nullptr) { |
| | | return -1; |
| | | } |
| | | |
| | | return pStep->clearCimMessage(id, nTouchPanelNo); |
| | | } |
| | | |
| | | int CEquipment::setDateTime(short year, short month, short day, short hour, short minute, short second) |
| | | { |
| | | SERVO::CEqDateTimeSetCmdStep* pStep = (SERVO::CEqDateTimeSetCmdStep*)getStepWithName(STEP_DATETIME_SET_CMD); |
| | | if (pStep == nullptr) { |
| | | return -1; |
| | | } |
| | | |
| | | return pStep->setDateTime(year, month, day, hour, minute, second); |
| | | } |
| | | } |
| | |
| | | BOOL removeClass(CGlass* pGlass); |
| | | bool isAlarmStep(SERVO::CStep* pStep); |
| | | bool isCassetteTransferStateStep(SERVO::CStep* pStep); |
| | | bool isCimMessageConfirmStep(SERVO::CStep* pStep); |
| | | int setEqMode(short mode); |
| | | int setCimMode(BOOL bOn); |
| | | int setCimMessage(const char* pszMessage, short id, short nTouchPanelNo); |
| | | int clearCimMessage(short id, short nTouchPanelNo); |
| | | int setDateTime(short year, short month, short day, short hour, short minute, short second); |
| | | |
| | | // 以下为从CC-Link读取到的Bit标志位检测函数 |
| | | public: |
| | |
| | | } |
| | | } |
| | | { |
| | | // CIM Message Confirm |
| | | CEqReadIntStep* pStep = new CEqReadIntStep(__INT32, index == 0 ? 0x6a8f : 0x8a8f); |
| | | pStep->setName(STEP_EQ_CIM_MESSAGE_CONFIRM); |
| | | pStep->setWriteSignalDev(index == 0 ? 0x339 : 0x639); |
| | | if (pEquipment->addStep(0x369, pStep) != 0) { |
| | | delete pStep; |
| | | } |
| | | } |
| | | { |
| | | CEqCimMessageClearStep* pStep = new CEqCimMessageClearStep(); |
| | | pStep->setName(STEP_CIM_MESSAGE_CLEAR); |
| | | pStep->setWriteSignalDev(index == 0 ? 0x352 : 0x652); |
| | |
| | | } |
| | | else if (nCmd == ID_EQSGRAPHITEM_TEST3) { |
| | | SERVO::CEquipment* pEquipment = (SERVO::CEquipment*)pItem->pData; |
| | | |
| | | // 测试下发Cim Message |
| | | /* |
| | | if (pEquipment->getID() == EQ_ID_Bonder1 |
| | | || pEquipment->getID() == EQ_ID_Bonder2) { |
| | | static int msgId = 0; msgId++; |
| | | if (msgId % 2 == 0) { |
| | | pEquipment->setCimMessage("Hello!", msgId, 1); |
| | | } |
| | | else { |
| | | pEquipment->setCimMessage("ABC0123456789", msgId, 2); |
| | | } |
| | | } |
| | | */ |
| | | // 测试清除Cim Message |
| | | /* |
| | | if (pEquipment->getID() == EQ_ID_Bonder1 |
| | | || pEquipment->getID() == EQ_ID_Bonder2) { |
| | | static int msgId = 0; msgId++; |
| | | if (msgId % 2 == 0) { |
| | | pEquipment->clearCimMessage(msgId, 1); |
| | | } |
| | | else { |
| | | pEquipment->clearCimMessage(msgId, 2); |
| | | } |
| | | } |
| | | */ |
| | | |
| | | // 测试设置时间 |
| | | if (pEquipment->getID() == EQ_ID_Bonder1 |
| | | || pEquipment->getID() == EQ_ID_Bonder2) { |
| | | CTime time = CTime::GetCurrentTime(); |
| | | pEquipment->setDateTime((short)time.GetYear(), |
| | | (short)time.GetMonth(), |
| | | (short)time.GetDay(), |
| | | (short)time.GetHour(), |
| | | (short)time.GetMinute(), |
| | | (short)time.GetSecond()); |
| | | } |
| | | |
| | | |
| | | |
| | | // 测试设置cim mode |
| | | /* |
| | | if (pEquipment->getID() == EQ_ID_Bonder1 |
| | | || pEquipment->getID() == EQ_ID_Bonder2) { |
| | | static int ii = 0; ii++; |
| | | pEquipment->setCimMode(ii % 2 == 0); |
| | | } |
| | | |
| | | */ |
| | | /* |
| | | SERVO::CEquipment* pEquipment = (SERVO::CEquipment*)pItem->pData; |
| | | if (pEquipment->getID() == EQ_ID_Bonder1 |
| | |
| | | #define STEP_EQ_P2_CASSETTE_CTRL_CMD _T("EQPort2CassetteCtrlCmd") |
| | | #define STEP_EQ_P3_CASSETTE_CTRL_CMD _T("EQPort3CassetteCtrlCmd") |
| | | #define STEP_EQ_P4_CASSETTE_CTRL_CMD _T("EQPort4CassetteCtrlCmd") |
| | | #define STEP_EQ_CIM_MESSAGE_CONFIRM _T("EQCimMessageConfirm") |
| | | |
| | | |
| | | /* Step ID */ |