⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mbmaster.h

📁 Modbus协议主从协议栈
💻 H
字号:
/****************************************Copyright (c)**************************************************
**                               广州周立功单片机发展有限公司
**                                     研    究    所
**                                        产品一部 
**
**                                 http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: MBMaster.h
**创   建   人: 周立山
**最后修改日期: 2005年7月29日
**描        述: MODBUS RTU 协议栈
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 周立山
** 版  本: 1.0a
** 日 期: 2005年7月29日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人: 
** 版  本: 
** 日 期: 
** 描 述: 
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
** 描 述: 
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef __MBMASTER_H
#define	__MBMASTER_H

/***************************************************/
// 配置等待时间,单位:10mS
/***************************************************/
#define MB_POLL_TIMEOUT		100		// 设置等待从机应答时间,单位:10mS
#define MB_POLL_DELAY		5		// 设置请求帧间隔时间,单位:10mS



/***************************************************
** 使能MODBUS功能代码
****************************************************/
#define	READ_COILS_EN		1	// 读线圈
#define	READ_DIS_INPUT_EN	1	// 读离散量输入
#define	READ_HOLD_REG_EN	1	// 读保持寄存器
#define	READ_INPUT_REG_EN	1	// 读输入寄存器
#define	WRITE_SING_COIL_EN	1	// 写单个线圈
#define	WRITE_SING_REG_EN	1	// 写单个寄存器
#define	WRITE_MULT_COIL_EN	1	// 写多个线圈
#define	WRITE_MULT_REG_EN	1	// 写多个寄存器
#define	MASK_WRITE_REG_EN	1	// 处理屏蔽寄存器指令
#define	READ_WRITE_REG_EN	1	// 读写多个寄存器



#include 	"MB_MFunction.h"
#include	"MODBUS.h"
#include 	"OSFUNfile.h"

#define	MAX_FUNCTION		(READ_COILS_EN     	+\
							 READ_DIS_INPUT_EN	+\
							 READ_HOLD_REG_EN	+\
							 READ_INPUT_REG_EN	+\
							 WRITE_SING_COIL_EN	+\
							 WRITE_SING_REG_EN	+\
							 WRITE_MULT_COIL_EN	+\
							 WRITE_MULT_REG_EN	+\
							 MASK_WRITE_REG_EN	+\
							 READ_WRITE_REG_EN	+\
							 1)

#ifndef AT_CODE
#define AT_CODE const
#endif

typedef struct __FUNCTION_ARRAY{
	uint8	 Code;
	void	 (*Function)(void *Response);
}FUNCTION_PACK_PDU;

typedef struct __FUNCTION_DATA_HANDLE{
	uint8	 Code;
	void	 (*Function)(uint8 *PDUPtr,void *ParameterPtr);
}FUNCTION_DATA_HANDLE;

/* 主机描述 */
typedef struct __MASTER_INFORMATION{
	uint8   Address;		  			// 地址
	uint8	LineProtocol;	  			// 链路层协议
	uint16	BaudRate;	  				// 波特率 = BaudRate * 100	

	uint8	Parity;						// 奇偶校验
	uint8	StopBit;					// 停止位

	uint8*	RequestPtr;					// 主机请求从帧指针
	uint8*  ReplyPtr;					// 应答帧指针

	uint8	Status;						// 主机状态
	void	*ParPtr;					// 参数结构指针

}MASTER_INFORMATION;


uint8 ModbusPoll(uint8 NodeID,uint8 FunctionCode,void *ParameterPtr);

void MBMasterIni(void);
//uint8 MReadHoldingReg(uint8 Adrress,uint8 StartAddr,uint16 Quantity,uint16 *DataPtr);
uint8 IdleModbus(void);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -