无线电爱好网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

Artery AT32 MCU實現Modbus

2022-11-24 10:18| 发布者: 闪电| 查看: 4| 评论: 0

摘要: 1 概述Modbus是一种串行通信协议,是Modicon公司(现施耐德电气)于1979年为使用可编程逻辑控制器(PLC)通信而发表。如今Modbus已成为工业领域通信协议的业界标准,并且是工业电子设备之间常用的连接方式。1.1 关于 ...



3.2 工程内添加 FreeMODBUS 源码

用户需前往FreeMODBUS官网或Github上下载最新版源码。源码包解压后,内有如下文件。

本文及所有移植例程均基于freemodbus-v1.6版本进行移植。

图 12. FreeMODBUS 源码文件

将源码包解压后,复制modbus文件夹和demo\BARE\port文件夹到前面的基础工程freemodbus目录下面,将port文件夹改名为modbus_port。如下图所示。

图 13. freemodbus 工程目录

打开工程文件,并按以下2个步骤添加到工程文件内。可参考AT提供的例程文件进行添加。

1、添加modbus和modbus_port内的所有.c文件(与tcp相关的除外)到工程项目内。

图 14. freemodbus 工程的项目

2、需将添加的.c文件所对应的.h文件的路径添加到工程的文件夹设置内。

图 15. freemodbus 工程的文件夹设置

3.3 工程代码的修改

1、 修改“port.h”文件。在该文件中添加包含关于AT32 MCU的“at32f435_437.h”头文件。补全用于互斥操作的开关中断宏定义。屏蔽掉关于TRUE、FALSE的宏定义,因在AT BSP的头文件中已有定义,避免编译出错。

2、 修改“portserial.c”和“porttimer.c”文件。在该文件中添加关于USART和TMR外设的底层驱动部分代码。用户可根据自己的硬件环境来自行修改,所以这里不进行具体说明,也可参考AT所提供的例程文件。

3、 需特别注意的是,因USART寄存器DT的值里包含数据位和校验位,而FreeMODBUS源码里在读取USART接收的数据后,会把所有值都当作数据位来处理而出错,这可能是和其他厂家的MCU有差异,所以这里需在“mbascii.c”文件中去修改源码。具体可参考AT所提供的例程文件。

4、 在工程中新建并添加“mbtask.c/.h”文件。该文件用于创建Modbus的通信任务(作从机)来调用FreeMODBUS协议栈的API层,并建立Modbus的数据模型(4个基本表格)用于与Modbus Poll(作主机)进行模拟通信测试。

“mbtask.c/.h”文件中实现的调用管理:
 保持寄存器的读/写
 输入寄存器的读取
 线圈的读/写
 离散量输入的读取

“mbtask.h”文件中定义的Modbus数据模型和建立通信所需的参数:

表 2. Modbus 的配置参数

3.4 设备功能的实现
1、 在“mbtask.c”文件中编写void modbus_task(void)函数去调用协议栈的API层,来实现modbus从机任务的功能。



2、 在“main.c”文件中,由int main(void) 主函数去调用modbus_task()任务函数即可。



4 设备的测试
至此,官方例程移植完毕,编译并下载,开打与AT-Link相连的串口,可看到如下打印信息。

图 16. 串口打印信息

从打印信息可以看到,从设备已经正常的运行起来。这时我们需要将此设备与上位机相连接,再打开Modbus Poll软件,模拟主设备来进行单播通信,即发送请求并接收应答。

1. 首先对Modbus Poll软件进行连接设置,选择与从设备相同的传输模式(RTU Mode),并配置相应串口的参数,也须与从设备相同。

图 17. Modbus Poll 连接设置

2. 再对Modbus Poll软件进行读写命令的定义,下面仅以功能码03(读保持寄存器)为例来讲解,用户可自行用同样的方式测试其他功能码。

图 18. Modbus Poll 读/写定义

3. 在Modbus Poll软件的文档界面中,可以看到已成功读回保持寄存器的值,并与从设备的程序中初始化保持寄存器时的值一致,测试通过。

图 19. Modbus Poll 文档界面


5 参考资料
【1】Modbus on AT32 M
CU文档
12

路过

雷人

握手

鲜花

鸡蛋

QQ|关于本站|小黑屋|Archiver|手机版|无线电爱好网 ( 粤ICP备15040352号 ) 无线电爱好技术交流5 无线电爱好技术交流1无线电爱好技术交流9开关电源讨论群LED照明应用、电源无线电爱好技术交流4无线电爱好技术交流8无线电爱好技术交流10无线电爱好技术交流11

粤公网安备 44030702001224号

GMT+8, 2022-11-24 10:18 , Processed in 0.093600 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

返回顶部