| | |
| | | #define LoHofB(x) ((x)&0xf)
|
| | | #define HiHofB(x) (((x)>>4)&0xf)
|
| | |
|
| | | // 信息块
|
| | | // 工厂参数配置块
|
| | | // 用户/系统参数配置块
|
| | | // 信息块
|
| | | // 工厂参数配置块
|
| | | // 用户/系统参数配置块
|
| | | //
|
| | | //
|
| | |
|
| | | typedef struct tagInfoBlock
|
| | | typedef struct tagInfoBlock // 20 bytes
|
| | | {
|
| | | USHORT nDeviceType;
|
| | | USHORT ProgVer;
|
| | | USHORT KLinkVer;
|
| | | USHORT nCapacity;
|
| | | // USHORT nBlockLenth;
|
| | | USHORT nDeviceTypeVer; //device type x.y
|
| | | // UCHAR nDevierVer;
|
| | | USHORT ProgVer; //prog version x.y
|
| | | USHORT KLinkVer; //x.y
|
| | | USHORT KBusVer; //x.y
|
| | | |
| | | UCHAR nCapacity1; // ? K
|
| | | UCHAR nCapacity2; // ? k
|
| | | |
| | | UCHAR nDInput;
|
| | | UCHAR nDOutput;
|
| | | UCHAR nAInput;
|
| | |
| | | UCHAR nHOutput;
|
| | | UCHAR nExt1;
|
| | | UCHAR nExt2;
|
| | | UCHAR nLogSize;
|
| | | UCHAR nPorts;
|
| | | UCHAR nManSize;
|
| | | UCHAR nAbility;
|
| | | UCHAR nSwitchBits;
|
| | |
|
| | | }stKMInfoBlock;
|
| | |
|
| | | /*
|
| | | typedef struct tagFactData
|
| | | {
|
| | | USHORT Sign; //
|
| | | USHORT nLength; //
|
| | | UCHAR LOT_NO[16]; //
|
| | | UINT MANDate; //
|
| | | UINT SN; //
|
| | | UINT REV1[24]; //
|
| | | USHORT rev9;
|
| | | USHORT CRC;
|
| | | |
| | | }stFactData;
|
| | | */
|
| | | typedef struct tagFactoryData //工厂量产参数,数据
|
| | | {
|
| | | USHORT Sign1;
|
| | | USHORT Seq1;
|
| | | USHORT nModelNo;
|
| | | USHORT nModelVer;
|
| | | UINT nLotNo;
|
| | | UINT nProductDateTime;
|
| | | UINT SN1;
|
| | | UINT nProtocalVer;
|
| | | UINT nDefaultFunc;
|
| | | UCHAR ModelStr[16];
|
| | | UCHAR LOT_NO[16]; //
|
| | | UCHAR SNStr[16];
|
| | | unsigned short CRC1;
|
| | | unsigned short EndSign1;
|
| | | |
| | | }stFactoryData,* pFactoryData;
|
| | |
|
| | |
|
| | | enum enStoreCfg
|
| | | {
|
| | |
| | | START_SIGN = 0x55aa,
|
| | | END_SIGN = 0x5aa5,
|
| | | };
|
| | |
|
| | |
|
| | | enum enInputFilter
|
| | | {
|
| | |
| | | Output_Set_1 = 2,
|
| | | };
|
| | |
|
| | | typedef struct tagPortStatus
|
| | | {
|
| | | USHORT porttype; //232,485,net , wireless// KLink, KBus, KNet, KWireless
|
| | | UCHAR StationID;
|
| | | UCHAR MaxStations;
|
| | | UCHAR CurStations;
|
| | | UCHAR Running;
|
| | | UCHAR Health;
|
| | | }stPortStatus,*pPortStatus;
|
| | |
|
| | | enum enPortType
|
| | | {
|
| | | PortType_Com = 0, //计算机通讯
|
| | | PortType_Gen = 1, //通用通讯,自由口
|
| | | PortType_KLink = 2, //KlinkͨѶ
|
| | | PortType_KBus = 3, //KBusͨѶ
|
| | | PortType_KNet = 4, // KNetͨѶ
|
| | | PortType_ModbusRTU = 5, //Modbus RTU ͨѶ
|
| | | PortType_Default = 0, //默认
|
| | | PortType_KLink = 1, //KLink通讯
|
| | | PortType_KBus = 2, //KBus通讯
|
| | | PortType_KNet = 3, // KNet通讯
|
| | | PortType_ModbusRTU = 4, //Modbus RTU 通讯
|
| | | PortType_Com = 5, // 计算机通讯
|
| | | PortType_Gen = 6, //通用通讯,自由口
|
| | | };
|
| | |
|
| | | //每个模块有 0/1/2/3/4/5/6/7/8个 通讯port
|
| | | //不限于 UART, 网口,无线,单总线等,都是port
|
| | | //甚至可以有虚拟的port
|
| | |
|
| | | typedef struct tagPortStat
|
| | | {
|
| | | UCHAR nWorking; //工作中
|
| | | UCHAR nStation; //自己站号
|
| | | UCHAR bBus; //总线?,,全双工?
|
| | | UCHAR bMaster; //主机
|
| | | UCHAR PortType; //端口工作模式
|
| | | UCHAR nDevices; //连接的设备数量//不包括自己 //device list;
|
| | | |
| | | }stPortStat,*pPortStat;
|
| | |
|
| | | enum enKeventType
|
| | | {
|
| | | EventTypeNone = 0,
|
| | | EventTypePowerUp = 1,
|
| | | EventTypePowerDown = 2,
|
| | | EventTypePowerRecover = 3,
|
| | | EventTypeConnected = 4,
|
| | | EventTypeLostCon = 5,
|
| | | EventTypeSetTime = 6,
|
| | | EventTypeSysCfg = 7,
|
| | | EventTypeProg = 8,
|
| | | EventTypeForce = 9,
|
| | | EventTypeClearEvent = 10,
|
| | | |
| | | |
| | | EventType
|
| | | };
|
| | |
|
| | | typedef struct tagKMFuncParam
|
| | | {
|
| | | USHORT EnablePLC:1; //使能内部PLC功能
|
| | | USHORT RunMode; //工作模式
|
| | | }stKMFuncParam;
|
| | |
|
| | | // 输入输出地址映射
|
| | |
|
| | | typedef struct tagComPortParam //4 Bytes
|
| | | {
|
| | | USHORT WorkMode; /* 0-5=Default,KLink,KBus,KNet,RTU,Com,Gen */
|
| | | USHORT Station; /* 0=From jumper */
|
| | | USHORT WorkMode; /* 0-5=Com,Gen,KLink,KBus,KNet,RTU */
|
| | | USHORT BaudRate; /* =*100 Baudrate at which running */
|
| | | // USHORT PortType:4; /* 0-5=Com,Gen,KLink,KBus,KNet,RTU */
|
| | | USHORT ByteSize:2; /* 0-1=Number of bits/byte, 7-8 */
|
| | | USHORT Parity:4; /* 0-4=None,Odd,Even,Mark,Space */
|
| | | USHORT StopBits:2; /* 0,1,2 = 1, 1.5, 2 */
|
| | | USHORT EndType:2; /* 0=ByChar, 1= ByTime */
|
| | | USHORT EofChar:4; /* 0,1,2 = None, CR, CR+LF, ETX; End of character */
|
| | | USHORT SofChar:2; /* 0,1,2 = None, STX */
|
| | | USHORT EndTime;
|
| | | USHORT EndTime; /*(*0.01mS) */
|
| | | USHORT RecvAddr;
|
| | | USHORT RecvSize;
|
| | |
|
| | | }stComPortParam, *pstComPortParam;
|
| | |
|
| | | //每个模块有 0/1/2/3/4/5/6/7/8个 通讯port
|
| | | //不限于 UART, 网口,无线,单总线等,都是port
|
| | | //甚至可以有虚拟的port
|
| | |
|
| | | typedef struct tagPortStat
|
| | | {
|
| | | UCHAR PortType; //端口工作模式
|
| | | UCHAR nStation; //自己站号
|
| | | UCHAR bWorking; //工作中
|
| | | UCHAR bBus; //总线?,,全双工?
|
| | | UCHAR bMaster; //主机
|
| | | UCHAR nDevices; //连接的设备数量//不包括自己 //device list;
|
| | |
|
| | | }stComPortParam;
|
| | | }stPortStat,*pPortStat;
|
| | |
|
| | | typedef struct tagKMFuncParam
|
| | | {
|
| | | USHORT EnablePLC:1; //使能内部PLC功能
|
| | | USHORT RunMode; //工作模式
|
| | | }stKMFuncParam;
|
| | |
|
| | | // 输入输出地址映射
|
| | |
|
| | | typedef struct tagInputFilterParam // 1 Bytes
|
| | | {
|
| | |
| | | USHORT Version; // SC0 // 2 Bytes
|
| | | USHORT workmode; // SC1 // 2 Bytes 0=From jumper
|
| | | USHORT SwitchFunc; // SC2 // 2 Bytes
|
| | | |
| | | USHORT OutMappings[6]; //12 Bytes //输出映射
|
| | | USHORT pad1; // 2 Bytes
|
| | |
|
| | | stComPortParam PortParams[2]; // 8 Bytes
|
| | | stOutputHoldParam OutputParams[16]; //16 Bytes
|
| | | stInputFilterParam InputParams[16]; //16 Bytes
|
| | | stOutputHoldParam OutputParams[16]; //16 Bytes
|
| | | USHORT OutMappings[6]; //12 Bytes //输出映射
|
| | |
|
| | | UINT cfgvar3; // 4 Bytes
|
| | | UINT cfgvar4; // 4 Bytes
|
| | |
| | | UINT cfgvar10; // 4 Bytes
|
| | | UINT cfgvar11; // 4 Bytes
|
| | | UINT cfgvar12; // 4 Bytes
|
| | | UINT cfgvar13; // 4 Bytes
|
| | | UINT cfgvar14; // 4 Bytes
|
| | | UINT cfgvar15; // 4 Bytes
|
| | | UINT cfgvar16; // 4 Bytes
|
| | | UINT Space1[5]; //20 Bytes
|
| | | // UINT cfgvar13; // 4 Bytes
|
| | | // UINT cfgvar14; // 4 Bytes
|
| | | // UINT cfgvar15; // 4 Bytes
|
| | | // UINT cfgvar16; // 4 Bytes
|
| | | // UINT Space1[4]; //16 Bytes
|
| | |
|
| | | }stKMSysCfg,* pKMSysCfg;
|
| | |
|
| | |
| | | unsigned short EndSign1;
|
| | | }stStoredKMSysCfg,*pStoredKMSysCfg;
|
| | |
|
| | | /*
|
| | | typedef struct tagFactData
|
| | | enum enKeventType
|
| | | {
|
| | | USHORT Sign; //
|
| | | USHORT nLength; //
|
| | | UCHAR LOT_NO[16]; //
|
| | | UINT MANDate; //
|
| | | UINT SN; //
|
| | | UINT REV1[24]; //
|
| | | USHORT rev9;
|
| | | USHORT CRC;
|
| | | EventTypeNone = 0,
|
| | | EventTypePowerUp = 1,
|
| | | EventTypePowerDown = 2,
|
| | | EventTypePowerRecover = 3,
|
| | | EventTypeConnected = 4,
|
| | | EventTypeLostCon = 5,
|
| | | EventTypeSetTime = 6,
|
| | | EventTypeSysCfg = 7,
|
| | | EventTypeProg = 8,
|
| | | EventTypeForce = 9,
|
| | | EventTypeClearEvent = 10,
|
| | |
|
| | | }stFactData;
|
| | | */
|
| | | typedef struct tagFactoryData //工厂量产参数,数据
|
| | | {
|
| | | USHORT Sign1;
|
| | | USHORT Seq1;
|
| | | USHORT nModelNo;
|
| | | USHORT nModelVer;
|
| | | UINT nLotNo;
|
| | | UINT nProductDateTime;
|
| | | UINT SN1;
|
| | | UINT nProtocalVer;
|
| | | UINT nDefaultFunc;
|
| | | UCHAR ModelStr[16];
|
| | | UCHAR LOT_NO[16]; //
|
| | | UCHAR SNStr[16];
|
| | | unsigned short CRC1;
|
| | | unsigned short EndSign1;
|
| | |
|
| | | }stFactoryData,* pFactoryData;
|
| | | EventType
|
| | | };
|
| | |
|
| | | typedef struct tagEventLog
|
| | | {
|
| | |
| | | volatile unsigned short WorkMode2;
|
| | | volatile unsigned short nBinProgBank;
|
| | | volatile unsigned short nBinProgSize;
|
| | | unsigned int Reserved2[1];
|
| | | unsigned short bLEDFlick;
|
| | | unsigned short Reserved2[1];
|
| | | unsigned short CRC1;
|
| | | unsigned short EndSign1;
|
| | | }stRunStat, *pRunStat;
|
| | |
| | | KLDataTypeLD = 13 | TYPEDATA,
|
| | | KLDataSysCfg = 25 | TYPEDATA,
|
| | | KLDataTypeFlash = 33 | TYPEDATA,
|
| | | KLDataTypeWDT = 41 | TYPEDATA,
|
| | | KLDataTypeKBD = 51 | 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,
|
| | |
|
| | | };
|
| | | #define TOTAL_WDFS (16) //Total DF Count
|
| | | #define TOTAL_CurVAL (16) //
|
| | | #define TOTALTIMERS (64)
|
| | |
|
| | | typedef struct tagTimerStat
|
| | | {
|
| | | unsigned short nScale:2;//Time Scale, 0:1ms 1:10ms 2:100ms 3:1S
|
| | |
| | | };
|
| | | }stTimer;
|
| | |
|
| | | #define TOTAL_WDFS (32) //Total DF Count
|
| | | #define TOTAL_CurVAL (16) //
|
| | | #define TOTALTIMERS (64)
|
| | |
|
| | | enum enKLDataCounts
|
| | | {
|
| | |
|
| | | 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,
|
| | |
|
| | | KLDataDTCount = 128,
|
| | | KLDataSDTCount = 128,
|
| | | KLDataWDTCount = 128,
|
| | |
|
| | | };
|
| | |
|
| | | typedef struct tagKMem
|
| | | {
|
| | | unsigned short WDFs[TOTAL_WDFS];
|
| | |
| | | stTimer Timers[TOTALTIMERS];
|
| | |
|
| | | union {
|
| | | unsigned short WX[KLDataWXCount]; //本机的X和Y
|
| | | unsigned short WX[KLDataWXCount]; //本机的X和Y
|
| | | unsigned char WXB[KLDataWXCount*2];
|
| | | };
|
| | | union {
|
| | | unsigned short WY[KLDataWYCount]; //本机的X和Y
|
| | | unsigned char WYB[KLDataWYCount*2]; //本机的X和Y
|
| | | unsigned short WY[KLDataWYCount]; //本机的X和Y
|
| | | unsigned char WYB[KLDataWYCount*2]; //本机的X和Y
|
| | | };
|
| | | unsigned short WR[KLDataWRCount];
|
| | |
|
| | |
| | | unsigned short SV[KLDataSVCount];
|
| | |
|
| | |
|
| | | unsigned short WLX[16]; //虚拟的X和Y,远程通讯时映射用。
|
| | | unsigned short WLX[16]; //虚拟的X和Y,远程通讯时映射用。
|
| | | unsigned short WLY[16];
|
| | | unsigned short WLR[16];
|
| | | unsigned short WSR[16];
|
| | |
|
| | | union {
|
| | | unsigned int DTD[KLDataDTCount];
|
| | | unsigned int DTD[KLDataDTCount/2];
|
| | | unsigned short DT[KLDataDTCount];
|
| | | unsigned char DTB[KLDataDTCount*2];
|
| | | };
|
| | |
|
| | | // 配置寄存器
|
| | | // 系统状态寄存器
|
| | | // 特殊寄存器
|
| | | // 调试,监控寄存器
|
| | | // 配置寄存器
|
| | | // 系统状态寄存器
|
| | | // 特殊寄存器
|
| | |
|
| | | union {
|
| | | unsigned int SDD[KLDataSDTCount/2];
|
| | | unsigned short SDT[KLDataSDTCount];
|
| | |
| | | unsigned short ADCValues[20];
|
| | | };
|
| | | };
|
| | | // 调试,监控寄存器
|
| | | union {
|
| | | unsigned int WDD[KLDataWDTCount/2];
|
| | | unsigned short WDT[KLDataWDTCount];
|
| | | unsigned char WDB[KLDataWDTCount*2];
|
| | | };
|
| | | |
| | | }stKMem;
|
| | |
|
| | |
|