📄 drvdatadefine.h
字号:
// ******************************************************************
// 浙江浙大中自集成控制股份有限公司
// Copyright (c) 2006 - All Rights Reserved.
// ------------------------------------------------------------------
// 当前版本: 1.0
// 作 者: zhangchuangxun
// 时 间: 2006-10-30 下午 03:24:40
// 注 释: 这里把以前的DataType.h文件整理一下,以前的有点太乱了,命名规则也不好看
// 这里的定义主要供驱动调度程序、和各个驱动文件用
//
//
// 修改日期:
// 修改内容:
//
// *******************************************************************/
#ifndef _DRV_DATA_DEFINE_H_
#define _DRV_DATA_DEFINE_H_
/////////Device Type////////////////////
#define SERIAL_DEV_TYPE 0x00
#define BOARD_DEV_TYPE 0x01
#define NET_DEV_TYPE 0x03 //网络
#define RX_QUEU 1024
#define TX_QUEU 512
#define MAX_SEND_BYTES 0x180 //384
#define MAX_PACKET_NUMER 512 //包队列中能支持的最大包数目
#define RM_FLAG 0
#define RM_CHAR 1
#define COM_PRO 3475
#define VERSION1 1023
#define TIME_INTERVAL 10
//Packet Type
#define PT_READ 0
#define PT_WRITE 1
/*
#define MAX_FLOAT 9999999999.00
#define MIN_FLOAT 0.000000001
#define MAX_STRING_LEN 80 //DDE传输中所支持的最大字符串长度.
*/
////MACRO of character.
/*
#define NUL 0x00
#define SOH 0x01
#define STX 0x02
#define ETX 0x03
#define EOT 0x04
#define ENQ 0x05
#define ACK 0x06
#define DLE 0x10
#define NAK 0x15
*/
//MACRO of datatype.
#define FLOAT_TYPE 1
#define LONG_TYPE 2
#define STRING_TYPE 3
#define DISC_TYPE 4
//Macro of Datatype in device //Old Unsurpport in Later version.
//#define DEV_BIT_TYPE 0
//#define DEV_INT_TYPE 1
//#define DEV_LONG_TYPE 2
//#define DEV_FLOAT_TYPE 3
////MACRO of character.
/*#define NUL 0x00
#define SOH 0x01
#define STX 0x02
#define ETX 0x03
#define EOT 0x04
#define ENQ 0x05
#define ACK 0x06
#define DLE 0x10
#define NAK 0x15
*/
//AD filter mode
#define FILTER_NO 0
#define BIT_DATATYPE 0x01
#define BYTE_DATATYPE 0x02
#define INT_DATATYPE 0x04
#define UINT_DATATYPE 0x08
#define BCD_DATATYPE 0x10
#define LONG_DATATYPE 0x20
#define LONGBCD_DATATYPE 0x40
#define FLOAT_DATATYPE 0x80
#define STRING_DATATYPE 0x100
#define MAX_DEV_LEN 64
#define COMM_CONFIG_OFFSET 256 //Config Part1 offset. ----- Store Comm Config.
#define VAR_CONFIG_OFFSET 512 //Config Part2 offset. ----- Store Var Config.
#define PS_SOP 0x0000
#define PS_EOP 0x8000
#define MAX_REG_NUM 256
//////////////////////////
//used for COM
#define RF_BAD_REGISTER 1
#define RF_NO_OVERFLOW_LOW 2
#define RF_NO_OVERFLOW_HIGH 3
#define RF_INVALID_DATATYPE 0x8001
typedef ATOM STR;
union DDEValue
{
long lValue;
float fValue;
BOOL bValue;
//char c[4];
STR sValue;
};
union PlcValue
{
BOOL bitVal;
BYTE byteVal;
short intVal;
UINT uintVal;
WORD bcdVal;
long longVal;
float floatVal;
DWORD longbcdVal;
STR strVal;
};
typedef struct
{
int nFlag[2]; //驱动程序配置文件特征字
char sComment[8]; //简短说明
int nVersion[2]; //版本号
int nVarNum; //变量数
int nCommConfig; //是否记录串口配置
int reserved[24]; //预留48字节
}CFG_FILE_HEAD;
typedef struct
{
char szDevName[32]; //设备名称
char szRegister[128];
short nDataType;
// short nFrequency;
short nAccessMode;
short reserved[2];
}MiniDbItem;
typedef MiniDbItem MINIDBITEM;
struct CommConfig
{
BYTE bId;
UINT nBaudRate;
BYTE bByteSize;
BYTE bStopBits;
BYTE bParity;
char evtChr;
WORD wRxMode;
UINT nTimeOut;
WORD reserved[5];
};
typedef CommConfig COMM_CONFIG;
struct ComDevice//size: 54
{
short nFlag; //为1,表示此位置有串口,为-1,无。
WORD deviceKind; //此值为1,表示串行设备
char deviceName[32]; //逻辑名称=={COM1,COM2...}
int baudRate; //波特率
short dataBits; //数据位
short stopBits; //停止位
short parity; //校验方式
short timeOut; //超时
short failTimes; //失败次数
short retryInterval; //尝试恢复间隔
short isRs232; //是RS232通讯还是RS485
};//Wang Mingyu Added in 98/10/12.
typedef struct CommData
{
char szProtocolName[16]; //该串口的协议名
CLSID clsidProtocol; //该串口的协议ID
IUnknown *pComProtocol;
CPtrList PacketList; //包队列
}COMM_DATA;
typedef struct _DevAddr
{
UINT nDevAddr;
char sDevAddr[MAX_DEV_LEN];
}DEVADDR, * PDEVADDR;
typedef struct Device
{
char szDevName[32];
char szDevAddr[32];
DEVADDR devAddress;
int nCommId;
int nFailTime;
BOOL bBad;
UINT nTimerCount;
}DEVICE, * PDEVICE;
typedef struct var
{
WORD wVarID; // 组态王中变量ID
WORD wVarType; // 组态王变量类型
char szVarName[32]; // 组态王变量名称
short nDeviceIndex; // PLC索引
short nUnitNo; // PLC地址
DEVADDR *pDevAddr; // 设备地址指针,新添内容
char *pszRegName; //寄存器名称
short nRegType; // 寄存器类型
short nSubType; // 类型子码
short nSubType1;
short nSubType2; // 类型子码2
short nNo; // 地址
short nDataType; // 数据类型
short nAccessMode; // I/O Mode.
long nFrequency; // 采样频率(基频的倍数)
long nTimerCount; // 采样计数器
CWinThread* pComThread; // 该变量所在的线程
DDEValue maxRaw; // 最大原始值
DDEValue minRaw; // 最小原始值
short bConvertion; // 转换方式
short isBad; //设备坏
short isUnvalid; //变量无效
// WORD unused[2]; //no used
}PLCVAR;
typedef PLCVAR * PPLCVAR;
typedef unsigned short USHO;
//协议处理核心
typedef struct Packet
{
short nDeviceIndex; // -----------//
short nUnitNo; // 设备地址 |
DEVADDR *pDevAddr; // 设备地址指针, 新添内容
char *pszDevName; // 设备名称 //
char *pszRegName; // 寄存器名称
short nRegType; // 类型码
short nSubType; // 子类型码
short nSubType1;
short nSubType2; // 子类型码(附加)
int nStartNo; // 起始偏移量
int nEndNo; // 结束偏移量
short nPacketType; // Read, write, something else.
//WORD wState; // Packet state.
CPtrList varList; // store 'struct id_no'
}PACKET;
typedef PACKET * PPACKET;
typedef struct IdNo
{
WORD wVarId;
// WORD wVarType;
WORD wNo;
WORD wDataType;
BYTE Special[4];
PlcValue plcValue;
}ID_NO;
//////////////////////////
typedef struct reginfo
{
char sRegName[8];//寄存器名
int nLowIndex;
int nUpperIndex;
WORD wDataType;//所支持的基本数据类型
int nData;
}REG_INFO;
struct REG_OPC_Info
{
char name[64];
};
typedef struct _DRV_ERR_STR_
{
short no;
char Err[128];
}DRV_ERR_STR;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -