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

📄 modbus_client.h

📁 458通讯
💻 H
字号:
#ifndef _MB_CLIENT
#define _MB_CLIENT
#include <avr/io.h>
#include <avr/interrupt.h>
#include <string.h>

#include "485.h"
#define TRUE 1
#define FALSE 0
#define UINT16 unsigned int
#define BYTE unsigned char
#define MAX_EQU_NUM  3                        
//现在使用3个设备
#define OK 1
#define ERR 0
//===================================================================
//               错误常量
//===================================================================
#define CHAOSHI 0XFF

//===================================================================
//设备数据结构 用于构建设备参数表
typedef struct _EQUIPMENT_PARAMETER
{
    BYTE  EQU_ADDR;                
	//设备地址 
    BYTE  EQU_TYPE;                
	//设备类型
    BYTE  EQU_STATE;               
	//设备状态
	BYTE  REG_ORIGINATION;         
	//起始寄存器地址
	BYTE  REG_NUM;                 
	//寄存器数量
}EQUIPMENT_PARAMETER;

//ADU处理信息结构
typedef struct _ADU_CONTROL
{
    BYTE Address;           
	//地址域
	BYTE *RxADUBuffPtr;     
	//指向ADU发送缓冲区的指针
	BYTE *TxADUBuffptr;     
	//指向ADU接收缓冲区的指针
	BYTE ADULength;         
	//ADU数据长度
	BYTE FrameOK;           
	//如果该ADU报文有效(地址有效,奇偶、CRC校验通过)则TRUE
}ADU_CONTROL;
//通信状态
typedef struct _MB_INFORMATION
{
    BYTE EQUIPMENT_NOW;                  
	//当前正在处理设备编号
//  enum _MODBUS_STATE MODBUS_STATE;    
    //描述modbus状态的变量
	BYTE T15_OUT;                       
	//1.5ms延时到
	BYTE T35_OUT;                       
	//3.5ms延时到
	BYTE TO_times;                      
	//时钟中断次数计数器
}MB_INFORMATION;
// 帧错误类型
typedef enum _MESSAGE_ERR
{
    CRC_ERR,                            
	//CRC校验错
	FUNC_ERR,                           
	//功能号错     -应该处理错误类型
	LEN_ERR,                            
	//长度错
	NO_ERR                              
	//没有错误
}MESSAGE_ERR;

//=====================================================================================
void MB_INFORMATION_Init(MB_INFORMATION *);
//void MASTER_INFORMATION_Init(MASTER_INFORMATION *);
void ADU_CONTROL_Init(ADU_CONTROL *);
MESSAGE_ERR  message_process(BYTE *,BYTE);
#endif

⌨️ 快捷键说明

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