Modbus RTU模式下数据包处理头文件
更多...
#include "stdint.h"
#include "stdbool.h"
#include "stdlib.h"
#include "string.h"
浏览源代码.
|
| bool | Modbus_Payload_Check_CRC (uint8_t *payload, size_t payload_length) |
| | 检查一帧数据的crc 更多...
|
| |
| bool | Modbus_Payload_Append_CRC (uint8_t *payload, size_t payload_length) |
| | 在数据帧末尾的添加crc校验 更多...
|
| |
| bool | Modbus_Slave_Parse_Input (modbus_slave_context_t *ctx, uint8_t *input_data, size_t input_data_length, uint8_t *buff, size_t buff_length) |
| | Modbus从机解析输入。 当从机接收到一帧数据后,调用此函数。 此函数会自动调用相关回调函数完成Modbus输出。 更多...
|
| |
| bool | Modbus_Master_Read_IX (modbus_master_context_t *ctx, uint16_t start_addr, bool *data, size_t number, uint8_t *buff, size_t buff_length) |
| | Modbus主机读取输入点 更多...
|
| |
| bool | Modbus_Master_Read_OX (modbus_master_context_t *ctx, uint16_t start_addr, bool *data, size_t number, uint8_t *buff, size_t buff_length) |
| | Modbus主机读取输出线圈 更多...
|
| |
| bool | Modbus_Master_Read_Hold_Register (modbus_master_context_t *ctx, uint16_t start_addr, uint16_t *data, size_t number, uint8_t *buff, size_t buff_length) |
| | Modbus主机读取保持寄存器 更多...
|
| |
| bool | Modbus_Master_Read_Input_Register (modbus_master_context_t *ctx, uint16_t start_addr, uint16_t *data, size_t number, uint8_t *buff, size_t buff_length) |
| | Modbus主机读取输入寄存器 更多...
|
| |
| bool | Modbus_Master_Write_OX (modbus_master_context_t *ctx, uint16_t start_addr, bool *data, size_t number, uint8_t *buff, size_t buff_length) |
| | Modbus主机写输出线圈 更多...
|
| |
| bool | Modbus_Master_Write_Hold_Register (modbus_master_context_t *ctx, uint16_t start_addr, uint16_t *data, size_t number, uint8_t *buff, size_t buff_length) |
| | Modbus主机写保持寄存器 更多...
|
| |
Modbus RTU模式下数据包处理头文件
- 作者
- 何亚红
- 版本
- 20220203
- 日期
- 2022
- 版权所有
- MIT License.
在文件 Modbus.h 中定义.
◆ MODBUS_BROADCAST_ADDRESS
| #define MODBUS_BROADCAST_ADDRESS 0 |
◆ MODBUS_MAX_PDU_LENGTH
| #define MODBUS_MAX_PDU_LENGTH 253 |
◆ MODBUS_MAX_READ_BITS
| #define MODBUS_MAX_READ_BITS 2000 |
◆ MODBUS_MAX_READ_REGISTERS
| #define MODBUS_MAX_READ_REGISTERS 125 |
◆ MODBUS_MAX_WR_READ_REGISTERS
| #define MODBUS_MAX_WR_READ_REGISTERS 125 |
◆ MODBUS_MAX_WR_WRITE_REGISTERS
| #define MODBUS_MAX_WR_WRITE_REGISTERS 121 |
◆ MODBUS_MAX_WRITE_BITS
| #define MODBUS_MAX_WRITE_BITS 1968 |
◆ MODBUS_MAX_WRITE_REGISTERS
| #define MODBUS_MAX_WRITE_REGISTERS 123 |
◆ MODBUS_RTU_MAX_ADU_LENGTH
| #define MODBUS_RTU_MAX_ADU_LENGTH 256 |
◆ Modbus_Master_Read_Hold_Register()
| bool Modbus_Master_Read_Hold_Register |
( |
modbus_master_context_t * |
ctx, |
|
|
uint16_t |
start_addr, |
|
|
uint16_t * |
data, |
|
|
size_t |
number, |
|
|
uint8_t * |
buff, |
|
|
size_t |
buff_length |
|
) |
| |
Modbus主机读取保持寄存器
- 参数
-
| ctx | 上下文指针,需要自行定义 |
| start_addr | 起始地址(寻址地址) |
| data | 待读取的数据指针 |
| number | 待读取数据长度 |
| buff | 缓冲,用于发送和接收数据,尽量大 |
| buff_length | 缓冲长度 |
- 返回
- 是否成功执行
在文件 Modbus.c 第 555 行定义.
◆ Modbus_Master_Read_Input_Register()
| bool Modbus_Master_Read_Input_Register |
( |
modbus_master_context_t * |
ctx, |
|
|
uint16_t |
start_addr, |
|
|
uint16_t * |
data, |
|
|
size_t |
number, |
|
|
uint8_t * |
buff, |
|
|
size_t |
buff_length |
|
) |
| |
Modbus主机读取输入寄存器
- 参数
-
| ctx | 上下文指针,需要自行定义 |
| start_addr | 起始地址(寻址地址) |
| data | 待读取的数据指针 |
| number | 待读取数据长度 |
| buff | 缓冲,用于发送和接收数据,尽量大 |
| buff_length | 缓冲长度 |
- 返回
- 是否成功执行
在文件 Modbus.c 第 606 行定义.
◆ Modbus_Master_Read_IX()
| bool Modbus_Master_Read_IX |
( |
modbus_master_context_t * |
ctx, |
|
|
uint16_t |
start_addr, |
|
|
bool * |
data, |
|
|
size_t |
number, |
|
|
uint8_t * |
buff, |
|
|
size_t |
buff_length |
|
) |
| |
Modbus主机读取输入点
- 参数
-
| ctx | 上下文指针,需要自行定义 |
| start_addr | 起始地址(寻址地址) |
| data | 待读取的数据指针 |
| number | 待读取数据长度 |
| buff | 缓冲,用于发送和接收数据,尽量大 |
| buff_length | 缓冲长度 |
- 返回
- 是否成功执行
在文件 Modbus.c 第 504 行定义.
◆ Modbus_Master_Read_OX()
| bool Modbus_Master_Read_OX |
( |
modbus_master_context_t * |
ctx, |
|
|
uint16_t |
start_addr, |
|
|
bool * |
data, |
|
|
size_t |
number, |
|
|
uint8_t * |
buff, |
|
|
size_t |
buff_length |
|
) |
| |
Modbus主机读取输出线圈
- 参数
-
| ctx | 上下文指针,需要自行定义 |
| start_addr | 起始地址(寻址地址) |
| data | 待读取的数据指针 |
| number | 待读取数据长度 |
| buff | 缓冲,用于发送和接收数据,尽量大 |
| buff_length | 缓冲长度 |
- 返回
- 是否成功执行
在文件 Modbus.c 第 453 行定义.
◆ Modbus_Master_Write_Hold_Register()
| bool Modbus_Master_Write_Hold_Register |
( |
modbus_master_context_t * |
ctx, |
|
|
uint16_t |
start_addr, |
|
|
uint16_t * |
data, |
|
|
size_t |
number, |
|
|
uint8_t * |
buff, |
|
|
size_t |
buff_length |
|
) |
| |
Modbus主机写保持寄存器
- 参数
-
| ctx | 上下文指针,需要自行定义 |
| start_addr | 起始地址(寻址地址) |
| data | 待写入的数据指针 |
| number | 待写入数据长度 |
| buff | 缓冲,用于发送和接收数据,尽量大 |
| buff_length | 缓冲长度 |
- 返回
- 是否成功执行
在文件 Modbus.c 第 812 行定义.
◆ Modbus_Master_Write_OX()
| bool Modbus_Master_Write_OX |
( |
modbus_master_context_t * |
ctx, |
|
|
uint16_t |
start_addr, |
|
|
bool * |
data, |
|
|
size_t |
number, |
|
|
uint8_t * |
buff, |
|
|
size_t |
buff_length |
|
) |
| |
Modbus主机写输出线圈
- 参数
-
| ctx | 上下文指针,需要自行定义 |
| start_addr | 起始地址(寻址地址) |
| data | 待写入的数据指针 |
| number | 待写入数据长度 |
| buff | 缓冲,用于发送和接收数据,尽量大 |
| buff_length | 缓冲长度 |
- 返回
- 是否成功执行
在文件 Modbus.c 第 703 行定义.
◆ Modbus_Payload_Append_CRC()
| bool Modbus_Payload_Append_CRC |
( |
uint8_t * |
payload, |
|
|
size_t |
payload_length |
|
) |
| |
在数据帧末尾的添加crc校验
- 参数
-
| payload | 整帧数据的指针,需要在末尾留两个字节以填写CRC |
| payload_length | 长度(包含CRC) |
- 返回
- 是否调用成功
在文件 Modbus.c 第 71 行定义.
◆ Modbus_Payload_Check_CRC()
| bool Modbus_Payload_Check_CRC |
( |
uint8_t * |
payload, |
|
|
size_t |
payload_length |
|
) |
| |
检查一帧数据的crc
- 参数
-
| payload | 整帧数据(包含CRC)的指针 |
| payload_length | 长度(包含CRC) |
- 返回
- CRC是否通过
在文件 Modbus.c 第 52 行定义.
◆ Modbus_Slave_Parse_Input()
| bool Modbus_Slave_Parse_Input |
( |
modbus_slave_context_t * |
ctx, |
|
|
uint8_t * |
input_data, |
|
|
size_t |
input_data_length, |
|
|
uint8_t * |
buff, |
|
|
size_t |
buff_length |
|
) |
| |
Modbus从机解析输入。 当从机接收到一帧数据后,调用此函数。 此函数会自动调用相关回调函数完成Modbus输出。
- 参数
-
| ctx | 上下文指针,需要自行定义 |
| input_data | 输入数据指针 |
| input_data_length | 输入数据长度 |
| buff | 缓冲(存放临时数据) |
| buff_length | 缓冲长度(需大于等于输入数据长度,足够存放输出数据) |
- 返回
- 是否成功执行
在文件 Modbus.c 第 90 行定义.