📄 mbmaster.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 + -