0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

虹科教您派固定工业树莓派Modbus RTU设备编号

宏集科技 2021-10-18 18:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

f66353fc-2eb1-11ec-aa30-dac502259ad0.png f72a6578-2eb1-11ec-aa30-dac502259ad0.png

虹科工业树莓派

高性能

多接口

宽温--适应恶劣环境

★★★★

f7faeb76-2eb1-11ec-aa30-dac502259ad0.gif

“ 01/前言

虹科工业树莓派是一款基于树莓派计算模块进行工业级设计和封装的,并且经过工业标准测试(EN61131-2和IEC 61000-6-2),如EMI,浪涌和突发事件等等,有ESD的极性保护,达到4KV/8KV。

f85db5d0-2eb1-11ec-aa30-dac502259ad0.png 

虹科工业树莓派的操作系统在Raspbian基础上进行了优化,给linux内核添加了RT实时补丁,以使得linux满足硬实时的需求。

f7faeb76-2eb1-11ec-aa30-dac502259ad0.gif

“ 02/Modbus TCP/RTU主从站功能

虹科工业树莓派内置虚拟Modbus TCP/RTU主从站功能,用户可以通过产品上的USB接口(需要USB转接线)/RS485接口连接Modbus RTU设备,并对设备进行读写操作。

fb21c4aa-2eb1-11ec-aa30-dac502259ad0.png

图1.1 虚拟Modbus TCP/RTU主从站

用户可以在网页配置界面PiCtory中对虚拟主从站进行配置。

比如:配置Modbus RTU Master一个任务为每1000ms读取一次从站地址为1,寄存器地址为1的保持寄存器的值,并将读取到的值放入Input_Word_1中,配置好之后读取操作将自动执行,用户只需读取Input_Word_1的值即可获得相应数据。

fba8ee76-2eb1-11ec-aa30-dac502259ad0.png

图1.2 虚拟Modbus RTU Master任务配置

在配置Modbus RTU Master时需要输入通过USB口连接的从站的设备编号的路径,比如:/dev/ttyUSB0。

这就带来一个问题:当从站通过USB口连接到模块时,其设备端口号是系统自动分配的,Linux内核会根据设备插入的先后顺序进行编号的分配,比如第一个插入的设备编号是ttyUSB0,第二个插入的设备编号是ttyUSB1,依次类推。

所以,在每次重启系统之后,连接的Modbus RTU从站的设备编号可能会发生变化,上一次启动时是ttyUSB0,下一次启动就可能变成ttyUSB1。

如果每次启动设备都要检查和修改设备编号路径的话就会在实际应用中带来很多麻烦,那么有没有一种方法可以固定设备编号呢?

答案是肯定的!

我们可以通过指定udev规则,让udev除了产生/dev/ttyUSB*设备文件外,另外再创建一个软链接。具体操作见下文。

f7faeb76-2eb1-11ec-aa30-dac502259ad0.gif

“ 03/udev规则-通过芯片的特定码创建软链接

Vender ID和Product ID,即“厂家标识”和“产品标识”。USB 设备驱动的硬件接口需要识别Vender ID和Product ID。

可以通过lsusb命令查看当前通过USB接入的设备的描述列表,就可以得到设备的Vender ID和Product ID,然后在进行后续绑定。

fca00602-2eb1-11ec-aa30-dac502259ad0.png

图2.1 lsusb命令

从上图可以看到,我通过USB口连接的USB-Serial adapter设备的Vender ID是1a86,Product ID是7523。接下来,在/etc/udev/rule.d目录下创建新的规则文件ttyUSBLink.rules。并输入以下规则:

KERNEL==”ttyUSB*”, ATTRS{idVendor}==”1a86”, ATTRS{idProduct}==”7523”, MODE:=”0666”, GROUP:=”dialout”, SYMLINK+=”modbus_device_1”

保存并退出文件,重新拔插USB设备,新建的udev规则即可生效(若没有生效,以root权限运行命令:service udev reload和service udev restart)。

以上述规则为例,以后无论按照什么顺序插入,都能够通过自定义的modbus_device_1设备文件软链接访问设备,而无需关心系统分配给设备的ttyUSB*的编号是什么。

fd033ec0-2eb1-11ec-aa30-dac502259ad0.png

图2.2 udev规则效果

从上图可以看出,系统自动为我的设备分配的编号是ttyUSB0,同时也创建了一个名为modbus_device_1的软链接,这样就可以在PiCtory界面直接输入软链接的路径。

但很多时候,设备厂商由于一些特殊原因,在串口芯片上写入的设备号是相同的:

fd8d6cb2-2eb1-11ec-aa30-dac502259ad0.png

图2.3 具有相同ID的USB串口设备

那么这种创建软连接的方法就会出问题,此时我们就需要另一种方法,详见下一部分。

f7faeb76-2eb1-11ec-aa30-dac502259ad0.gif

“ 04/udev规则-绑定硬件端口号

如上文所说,我们可能会遇到具有相同ID号的设备,此时通过绑定ID号创建软链接的方法就行不通了,但可以通过绑定硬件端口号实现同样的效果。

每个设备的硬件端口号是不一样的,可以通过udevadm info --attribute-walk --name=/dev/ttyUSB0查看设备的硬件端口号:

fe746798-2eb1-11ec-aa30-dac502259ad0.png

图3.1 查看设备硬件端口号

通过上述命令,可以看到我的ttyUSB0设备的硬件端口号是1-1.2:1.0,ttyUSB1设备的硬件端口号是1-1.3:1.0。

然后修改一下ttyUSBLink.rules文件,改为以下规则:

fece963c-2eb1-11ec-aa30-dac502259ad0.png

图3.2 绑定硬件端口号udev规则

保存并退出后,重新拔插设备就可以看到生成的两个软链接:

ff1ea046-2eb1-11ec-aa30-dac502259ad0.png

图3.3 udev规则效果

需要注意的是,这里涉及的硬件端口号对应的是USB端口而不是USB端口上连接的设备。也就是说,假如你有左右两个USB端口,左边USB端口的端口号是1-1.2:1.0,右边USB端口的端口号是1-1.3:1.0。那么,插入左边USB端口的设备对应的软链接就是modbus_device_1,插入右边USB端口的设备对应的软链接就是modbus_device_2。

虹科--工业物联网

虹科是一家在工业物联网IIoT行业经验超过3年的高科技公司,虹科与世界领域顶级公司包括EXOR、Eurotech、Unitronics、Matrikon、KUNBUS、VDOO、Esper等合作,提供先进的高端工业4.0 工业触摸屏、高端边缘计算机、IoT开发框架、PLC与HMI一体机、OPC UA、工业级树莓派、VTSCADA、VDOO设备安全分析与防护平台、安卓设备一站式管理平台等解决方案。物联网事业部所有成员都受过专业培训,并获得专业资格认证,平均3年+的技术经验和水平一致赢得客户极好口碑。我们积极参与行业协会的工作,为推广先进技术的普及做出了重要贡献。至今,虹科已经为行业内诸多用户提供从硬件到软件的不同方案,并参与和协助了众多OEM的设备研发和移植项目,以及终端用户的智能工厂和工业4.0升级改造项目。


原文标题:虹科教您派固定工业树莓派Modbus RTU设备编号

文章出处:【微信公众号:工业物联网技术】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    218015
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何使用树莓与OpenCV实现面部和运动追踪的云台系统?

    大家好,这是一个树莓和OpenCV的连载专题。使用树莓与OpenCV实现姿态估计和面部特征点追踪使用树莓
    的头像 发表于 08-14 17:45 979次阅读
    如何使用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>与OpenCV实现面部和运动追踪的云台系统?

    树莓屏幕怎么选?

    树莓很多人都用过,但用屏幕的倒不是很多。不少都是直接远程操作,或者直接接身边的显示设备了。但我觉得给开发板配一个屏幕还是很能提升使用体验的。这次我就介绍一下树莓
    的头像 发表于 08-08 14:59 1077次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>屏幕怎么选?

    树莓 Connect 更新,增加三个实用新功能!

    ConnectforOrganisations:改进的审计日志,提高安全性树莓Connect让您能够通过屏幕共享和远程shell从任何地点远程访问树莓
    的头像 发表于 08-05 17:31 916次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b> Connect 更新,增加三个实用新功能!

    树莓操作系统:版本、特性及设置完整指南!

    桌面环境的版本和轻量级、仅用于命令行的最小安装版本。该操作系统设计高效且资源友好,是树莓设备的理想选择。树莓操作系统的优势√轻量高效该操
    的头像 发表于 07-28 18:26 843次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>操作系统:版本、特性及设置完整指南!

    工业树莓的高光时刻!树莓工业级 HMI 列阵!

    上海晶珩作为树莓官方设计合作伙伴和代理商,基于树莓技术开发了一系列工业级人机界面(HMI)产品,广泛应用于
    的头像 发表于 07-23 18:36 545次阅读
    <b class='flag-5'>工业</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>的高光时刻!<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>工业</b>级 HMI 列阵!

    树莓6 传闻:发布日期与规格!

    每当我想再为我的收藏增添一款树莓时,总会在是立即购买还是等待硬件更强大的下一代之间犹豫不决。但新树莓型号的发布往往容易被错过,尤其是在你的信息流被病毒式传播的猫咪视频占据时。因此,
    的头像 发表于 07-11 16:21 1363次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>6 传闻:发布日期与规格!

    搭载树莓CM5:Sfera Labs 工业控制器!

    搭载树莓计算模块5的工业计算机:快速、灵活且可靠!为更好地满足工业客户的需求,SferaLabs对StratoPiMax平台进行了升级,利用树莓
    的头像 发表于 07-01 17:41 543次阅读
    搭载<b class='flag-5'>树莓</b><b class='flag-5'>派</b>CM5:Sfera Labs <b class='flag-5'>工业</b>控制器!

    精通远程控制:借助树莓释放 SSH 的强大功能!

    什么是SSH?我们如何利用SSH连接到树莓、对其进行监控并执行其他任务?注意:文章链接可能需要科学上网。通过SSH连接到树莓是远程管理设备
    的头像 发表于 06-27 15:26 787次阅读
    精通远程控制:借助<b class='flag-5'>树莓</b><b class='flag-5'>派</b>释放 SSH 的强大功能!

    树莓小技巧:无需键盘或显示器,如何通过WiFi设置树莓

    接入,但随着我们逐渐远离台式电脑,找到键盘和显示器变得越来越困难。一旦WiFi设置完成,就可以通过SSH连接到树莓,并从笔记本电脑或其他设备远程与树莓
    的头像 发表于 06-26 15:41 1054次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>小技巧:无需键盘或显示器,如何通过WiFi设置<b class='flag-5'>树莓</b><b class='flag-5'>派</b>?

    树莓分类器:用树莓识别不同型号的树莓

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是树莓
    的头像 发表于 06-13 16:39 1001次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>分类器:用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>识别不同型号的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>!

    树莓“揪出”家里的耗电怪兽!

    在本应用中,我们将使用树莓设置一个CE电流监测器,并通过网页界面显示电路的电流读数。本项目使用的组件硬件组件树莓2ModelBx112通道20安培电流监测控制器x1项目背景介绍在本
    的头像 发表于 06-04 15:33 1147次阅读
    用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>“揪出”家里的耗电怪兽!

    树莓“吉尼斯世界记录”:将树莓的性能发挥到极致的项目!

    树莓是一款功能强大、体积小巧且高度可定制的设备,多年来,我们见证了它被应用于众多领域。无论是将其装入3D打印的经典游戏机外壳,还是简单地将它隐藏起来作为家庭文件服务器,我们都报道过在社区里用
    的头像 发表于 05-22 16:53 1213次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>“吉尼斯世界记录”:将<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的性能发挥到极致的项目!

    树莓 Zero 打造的智能漫游车!

    使用PXFMini和树莓Zero打造自己的自主漫游车。本项目所用组件硬件组件ErleRoboticsPXFmini×1树莓Zero×1
    的头像 发表于 05-13 16:39 874次阅读
    用 <b class='flag-5'>树莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游车!

    浅谈树莓工业领域的应用!

    关于树莓,互联网上总是反复出现一些问题。其中最常见的是:它们是如何被使用的?在这篇文章中,我将重点介绍树莓工业领域的一些应用方式。特别
    的头像 发表于 03-25 09:25 969次阅读
    浅谈<b class='flag-5'>树莓</b><b class='flag-5'>派</b>在<b class='flag-5'>工业</b>领域的应用!

    GPIO在树莓中的应用

    直接控制和读取外部硬件设备的状态。 1. GPIO简介 GPIO是树莓派上用于与外部世界交互的一组引脚。这些引脚可以被配置为输入或输出模式,从而实现对外部设备的控制和数据读取。树莓
    的头像 发表于 01-09 09:41 1254次阅读