Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | 29-Oct-2021 | - | ||||
example/ | 29-Oct-2021 | - | ||||
include/ | 29-Oct-2021 | - | ||||
src/ | 29-Oct-2021 | - | ||||
README.md | A D | 29-Oct-2021 | 6.2 KiB | 164 | 114 | |
package.yaml | A D | 29-Oct-2021 | 3.9 KiB |
README.md
1@page mbmaster mbmaster 2 3**[更正文档](https://gitee.com/alios-things/mbmaster/edit/master/README.md)**      **[贡献说明](https://help.aliyun.com/document_detail/302301.html)** 4 5# 概述 6 7AliOS Things Modbus是标准的串行通信协议驱动,提供RTU模式能力,暂不支持ASCII/TCP模式。开发可以通过组件API,在设备端快速对接支持Modbus协议器件的进行读写。 8 9组件支持以下功能: 10 11- 支持基于RS232/485串口的RTU Modbus 12- 提供完整的读写寄存器接口(共8个api),一一对应支持如下功能码: 13 14 1. 0x01: 读线圈寄存器 mbmaster_read_coils 15 2. 0x02: 读离散输入寄存器 mbmaster_read_discrete_inputs 16 3. 0x03: 读保持寄存器 mbmaster_read_holding_registers 17 4. 0x04: 读输入寄存器 mbmaster_read_input_registers 18 5. 0x05: 写单个线圈寄存器 mbmaster_write_single_coil 19 6. 0x06: 写单个保持寄存器 mbmaster_write_single_register 20 7. 0x0f: 写多个线圈寄存器 mbmaster_write_multiple_coils 21 8. 0x10: 写多个保持寄存器 mbmaster_write_multiple_registers 22 23## 版权信息 24 25> Apache license v2.0 26 27## 目录结构 28 29```tree 30src 31├── adu 32│ ├── mbcrc.c # crc16校验位计算 33│ ├── mbcrc.h # crc16校验位计算头文件 34│ ├── rtu.c # 编译数据 35│ └── rtu.h # 编译数据头文件 36├── api 37│ ├── main_process.c # 选择加解密类型 38│ ├── main_process.h # 选择加解密型头文件 39│ ├── mbm.c # 驱动初始化 40│ └── mbmaster_api.c # 驱动对外读写接口 41├── auxiliary 42│ ├── log.c # 打印信息相关 43│ └── other.c # 锁相关 44├── include 45│ ├── adu.h # 发送数据校验和编译相关头文件 46│ ├── auxiliary.h # 打印及锁相关头文件 47│ ├── mbmaster_default_config.h # modbus配置头文件,包括模式使能 48│ └── mbmaster.h # 对外配置和接口头文件 49├── pdu 50│ ├── pdu.c # 加解密类型接口 51│ └── pdu.h # 加解密类型接口头文件 52├── physical 53│ ├── serial.c # 依赖的串口驱动 54│ └── serial.h # 依赖的串口头文件 55├── example 56│ └── mbmaster_example.c # modbus示例代码 57└── package.yaml # 编译配置文件 58``` 59 60## 依赖组件 61 62- uart 63- vfs 64- ulog 65- posix 66 67# 常用配置 68 69无 70 71# API说明 72 73**常用API** 74- mbmaster_read_coils 75- mbmaster_read_discrete_inputs 76- mbmaster_read_holding_registers 77- mbmaster_read_input_registers 78 79- mbmaster_write_single_coil 80- mbmaster_write_single_register 81- mbmaster_write_multiple_coils 82- mbmaster_write_multiple_registers 83 84参考[完整API手册](https://g.alicdn.com/alios-things-3.3/doc/group__aos__mbmaster.html) 85 86# 使用示例 87 88组件使用示例相关的代码下载、编译和固件烧录均依赖AliOS Things配套的开发工具,所以首先需要参考[《AliOS Things集成开发环境使用说明之搭建开发环境》](https://help.aliyun.com/document_detail/302378.html),下载安装。 89待开发环境搭建完成后,可以按照以下步骤进行示例的测试。 90 91## 步骤1 创建或打开工程 92 93**打开已有工程** 94 95如果用于测试的案例工程已存在,可参考[《AliOS Things集成开发环境使用说明之打开工程》](https://help.aliyun.com/document_detail/302381.html)打开已有工程。 96 97**创建新的工程** 98 99组件的示例代码可以通过编译链接到AliOS Things的任意案例(solution)来运行,这里选择helloworld_demo案例。helloworld_demo案例相关的源代码下载可参考[《AliOS Things集成开发环境使用说明之创建工程》](https://help.aliyun.com/document_detail/302379.html)。 100 101## 步骤2 添加组件 102 103案例下载完成后,需要在helloworld_demo组件的package.yaml中添加对组件的依赖: 104 105```yaml 106depends: 107 - mbmaster: master # helloworld_demo中引入modbus组件 108 - ulog: master 109``` 110 111## 步骤3 下载组件 112 113在已安装了 的开发环境工具栏中,选择Terminal -> New Terminal启动终端,并且默认工作路径为当前工程的workspace,此时在终端命令行中输入: 114 115```shell 116aos install mbmaster 117``` 118 119上述命令执行成功后,组件源码则被下载到了./components/mbmaster路径中。 120 121## 步骤4 添加示例 122 123在mbmaster组件的package.yaml中添加[example示例代码](https://gitee.com/alios-things/mbmaster/tree/master/example): 124 125```yaml 126source_file: 127 - "src/*.c" 128 - "example/mbmaster_example.c" # add mbmaster_example.c 129``` 130 131## 步骤5 编译固件 132 133在示例代码已经添加至组件的配置文件,并且helloworld_demo已添加了对该组件的依赖后,就可以编译helloworld_demo案例来生成固件了,具体编译方法可参考[《AliOS Things集成开发环境使用说明之编译固件》](https://help.aliyun.com/document_detail/302384.html)。 134 135## 步骤6 烧录固件 136 137helloworld_demo案例的固件生成后,可参考[《AliOS Things集成开发环境使用说明之烧录固件》](https://help.aliyun.com/document_detail/302383.html)来烧录固件。 138 139## 步骤7 打开串口 140 141固件烧录完成后,可以通过串口查看示例的运行结果,打开串口的具体方法可参考[《AliOS Things集成开发环境使用说明之查看日志》](https://help.aliyun.com/document_detail/302382.html)。 142 143当串口终端打开成功后,可在串口中输入help来查看已添加的测试命令。 144 145## 步骤8 测试示例 146 147**CLI命令行输入:** 148 149```sh 150mbmaster_example 151``` 152 153> 关键日志: 154 155```sh 156mbmaster test # 测试开始 157write single register ok # 写单个保持寄存器成功 158read holding register simulator1: xx,simulator2: xx # 读保持寄存器成功 159``` 160 161# FAQ 162 163暂无 164