Modbus.h 2.2 KB
#ifndef	MODBUS_H
#define MODBUS_H
/* ----------------------- Modbus includes ----------------------------------*/
#include "mb.h"
#include "mbport.h"
#ifdef __cplusplus
extern "C" {

#endif
	
/* ----------------------- Defines ------------------------------------------*/
#define DISCRETE_INPUT_START        1
#define DISCRETE_INPUT_NDISCRETES   96
#define COIL_START                  1
#define COIL_NCOILS                 96
#define REG_INPUT_START             1
#define REG_INPUT_NREGS             100
#define REG_HOLDING_START           1
#define REG_HOLDING_NREGS           100
#define FALSH_USER_START_ADDRESS    (uint32_t)0x08010000           //用于用户存数据使用的内部闪存的起始地址

//在保持寄存器中,各个地址对应的功能定义
#define          HD_SYSTEM_TASK_FLAG            0		  //系统任务标志
#define          HD_USER_PASSWORD_START         1         //用户密码起始地址(5个普通、1个超级管理员)
#define          HD_SUPER_ADMIN_PASSWORD        6         //超级管理员的密码
#define          HD_CUR_USER_PASSWORD		    7		  //当前用户输入的密码
#define          HD_CUR_USER_NUMBER			    8         //当前用户的编号
#define          HD_CUR_INTERFACE			    91         //当前界面
#define          HD_TIME_YEAR                  10		  //时间:年
#define          HD_TIME_MONTH                 11		  //时间:月
#define          HD_TIME_DAY                   12		  //时间:日
#define          HD_TIME_WEEK                  13		  //时间:星期
#define          HD_TIME_HOUR                  14		  //时间:时
#define          HD_TIME_MIN                   15		  //时间:分
#define          HD_TIME_SEC                   16		  //时间:秒

/*--------------------------Extern Functions------------------------------------*/
extern UCHAR xMBUtilGetBits( UCHAR * ucByteBuf, USHORT usBitOffset, UCHAR ucNBits );
extern void  xMBUtilSetBits( UCHAR * ucByteBuf, USHORT usBitOffset, UCHAR ucNBits,UCHAR ucValue );
extern UCHAR    usDiscreteInputBuf[DISCRETE_INPUT_NDISCRETES/8]  ;
extern UCHAR    usCoilBuf[COIL_NCOILS/8];
extern SHORT   usRegInputBuf[REG_INPUT_NREGS];
extern SHORT   usRegHoldingBuf[REG_HOLDING_NREGS];
extern USHORT   LastusRegHoldingBuf[REG_HOLDING_NREGS] ;//待比较的保持存储数据
void ModbusRegInit(uint8_t Fun);
 	
#ifdef __cplusplus
}
#endif
#endif