[物联网专题] RS485继电器输出之Modbus控制流程和时间优化分析

在工控领域,往往需要大量的输入信号和输出控制信号,以接收各种传感信号和产生输出控制动作。由于PLC的输出触点数量有限,或者因为更多输出触点的PLC价格昂贵,性价比并不高。为了解决这个矛盾,基于MODBUS协议的继电器IO扩展板就得到了巨大的应用,在降低成本的同时,也能大大简化布线。
但是很多工程师在使用继电器扩展板的时候,对于一些控制流程和细节并没有去过多的关注,一些生产厂家也并没有对其性能进行分析和详细说明,使用的时候就变得模模糊糊。
我们以一款常见的8输出继电器扩展板为例来详细测试和分析一下其通讯过程,同时给出优化建议和使用的注意事项。
请添加图片描述

如上图为一款比较常见的基于modbus协议的,采用RS485通讯的8输出继电器控制板。可以设置1-247的站地址,和4个不同的波特率(9600,19200,38400,115200),电源采用二级降压稳定,纹波非常低,工作稳定可靠。RS485端口采用3级防护(防雷,过压,防静电),在工业环境通讯稳如磐石。
话不多说,先上测试连接图:
请添加图片描述
为了测试整个通讯和响应的输出过程,我们连接了如下信号点:
1 . RS485输出端的TX,RX:观察modbus的协议输出
2. 芯片的控制信号输出:观察mcu的输出信号
3. 驱动器的输出:观察驱动延迟
4. 继电器输出:观察继电响应延迟
一条控制命令的发出到产生输出控制,要依次经过以上几个步骤,才能使负载接通。测试图中用红线标明了控制信号的流程。

我们以115200的波特率,用05命令(写单个线圈)为例,来看看整个过程和其消耗的具体时间:
请添加图片描述
我们用逻辑分析仪完整的抓取了整个通讯过程和时间参数,一个控制信号的完成经历了以下几个阶段:

  1. master发出控制命令:一帧数据01 05 00 07 00 00 7C 0B,表示打开第8个输出线圈触点。波特率为115200,1个起始位,8个数据位,一个停止位,无奇偶检验。我们可以计算得出发送一帧命令的时间T=1/115200108 = 694us.
  2. MCU接收完成,并解码后,输出控制信号:用时约2ms。
  3. 经过驱动器,打开驱动开关,开始导通继电器线圈:用时约100ns。说明开关速度还是蛮快的。
  4. 继电器开始吸合:耗时3.745ms。
  5. 继电器吸合稳定:耗时约7580us

从命令开始发送到输出稳定,整个耗时约7ms。换句话说该继电器控制模组的最大响应评论约:142Hz。
对以上过程,我们逐一解析和提出优化的建议和方法:

1 . 串口通讯:由于协议的长度和数据是固定的,要降低这个数据的延迟时间,就要采用高的波特率。
2. mcu接收完成和解码:虽然现在2ms的速度也不低,但是有优化空间,一是提供MCU的运行速度,而是采用中断解码的方式,避免接收完成后的帧超时等待和数据转移的时间。有需要的客户可以和厂家联系定制。
3. 第三,四,五步骤,对于一个固定的继电器来说优化空间不大,只能选择更高速的继电器或者采用晶体管输出来达到这个目的。其原因如下:
我们可以看看该继电器控制板采用的继电器规格书:
在这里插入图片描述
继电器使用的是知名大厂欧姆龙的继电器,继电器规格书给出的吸合时间最大为10ms,我们实际测试的时间为3.7ms,已经是非常优秀的了。
由于继电器属于机械触点,所以在吸合过程中不可避免的会产生机械整栋,是输出过程出现一个开关的往复动作,经过一个时间后才会稳定下来(这个和机械按键的抖动类似)。这个时间极短(实测到约580us)我们在使用过程中如果对这个振动要求很高的话,要特别注意。

***原创文章,转载请注明出处,严禁用于商业用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3269484.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构:基础概念

一、相关概念 概念 相互之间存在一种或多种特定关系的数据元素的集合。 逻辑结构 集合:所有数据在同一个集合中,关系平等。 线性:数据和数据之间是一对一的关系 树: 一对多 图:多对多 物理结构(在内存当中的存储关系)…

AC695x BLE OTA调试

SDK版本:AC695N_soundbox_sdk_release_3.1.0AC695x SDK支持BLE OTA升级,使用杰理公版APP升级即可。SDK需要做一些调整,板级文件需要增加如下配置,使能OTA升级 #define TCFG_APP_BT_EN 1#define APP_UPDATE_EN …

Three.js动效(第09辑):令人瞠目结舌的交互效果,沉浸式体验

three.js能够实现各种3D动态效果,不禁有小伙伴问了,实现这些效果到底有什么意思,其实最大的意义就是给用户沉浸式的体验,瞬间专注用户注意力。 Three.js能够带来以下沉浸式体验: 3D虚拟现实体验: 使用Th…

MATLAB-bode图编程

num[1 1];den [2 1];tf(num,den)bode(tf(num,den));hold on

PHP8.3.9安装记录,Phpmyadmin访问提示缺少mysqli

ubuntu 22.0.4 腾讯云主机 下载好依赖 sudo apt update sudo apt install -y build-essential libxml2-dev libssl-dev libcurl4-openssl-dev pkg-config libbz2-dev libreadline-dev libicu-dev libsqlite3-dev libwebp-dev 下载php8.3.9安装包 nullhttps://www.php.net/d…

Bert文本分类和命名实体的模型架构剖析

文章目录 介绍Bert模型架构损失计算方式BertForSequenceClassificationBertForTokenClassification Bert 输出结果剖析例子 参考资料 介绍 文本分类:给一句文本分类; 实体识别:从一句文本中,识别出其中的实体; 做命名…

由于误操作原因丢失了照片?6 款 Android 照片恢复应用程序可能有帮助

由于意外删除,软件故障,系统崩溃,恢复出厂设置或任何其他原因,您可能会丢失Android手机中的照片。无论如何,您仍然有很大的机会借助Android照片恢复应用程序恢复照片。有很多应用程序提供恢复支持,但并非所…

zeal 开发者离线文档工具

zeal是一款程序开发者不可或缺的离线文档查看器 下载地址 官网地址: windows版csdn下载:https://zealdocs.org/download.html#windows windows版官网下载:https://zealdocs.org/download.html#windows 下载压缩版,解压即用相对…

Matlab类阿克曼车机器人运动学演示

v1是后驱动轮轮速, v2是转向角变化速度, 实际上我们只需要关注XQ, YQ和Phi的变化率。 通过这三项和时间步长, 我们就可以计算出变化量, 再结合初始值就能推断出每个时刻的值。 % 清理当前运行环境 % 清除所有变量 cle…

搭建自己的金融数据源和量化分析平台(三):读取深交所股票列表

这里放出深交所爬虫模块的代码: # -*- coding: utf-8 -*- # 深圳交易所爬虫 import osimport pandas as pd import requests#读取最新深交所股票列表 def get_stock_list():cache_file_path "./sotck_file.xlsx"url "https://www.szse.cn/api/rep…

Passing output of 3DCNN layer to LSTM layer

题意:将3DCNN(三维卷积神经网络)层的输出传递给LSTM(长短期记忆网络)层 问题背景: Whilst trying to learn Recurrent Neural Networks(RNNs) am trying to train an Automatic Lip Reading Model using 3…

Linux基础I/O之文件描述符fd 重定向(下)

目录 四、文件描述符 4.1 文件描述符的内核本质 4.2 文件描述符的分配规则 五、重定向 四、文件描述符 在回忆起上述知识后,那么文件描述符到底是什么呢? 我们不难注意到,刚刚的open接口系统调用接口其实是有返回值的(一个int…

FTP(File Transfer Protocal,文件传输协议)

文章目录 引言FTP管理工具FTP客户端FTP连接模式控制连接数据连接FTP命令/响应FTP命令FTP响应FTPSSFTP引言 FTP(File Transfer Protocal,文件传输协议)用于建立两台主机间的数据文件传输下载。使用客户/服务器(Client/Server)架构,基于TCP协议,服务端口为21。 FTP链接…

17.延迟队列

介绍 延迟队列,队列内部是有序的,延迟队列中的元素是希望在指定时间到了以后或之前取出和处理。 死信队列中,消息TTL过期的情况其实就是延迟队列。 使用场景 1.订单在十分钟内未支付则自动取消。 2.新创建的店铺,如果十天内没…

行锁表锁都是渣渣,元数据锁才是隐藏大佬

什么是元数据锁? 英文名叫Metadata Lock,缩写为MDL,顾名思义,它是针对元数据的一种锁,锁的是元数据。 那什么是元数据? 一张表有100条记录,这里的记录我们可以称之为表数据,一张表…

深入了解:MinIO 企业对象存储的可观察性

可观测性是指收集信息(跟踪、日志、指标),以提高性能、可靠性和可用性为目标。很少有人能确定其中一个事件的根本原因。通常情况下,当我们将这些信息关联起来形成叙述时,我们就会有更好的理解。从一开始,Mi…

7.27扣...

知识点补充: 1.StringBuilder StringBuilder 类在 Java 中是一个可变字符序列。与 String 类不同,StringBuilder 可以在创建之后被修改。这意味着你可以向 StringBuilder 对象追加、插入或删除字符,而不需要创建新的对象(辅助数…

池化层pytorch最大池化练习

神经网络构建 class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.maxpool1 MaxPool2d(kernel_size3, ceil_modeFalse)def forward(self, input):output self.maxpool1(input)return output Tensorboard 处理 writer SummaryWriter("./l…

F4A0手把手教程1: 华大单片机HC32F4A0如何新建工程(ddl库版本)

开发板请点击:https://item.taobao.com/item.htm?spma21n57.1.item.3.5fc760c3ycChCu&priceTId2150418a17219238749041878ec06d&utparam%7B%22aplus_abtest%22:%222166044947a45798ae4c3d102fcea719%22%7D&id707262644934&ns1&abbucket20 准备…

高速板开源工程的学习(一)

泰山派NAS-原理图和PCB设计经验分享-塞塞哇 (saisaiwa.com) BGA扇出的时候千万小心,导线到焊盘的距离大于0.1MM,千万小心,不然会寄寄的,这个在设计规则里面可以设置: 这种就容易造成阻焊开窗的误判,是很不规范的&…