You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
4.4 KiB
C++
152 lines
4.4 KiB
C++
// EquipState.h: interface for the CEquipState class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
#pragma once
|
|
|
|
#include <array>
|
|
#include <string>
|
|
|
|
#include "TimeEquipSubState.h"
|
|
|
|
/*
|
|
#ifdef BUILD_MCCTRDLL
|
|
#define MCCTRDLLCLASS __declspec(dllexport)
|
|
#else
|
|
#define MCCTRDLLCLASS __declspec(dllimport)
|
|
#endif
|
|
|
|
class MCCTRDLLCLASS CEquipState*/
|
|
class CEquipState
|
|
{
|
|
public:
|
|
// default constructor
|
|
explicit CEquipState(int iNoOfEquipState);
|
|
|
|
// default Destructor
|
|
virtual ~CEquipState();
|
|
|
|
// read all equipment SubState time span from file
|
|
virtual void ReadTimeSpanFromFile();
|
|
|
|
// get equipment substate time
|
|
virtual LONGLONG GetEquipSubStateTime(int iEvt);
|
|
|
|
// save equipment substate time that is clocking to file
|
|
virtual void SaveTimeInfo();
|
|
|
|
// check is equipment Substate timer started
|
|
virtual bool IsTimerStarted(int iEvt);
|
|
|
|
enum
|
|
{
|
|
NON_SCHEDULE_TIME,
|
|
ENGINEERING_TIME,
|
|
PRODUCTIVE_TIME,
|
|
STANDBY_TIME,
|
|
UNSCHEDULED_DOWNTIME,
|
|
SCHEDULED_DOWNTIME,
|
|
MANUFACTURING_TIME,
|
|
UPTIME,
|
|
DOWNTIME,
|
|
OPERATIONS_TIME,
|
|
TOTAL_TIME,
|
|
MAX_EQUIP_STATE,
|
|
|
|
MAX_EQUIP_SUB_STATE = 6,
|
|
};
|
|
|
|
enum
|
|
{
|
|
UNWORK_SHIFT_DAYS_EVT,
|
|
INSTALLATION_MODIFICATION_REBULID_UPGRADE_EVT,
|
|
OFFLINE_TRAINING_EVT,
|
|
SHUTDOWN_START_UP_EVT,
|
|
PROCESS_EXPERIMENTS_EVT,
|
|
EQUIP_EXPERIMENTS_EVT,
|
|
SOFTWARE_QUALIFICATION_EVT,
|
|
REGULAR_PRODUCTION_EVT,
|
|
WORK_FOR_3RD_PARTY_EVT,
|
|
REWORK_EVT,
|
|
ENGINEERING_RUNS_EVT,
|
|
NO_OPERATOR_EVT,
|
|
NO_PRODUCT_EVT,
|
|
NO_SUPPORT_TOOL_EVT,
|
|
STOP_MACHINE_EVT,
|
|
UNSCHEDULED_MAINT_DELAY_EVT,
|
|
JAM_EVT,
|
|
UNSCHEDULED_CHANGE_OF_CONSUMABLES_CHEMICALS_EVT,
|
|
OUT_OF_SPEC_INPUT_EVT,
|
|
UNSCHEDULED_FACILITIES_RELATED_EVT,
|
|
SCHEDULED_MAINT_DELAY_EVT,
|
|
PRODUCTION_TEST_EVT,
|
|
PREVENTIVE_MAINT_EVT,
|
|
SCHEDULED_CHANGE_OF_CONSUMABLES_CHEMICALS_EVT,
|
|
SETUP_EVT,
|
|
SCHEDULED_FACILITIES_RELATED_EVT,
|
|
MAX_EQUIPMENT_SUBSTATE,
|
|
LOT_CLOSED_EVT,
|
|
LOT_OPEN_EVT,
|
|
STOP_ALL_TIMER_EVT,
|
|
RESET_ALL_TIMER_EVT,
|
|
START_ALL_TIMER_EVT, // Possible to start all timer? need to have this event?
|
|
};
|
|
|
|
static std::string m_csKeyName[MAX_EQUIPMENT_SUBSTATE]; // key name of debug info file
|
|
static const char* sSectionName[MAX_EQUIP_STATE]; // Section name of debug info file
|
|
|
|
protected:
|
|
// set equipment state time
|
|
virtual void SetEquipTime(int iEquipSubStateNo, int iState);
|
|
|
|
// get total Equipment time
|
|
virtual LONGLONG GetTotalEquipTime();
|
|
|
|
// set all equipment State
|
|
virtual void SetAllEquipState(int iEvt, int iState);
|
|
|
|
// write all equipment SubState time span To File
|
|
virtual void WriteAllEquipSubStateTimeSpanToFile(std::string csFileName = RUNTIME_INI,
|
|
std::string csSectionName = "SEMIE10");
|
|
|
|
// write individual equipment SubState time span to file
|
|
virtual void WriteTimeSpanToFile(int iEquipSubStateNo, std::string csFileName = RUNTIME_INI,
|
|
std::string csSectionName = "SEMIE10");
|
|
|
|
// read individual equipment SubState time span from file
|
|
virtual void ReadTimeSpanFromFile(int iEquipSubStateNo, std::string csFileName = RUNTIME_INI,
|
|
std::string csSectionName = "SEMIE10");
|
|
|
|
// Check open lot event
|
|
virtual void CheckOpenLotEvt(int iEvt);
|
|
|
|
// Check close lot event
|
|
virtual void CheckCloseLotEvt(int iEvt);
|
|
|
|
// set equipment SubState time
|
|
virtual void SetEquipSubStateTime(int iEquipSubStateNo, LONGLONG lTimeSpan);
|
|
|
|
// add equipment SubState time
|
|
virtual void AddEquipSubStateTime(int iEquipSubStateNo, LONGLONG lTimeSpan);
|
|
|
|
// int *m_iEvt;
|
|
|
|
// CTimeEquipSubState *m_ctesEquipSubState;
|
|
|
|
std::array<int, MAX_EQUIP_SUB_STATE> m_iEvt;
|
|
|
|
std::array < CTimeEquipSubState, MAX_EQUIP_SUB_STATE> m_ctesEquipSubState;
|
|
|
|
private:
|
|
// prevent accidental copy
|
|
CEquipState(const CEquipState& rhs);
|
|
|
|
int m_iNoOfEquipSubState; // num of equipment state
|
|
// int m_iEquipSubStateNo; // equipment state number
|
|
|
|
// Equipment substate time has been written to file before
|
|
bool m_bOpenLot;
|
|
|
|
// to init section name and keyname
|
|
static void iniSectionAndKeyName();
|
|
};
|