10. Modbus协议

您所在的位置:网站首页 modbus安装教程 10. Modbus协议

10. Modbus协议

2023-12-09 07:21| 来源: 网络整理| 查看: 265

10.3. 实验准备¶ 10.3.1. 添加uart资源¶

重要

本节实验使用 两个uart串口(一主一从) 来适配Modbus底层硬件的连接, 故此小节为添加uart资源演示,pymodbus库提供Modbus协议的全栈实现, 所以底层使用网口通讯也是得到支持的,大家可以根据实际情况参考本小节内容与否。

在板卡上的部分资源可能默认未被开启,在使用前请根据需要修改 /boot/uEnv.txt 文件, 可添加对应设备树插件的加载,重启系统,以在系统中添加对应资源。

如本节实验中,通常情况下在鲁班猫系统中默认使能 uart 的功能, 如大家发现uart的设备树插件未加载,请做相应修改。

同时如果大家在使用中发现uart功能引脚被复用或有冲突,请要将对应占用uart引脚资源的设备树插件取消加载, 否则uart资源可能无法使用。若已开启对应资源,忽略以下步骤。

本节实验中,笔者使用鲁班猫i.MX6ULL Pro板卡为例演示, 板卡上uart的设备树插件和rs485、can设备树插件存在引脚冲突, 因此在启用uart设备树插件时,需要关闭rs485、can设备树插件。 找到uart、rs485、can相关设备树插件修改,修改后并重启开发板。

方法参考如下:

添加uart2、uart3设备树插件,以使系统支持uart2、uart3功能,如下:

# 以鲁班猫i.MX6ULL Pro板卡uart2、uart3设备树插件内容为例: dtoverlay=/usr/lib/linux-image-4.19.35-imx6/overlays/imx-fire-uart2.dtbo dtoverlay=/usr/lib/linux-image-4.19.35-imx6/overlays/imx-fire-uart3.dtbo

如若运行代码时出现“Device or resource busy”或者运行代码卡死等等现象, 请按上述情况检查并按上述步骤操作。

如出现 Permission denied 或类似字样,请注意用户权限,大部分操作硬件外设的功能,几乎都需要root用户权限,简单的解决方案是在执行语句前加入sudo或以root用户运行程序。

在启动文件中添加好设备资源并重启板卡之后,我们可以查看设备是否已经正常添加。

# 在终端中输入如下命令,可以查看到uart2、uart3设备资源: ls /dev/ttymxc*

检查板卡上的uart2、uart3设备资源示例,仅供参考:

上图中显示了新增的两个串口设备,会在后文使用到。

10.3.2. 硬件连接¶

硬件连接小节,需要大家根据自身开发环境等情况对本章内容进行参考调整。

本章中笔者会使用两个串口:uart2、uart3,一主一从为大家进行Modbus协议 数据传输的演示。

笔者连接如下:

重要

pymodbus库对串行设备的支持,是基于pyserial库实现的, 该库默认的串行设备支持,是基于uart,故本节也以uart进行演示实验。 如想pymodbus使用rs485底层电气连接的方式,需要自行修改pymodbus库底层源码。

10.3.3. pymodbus库安装¶ # 在终端中输入如下命令: sudo apt -y install python3-pymodbus 10.3.4. pymodbus库使用¶

安装好对应的库之后,我们就可以利用安装好的python3-pymodbus库编写一下测试代码。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3