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

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

3天内不再提示

工业树莓派能不能固定设备编号

广州虹科电子科技有限公司 来源:广州虹科电子科技有限公 作者:广州虹科电子科技 2021-10-28 09:16 次阅读

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

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

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

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

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

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

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

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

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

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

答案是肯定的!

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

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

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

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

d3176470-377f-11ec-82a8-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*的编号是什么。

d3887ec6-377f-11ec-82a8-dac502259ad0.png

图2.2 udev规则效果

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

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

d40937b4-377f-11ec-82a8-dac502259ad0.png

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

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

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

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

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

d500058a-377f-11ec-82a8-dac502259ad0.png

图3.1 查看设备硬件端口号

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

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

d52e6dbc-377f-11ec-82a8-dac502259ad0.png

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

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

d5848954-377f-11ec-82a8-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。

责任编辑:haq

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

    关注

    116

    文章

    1699

    浏览量

    105525
  • 虹科电子
    +关注

    关注

    0

    文章

    593

    浏览量

    14268

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

文章出处:【微信号:Hongketeam,微信公众号:广州虹科电子科技有限公司】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一体成型电感外壳破损还能不能

    电子发烧友网站提供《一体成型电感外壳破损还能不能用.docx》资料免费下载
    发表于 10-31 10:57 0次下载

    什么是树莓树莓是什么架构的

    什么是树莓 树莓(Raspberry Pi,简写为RPi,别名为RasPi/RPI)是由英国“Raspberry Pi 慈善基金会”开发的一款为学习计算机编程教育而设计的微型电脑。
    的头像 发表于 10-22 17:33 535次阅读

    树莓网关:物联网应用的新标杆

    的特点是体积小巧(大约信用卡大小),但功能齐全,足以支持多种计算任务。 树莓经常被用作物联网网关,收集设备数据,然后将数据上传云平台,并还可以用来接收来自云端的控制指令,控制其他连接的设备
    的头像 发表于 10-09 16:44 242次阅读
    类<b class='flag-5'>树莓</b><b class='flag-5'>派</b>网关:物联网应用的新标杆

    UTB定位技术能不能精准定位

    在当今科技日新月异的时代,定位技术以其广泛的应用场景和不断提升的精度,成为了多个领域的核心支撑。其中,UTB定位技术以其高精度、低延迟和高抗干扰性等特点,在众多定位技术中脱颖而出,成为精准定位领域的佼佼者。那么,UTB定位技术到底能不能精准定位呢?下面就给大家具体介绍一下关于UTB定位技术。
    的头像 发表于 09-03 10:07 270次阅读

    树莓和单片机的优缺点是什么

    )接口,树莓可以连接各种传感器、执行器和其他外围设备。 易于编程 :树莓支持多种编程语言,如Python、C++、Java等,使得
    的头像 发表于 08-30 18:21 1463次阅读

    树莓的功能用途是什么

    、科研、工业控制、物联网、多媒体播放、家庭自动化等领域。 树莓(Raspberry Pi)是一种小型、低成本的单板计算机,由英国的Raspberry Pi基金会开发,其功能和用途非常广泛。以下是
    的头像 发表于 08-30 18:01 2251次阅读

    linux开发板与树莓的区别

    定义和用途 Linux开发板:Linux开发板是一种基于Linux操作系统的嵌入式开发板,通常用于工业自动化、物联网、智能家居等领域。 树莓树莓
    的头像 发表于 08-30 15:34 774次阅读

    电源适配器功率大了能不能

    电源适配器功率大了能不能用,需要根据具体情况进行判断。如果电源适配器的输出电压和电流与设备匹配,且功率略大于设备所需的功率,那么可以使用。但如果电源适配器的输出电压或电流与设备不匹配,
    的头像 发表于 08-02 09:25 1409次阅读

    虹科干货 | 多设备协同无忧:Linux环境下PCAN固定设备ID/通道分配指南

    在车辆网络系统和工业自动化等多设备环境中,确保设备识别的一致性对于维护系统稳定性至关重要。虹科PCAN适配器提供了一种解决方案,允许用户在Linux环境下固定设备ID和通道分配,从而不
    的头像 发表于 06-11 15:03 427次阅读
    虹科干货 | 多<b class='flag-5'>设备</b>协同无忧:Linux环境下PCAN<b class='flag-5'>固定设备</b>ID/通道分配指南

    同VLAN不同的网段能不能互通?

    同VLAN不同的网段能不能互通? 同一个VLAN中的设备拥有相同的网络地址范围,因此它们可以通过该VLAN进行通信。而不同VLAN中的设备拥有不同的网络地址范围,它们通常不能直接互通。
    的头像 发表于 02-04 11:21 2949次阅读

    UPS电源是什么?UPS能不能带感性负载?

    UPS电源是什么?UPS能不能带感性负载? UPS是不间断电源的缩写,是一种供电设备,用于在主电源故障或电网不稳定时提供电力供应。UPS主要由直流电源、电池组、逆变器、放大器和智能电源管理芯片等组成
    的头像 发表于 01-10 15:47 1362次阅读

    宏集方案 | 如何用工业树莓和MQTT平台打通OT和IT?

    如何用工业树莓和MQTT平台打通OT和IT?
    的头像 发表于 01-05 11:01 356次阅读
    宏集方案 | 如何用<b class='flag-5'>工业</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>和MQTT平台打通OT和IT?

    pcb压合缓冲垫,究竟能不能让你的电路板更安全?

    pcb压合缓冲垫,究竟能不能让你的电路板更安全?
    的头像 发表于 12-27 10:13 839次阅读

    C语言中结构体能不能相加

    C语言中,结构体能不能相加?
    的头像 发表于 12-19 17:04 1214次阅读
    C语言中结构体<b class='flag-5'>能不能</b>相加

    克服端口顺序影响,使用PCAN实现固定设备ID/通道分配

    本文将详细介绍如何使用PCAN进行固定设备ID/通道分配,帮助您更好地理解和应用PCAN产品。
    的头像 发表于 12-18 13:56 545次阅读
    克服端口顺序影响,使用PCAN实现<b class='flag-5'>固定设备</b>ID/通道分配