上海羊羽卓进出口贸易有限公司

读取传感器的数据 传感器获取数据的方式:被动式,主动式,存在感越低越好

发布时间:2024-11-24 17:11:40

传感器获取数据的方式:被动式、主动式,存在感越低越好

#可穿戴#日常生活中我们会接触到很多可穿戴类设备,如智能手表类、运动类、监测类设备,它们中或多或少的都采用了红外、电感应、角度、体态等等不同类型的传感器,这些传感器看似种类繁多、功能复杂,但大体不外乎分为两类,被动式或者主动式。

我先来说明一下什么是主动式,什么是被动式:

主动式传感器是指通过向被测物体发射能量,测量反射回来或者投射出去的能量变化情况的传感器, 最典型的就是目前被广泛用于手表类设备中的发光管或者集成光学传感器,大体的结构如下:

从上面的图片上可以看到左侧波长660nm和880nm两个发光二极管,右侧可见光红外光传感器,当左侧的发光关发出信号时,右侧的接收管会通过二者之间的光学路径获取光强信息,而光强信号取决于发光管的发光强度以及发光路径(经过被测物体)的信号衰减程度。

接下来是被动式传感器,被动式传感器本身并不产生能量,而它可以通过获取物体自身产生的信号来做出相应的动作或输出相应的物理量变化, 比较常见而且相对简单的被动式传感器有MIC,可千万别小看这个小东西,它的应用场合相当广泛,种类也比较多,我的手机里有它,电子乐器中也有,一些高档的远程会议系统中也包含了MIC阵列,采集后的数据也有大量的技术人员在做算法研究,为我们的生活提供了很多便利,最突出的就是语音识别技术。

明白了传感器的分类,我想重点说一下我对于这两大类传感器的一些理解,在我看来不论什么样的传感器都是用在应用场合,以最小代价和干扰程度存在的传感器才是最好的

主动式传感器获取数据最大的缺点在于,有能量不可避免的注入到被测物体中,我们都学过能量守恒,当一个物体获取能量时,必然会导致它本身一些特征发生变化,举个比较容易理解的现象来说明,太阳光照到我们身上,我们会感到暖和,这里的太阳就是主动式传感器的发射部分,我们身体就是能量的被注入者,我们会感到热,因为我们吸收了能量。

有人会问,这有什么不好么?你想一下如果我们要测的对象是一个物体本身的温度,而我们测量过程中却给物体注入了能量,而导致物体升温,那测量的结果会真实的反应出物体的本质特性么?这就是关键所在。

所以现在很多可穿戴类设备开始大量采用被动式传感器作为测量主体,被动式传感器 也具有很多的优势,由于不需要发射能量,所以功耗低 ,比如我们测走路姿态的智能鞋垫,测量的传感器实际上就是感测不同点的压力,输出的结果是电阻值的变化,传感器本身的能耗是uA级别,这就为长期使用提供了便利,用户使用过程中几乎感觉不到传感器的存在。

综上所述,未来传感器的的使用和设计在被动式方面一定会有很大的发展空间,过去一些使用主动式传感器的场合也会慢慢被替代,我一直坚信只有存在感越低的可穿戴类设备才会真的有前景,也更贴合日常使用。

实例:S7-200 SMART通过Modbus-RTU读取温湿度传感器数据

本实例我们介绍下西门子S7-200 SMART PLC如何通过Modbus-RTU协议读取温湿度传感器的数值。实例使用的硬件如下:

S7-200 SMART CPU ST20;温湿度传感器(支持Modbus-RTU协议);

本文包括如下几个主题:

1、温湿度传感器外观、接线及通信参数介绍

2、CPU ST20与温湿度传感器的接线;

3、CPU ST20的编程;

1、温湿度传感器外观、接线及通信参数介绍

本例程使用的温湿度传感器能检测的温度范围为:-40℃~120℃,湿度范围为:0%~100% rh,其外观如下图所示:

该温湿度传感器有四条线,颜色分别是:红、黑、黄、绿,各线的定义如下:

该温湿度传感器支持Modbus-RTU协议,相关通信参数如下:

支持的波特率:1200bps、2400bps、4800bps、9600bps、19200bps,默认为9600bps;通信设置:起始位1位,数据位8位,停止位1位,无校验位;支持站地址范围:1~247,默认为1;支持Modbus功能码0x03读取数据,数据格式如下表所示:

支持Modbus功能码0x10或者0x06修改传感器的站地址或者波特率,数据格式如下表所示:

①0=1200bps;1=2400bps;2=4800bps;3=9600bps;4=19200bps;

2、CPU ST20与温湿度传感器的接线

本例程使用CPU ST20本体集成的串口(编号:Port0)连接温湿度传感器。Port0针脚定义如下表所示:

需要说明的是,西门子RS485信号线定义与很多厂家不同:多数厂家定义RS485信号A线为正极,信号B线为负极;但是西门子定义A线为负极,信号B线为正极。

因此,在本例程中,温湿度传感器的黄线(RS485+)应该与CPU ST20本体串口Port0的3号引脚相连;同时,温湿度传感器的绿线(RS485-)应该与Port0的8号引脚相连;

3、CPU ST20的编程

使用S7-200 SMART的库指令【Modbus RTU Master】中的MBUS_CTRL指令和MBUS_MSG指令来与温湿度传感器进行Modbus-RTU通信。

MBUS_CTRL指令用来配置Modbus主站的通信参数,需要在每个扫描周期都调用。指令各参数含义如下:

Mode:通信协议的类型;0=PPI协议;1=Modbus协议;Baud:波特率;Parity:校验位,0=无校验,1=奇校验,2=偶校验;Port:端口号,CPU本体串口编号为0,通信板编号为1;Timeout:超时的时间值,单位为毫秒;Done:指令是否完成;Error:指令执行的状态值,0=没有错误;

指令执行在线状态如下图所示:

MBUS_MSG指令用来与子站进行数据交换,其各参数含义如下:

First:请求数据交换,需要上升沿信号;Slave:从站地址;RW:读取或写入数据,0=读取,1=写入;Addr:Modbus寄存器地址;Count:要读取的数据长度;DataPtr:数据的存放地址;Done:指令是否执行完成,1=完成;Error:指令执行的状态值,0=没有错误;

指令执行在线状态如下图所示:

通过状态图表,可以监控到读取的数值为293和639,分别表示温度为29.3℃和63.9%rh的湿度,如下图所示:

好了,这就是CPU ST20通过Modbus-RTU协议读取温湿度传感器数值的例程。我的新书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》有更多通信的内容介绍,点击下面的链接查看关于该书的介绍。

#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } S7-200 SMART应用技术 ¥87.1 购买

相关问答

传感器数据 怎么看

[最佳回答]氧传感器数据解读:1、通过万用表检测;2、通过读取氧传感器波形;3、读取氧传感器数据流。都可以分析氧传感器好坏4、分析:前氧传感器电压是在0.1到0...

lora模块怎么得到 传感器的数据 ?

这个根据不同的传感器有不同的方案。大致都是这样的。传感器采集的数据,转换为数字量(比如RS485),然后连接无线传输终端(CDMA或者GPRS,zigbee等)。上位机...

...andriod加速度 传感器的数据读取 应用_汽配人问答

[最佳回答]在HAL文件中,会有一组宏定义,用于把从传感器中读取的加速度数据转换为标准单位(m/s2)。如以下代码://conversionofaccelerationdatatoSIu...

扫描仪如何识别 数据 ?

..接下来,打开扫描仪软件,选择扫描选项并配置扫描设置,例如分辨率、文件类型和保存位置等。如果您需要扫描多页文档,可以选择“多页文档”选项。然后单击“...

怎么把 传感器 采集到的信号传送到电脑里? - 199****3365 的回...

使用传感器采集到的信号传输到电脑里面,需要一个接口才可以。比如电脑上面的串口,USB,或者网口等等的。就比如我们要把另一台电脑里面的数据传送到...

为啥电脑一直显示正在 读取传感器 ?

当电脑一直显示正在读取传感器时,可能有以下原因:1.传感器故障:传感器可能出现了某种故障,导致电脑无法正常读取其中的信息。2.内部错误:有时,电脑会出...

做一个项目,要将4个压力 传感器的数据 实时传入电脑,怎么办?是用PLC还是单片机?

用带有AD(模数转换)功能的单片机采集压力传感器数据,然后通过RS232接口将数据实时传入电脑,这是最简单最经济的做法。当然,如果传输距离较远(大于3米),可...

空调 传感器 插到主板哪里?

空调传感器通常插到主板上的传感器接口,这个接口通常标注为“SENSOR”或“TEMP”。在安装传感器之前,需要先确认主板上是否有这样的接口,然后将传感器插入接口...

组态王软件如何采集一般 传感器的数据 ?一般用什么数据采集器?

如果传感器直接是模拟量信号的话组态王通过PLC或者工业采集卡去读取模拟量数值;如果传感器带二次仪表,支持串口通讯的话那就直接接在电脑串口上,组态王里面找...

传感器 输出信号的处理?

传感器一般分为模拟传感器和数字传感器。而单片机只能处理的是数字信号,不能处理模拟信号。所以当传感器为数字传感器时,信号可以直接通过单片机的端口读入内...

展开全部内容