/* */ #pragma once #define TYPECOIL 0x00 #define TYPEDATA 0x80 #define TOTAL_WDFS (16) //Total DF Count #define TOTAL_CurVAL (16) // //extern unsigned short X[256]; //extern unsigned short Y[256]; //extern unsigned short R[256]; #define TOTALTIMERS (64) #define TICK_OF_MS (10) //1ms #define TICK_OF_RS (100) //10mS #define TICK_OF_XS (1000) //100mS #define TICK_OF_YS (10000) //1S enum enKLCoilTypes { KLCoilTypeX = 0 | TYPECOIL, //X Input KLCoilTypeY = 1 | TYPECOIL, //Y Output KLCoilTypeR = 2 | TYPECOIL, //R register KLCoilTypeLX = 3 | TYPECOIL, //Link register KLCoilTypeLY = 4 | TYPECOIL, //Link register KLCoilTypeT = 5 | TYPECOIL, //Timer KLCoilTypeC = 6 | TYPECOIL, //Counter KLCoilTypeLR = 7 | TYPECOIL, //Link register KLCoilTypeSR = 8 | TYPECOIL, //Link register }; enum enKLDataTypes { KLDataTypeDEC = 0 | TYPEDATA, KLDataTypeHEX = 1 | TYPEDATA, KLDataTypeFloat = 2 | TYPEDATA, KLDataTypeWX = 3 | TYPEDATA, KLDataTypeWY = 4 | TYPEDATA, KLDataTypeWR = 5 | TYPEDATA, KLDataTypeWLX = 6 | TYPEDATA, KLDataTypeWLY = 7 | TYPEDATA, KLDataTypeDT = 8 | TYPEDATA, KLDataTypeSDT = 9 | TYPEDATA, KLDataTypeWSR = 10 | TYPEDATA, KLDataTypeSV = 11 | TYPEDATA, KLDataTypeEV = 12 | TYPEDATA, KLDataTypeLD = 13 | TYPEDATA, KLDataSysCfg = 25 | TYPEDATA, KLDataTypeFlash = 33 | TYPEDATA, KLDataTypeTest = 254 | TYPEDATA, }; enum enKLDataCounts { KLDataDTCount = 256, KLDataSDTCount = 256, KLDataWXCount = 16, KLDataWYCount = 16, KLDataWRCount = 16, KLDataLDCount = 64, KLDataWLCount = 8, KLCoilXCount = KLDataWXCount * 16, KLCoilYCount = KLDataWYCount * 16, KLCoilRCount = KLDataWRCount * 16, KLCoilTCount = 64, KLCoilCCount = KLCoilTCount, KLDataSVCount = KLCoilTCount, KLDataEVCount = KLCoilTCount, KLCoilLXCount = 128, KLCoilLYCount = 128, KLCoilLRCount = 128, KLCoilSRCount = 128, }; typedef struct tagTimer { unsigned int LastActTime; union { unsigned short StatByte; struct { unsigned short nScale : 2; //Time Scale, 0:1ms 1:10ms 2:100ms 3:1S unsigned short nType : 1; //0 : timer 1 : counter ; unsigned short nDir : 1; //0 : count down. 1 count up; unsigned short nInited : 1; unsigned short bSet : 1; unsigned short bTon : 1; }; // stTimerStat Stat; }; }stTimer; typedef struct tagKMem { unsigned short WDFs[TOTAL_WDFS]; unsigned char CurVALs[TOTAL_CurVAL]; unsigned char CurVAL; stTimer Timers[TOTALTIMERS]; unsigned short WX[KLDataWXCount]; // unsigned short WY[KLDataWYCount]; // unsigned short WR[KLDataWRCount]; unsigned short WT[16]; unsigned short WC[16]; unsigned short EV[KLDataEVCount]; unsigned short SV[KLDataSVCount]; unsigned short WLX[16]; // unsigned short WLY[16]; unsigned short WLR[16]; unsigned short WSR[16]; unsigned short DT[KLDataDTCount]; union { unsigned int SDD[KLDataSDTCount / 2]; unsigned short SDT[KLDataSDTCount]; unsigned char SDB[KLDataSDTCount * 2]; struct { unsigned int EffJumperSW; unsigned int CurJumperSW; unsigned int haltick; unsigned int nRunCount; unsigned int RunStat; unsigned int ErrStat; unsigned int PwrOnCount; unsigned int ThisRunTime; unsigned int TotalRunTime; unsigned int CurTimeSec; unsigned int PwrFailCount; unsigned int LastPwrFailTime; unsigned int LastScanTime; unsigned int ScanTimeuS; unsigned int MinScanTimeuS; unsigned int MaxScanTimeuS; unsigned int nEventCount; unsigned int nEventMinIndex; unsigned int nEventMaxIndex; unsigned int Rev2[5]; unsigned short ADCValues[20]; }; }; int Reserverd5[1024]; }stKMem; enum enOpType { OP_NONE = 0, OP_NOP = 0, OP_ST = 1, // OP_ST_ = 2, // OP_AN = 3, // OP_AN_ = 4, // OP_OR = 5, // OP_OR_ = 6, // OP_NOT = 7, // OP_ANS = 8, // OP_ORS = 9, // OP_PSHS = 10, // OP_RDS = 11, // OP_POPS = 12, // OP_OUT = 16, // OP_SET = 17, // OP_RESET = 18, // OP_DF = 19, // OP_DF_ = 20, // OP_ST_EQ, // OP_ST_LT, // OP_ST_GT, // OP_ST_LE, // OP_ST_GE, // OP_ST_NE, // OP_AN_EQ, // OP_AN_LT, // OP_AN_GT, OP_AN_LE, OP_AN_GE, OP_AN_NE, OP_OR_EQ, OP_OR_LT, OP_OR_GT, OP_OR_LE, OP_OR_GE, OP_OR_NE, OP_MV = 51, OP_INC = 52, OP_ADD2 = 53, OP_ADD3 = 54, OP_DEC = 55, OP_SUB2 = 56, OP_SUB3 = 57, OP_MUL = 58, OP_DIV = 59, OP_BKMV = 60, OP_COPY = 61, OP_CLR = 62, OP_BRK, OP_PAUSE, OP_JP, OP_CALL, OP_TML = 0xC8, // OP_TMR = 0xDC, // OP_TMX = 0xDD, // OP_TMY = 0xFA, // }; typedef struct stBinProg1 { unsigned char nOp; unsigned char nParamType; unsigned short nParamAddr; }stBinProg1; typedef struct stBinProg15 { //¶¨Ê±Æ÷ //µ¥²ÎÊý¸ß¼¶Ö¸Áî unsigned char nOp; unsigned char nOpNum; unsigned short nParamAddr1; unsigned char nParamType1; unsigned char resvr1; unsigned short resvr2; }stBinProg15; typedef struct stBinProg2 { //±È½ÏÖ¸Áî //Ë«²ÎÊý¸ß¼¶Ö¸Áî unsigned char nOp; unsigned char nOpNum; unsigned short nParamAddr1; unsigned char nParamType1; unsigned char nParamType2; unsigned short nParamAddr2; }stBinProg2; typedef struct stBinProg3 { //Èý²ÎÊý¸ß¼¶Ö¸Áî unsigned char nOp; unsigned char nOpNum; unsigned short nParamAddr1; unsigned char nParamType1; unsigned char nParamType2; unsigned short nParamAddr2; unsigned char resvr1; unsigned char nParamType3; unsigned short nParamAddr3; }stBinProg3;