mirror of
https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32.git
synced 2025-01-23 06:07:11 +08:00
1、【修改】readme文件格式
Signed-off-by: armink <armink.ztl@gmail.com>
This commit is contained in:
parent
0caf994f44
commit
e7bae62d52
@ -10,7 +10,9 @@ FreeModbus是一款开源的Modbus协议栈,但是只有从机开源,主机
|
||||
- 支持实时操作系统及裸机移植;
|
||||
- 为应用提供多种请求模式,用户可以选择阻塞还是非阻塞模式,自定义超时时间等,方便应用层灵活调用;
|
||||
- 支持所有常用的Modbus方法。
|
||||
|
||||
### 1.1、文件结构
|
||||
|
||||
|源文件 |描述 |
|
||||
|:------------------------------ |:----- |
|
||||
|FreeModbus\modbus\mb.c |给应用层提供Modbus从机设置及轮训相关接口|
|
||||
@ -43,6 +45,7 @@ FreeModbus是一款开源的Modbus协议栈,但是只有从机开源,主机
|
||||
> 注:所有带_m后缀的文件为主机模式下必须使用的文件,如使用从机模式则无需这些文件。
|
||||
|
||||
----------
|
||||
|
||||
## 二、移植
|
||||
对于协议栈的移植主要包括两个方面,硬件及软件。用户需要根据自己的需求进行自行选择。
|
||||
|
||||
@ -50,10 +53,12 @@ FreeModbus是一款开源的Modbus协议栈,但是只有从机开源,主机
|
||||
|
||||
### 2.1、软件
|
||||
软件方面支持基于裸机及实时操作系统的移植;支持单个主机与单个从机同时独立运行。另外用户也可以修改协议栈的事件回调接口,使主机请求的接口采用阻塞及非阻塞模式;主机资源等待方面,用户也可以设置等待超时时间等等,诸多功能将会一一介绍。
|
||||
|
||||
#### 2.1.1、操作系统与裸机
|
||||
对于操作系统与裸机目前协议栈都是支持的,但个人更加推荐采用实时操作系统,因为这样会使得接口调用及接口移植变得更加简单。目前提供移植完成的操作系统包括国人的[RT-Thread][1]实时操作系统及uCOS操作系统。
|
||||
操作系统与裸机移植的过程中涉及的文件为`FreeModbus\port\portevent_m.c`
|
||||
该文件主要有以下需要用户移植的接口
|
||||
|
||||
|接口 |功能描述|
|
||||
|:----- |:----|
|
||||
|xMBMasterPortEventInit |主机事件初始化|
|
||||
@ -75,6 +80,7 @@ FreeModbus是一款开源的Modbus协议栈,但是只有从机开源,主机
|
||||
#### 2.1.2、数据缓冲区
|
||||
数据缓冲区定义的位置位于`FreeModbus\port\user_mb_app_m.c`文件顶部,共计4种数据类型。
|
||||
FreeModbus从机默认使用一维数组作为缓存区数据结构,主机可以存储所有网内从机的数据,所以主机采用二位数组对所有从机节点数据进行存储。二维数组的列号代表寄存器、线圈及离散量地址,行号代表从机节点ID,但需要做减一处理,例如`usMRegHoldBuf[2][1]`代表从机ID为3,保持寄存器地址为1的从机数据。
|
||||
|
||||
#### 2.1.3、Modbus数据处理回调接口
|
||||
Modbus一共有4种不同的数据类型,所有的Modbus功能都围绕这些数据类型进行操作。由于不同的用户数据缓冲区结构可能有所不同,那么对应的Modbus数据处理方式也就存在差异,所以用户需要把每种数据类型对应的操作,按照自己的数据缓冲区结构进行定制实现。
|
||||
所有的Modbus数据处理回调接口如下:
|
||||
|
Loading…
x
Reference in New Issue
Block a user