作者 - gao ya

采集卡采集编码器(光栅尺)数据

一、光栅尺的结构

编码器是一种可以将角位移或直线位移转换成电信号的设备。

图 1 编码器

而光栅尺则是编码器的一种,多用来测量直线位移。

图 2 光栅尺

光栅尺是由标尺光栅和光栅读数头两部分组成。一般将标尺光栅固定,以光栅读数头的移动来检测位移。光栅读数头由光源、透镜、指示光栅、光敏元件等组成。如图下图所示:

图 3 光栅读数头

其中指示光栅又是光栅读数头的重要部分,它直接决定了光栅尺的测量精度。

二、什么是光栅?

那么光栅是什么呢?光栅是在玻璃上刻出大量平行等间距的刻痕,刻痕为不透光部分,刻痕间的狭缝为透光部分。精制的光栅可以在1cm的宽度内刻出几千条乃至上万条的刻痕。

图 4 光栅

三、光栅尺是如何测量的

光栅尺的测量利用了光栅产生的莫尔条纹现象。莫尔条纹是一种光学现象,在技术上它是指:两条线或两物体间以恒定的角度和频率发生干涉的视觉结果。在光栅尺中,当我们使标尺光栅与指示光栅产生一个微小夹角时,就会产生莫尔条纹。如图:

图 5 莫尔条纹

那么莫尔条纹为什么会产生这样明暗相间的视觉现象呢?我们以简化图像来做解释。

图 6 简化后指示光栅与标尺光栅所形成的夹角

如上图,当有光源照射时,交叉点近旁的部分由于不透明区域重叠,因而遮光面积最小光线可以大量穿过,又受到遮光效应、衍射效应、干涉效应等多种原理的影响,这个区域就出现亮带。相反,距离交叉点较远的区域,光栅上的不透明区域重叠部分变少,使得遮光面积变大所以就形成了暗带。

1874年英国物理学家瑞利首先揭示出了莫尔条纹图案的科学和工程价值,指出了通过观察莫尔条纹的移动来测量光栅相对位移的可能性。

图 7 瑞利

以下图为例我们简单说明莫尔条纹在光栅尺中的使用。

图 8 莫尔条纹的使用

假设我们要测量位移量x,那么只要知道光栅的栅格宽度d和移动的栅格个数N,位移量就可以表示为x=N·d。栅格宽度已知,移动的栅格数又该如何计算呢?

容易想到,假设有一个固定点,当光线穿过光栅投射到固定点上时,由于光栅的移动,那么固定点上光线的变化就是明暗交替的。

图 9 光栅的交替变化

如果我们记录这种变化,就可以知道移动的栅格数N,但光栅上的狭缝很窄,移动时固定点上的明暗变化难以辨别。倘若我们能将这种现象放大那么问题就可以迎刃而解,而莫尔条纹就有这样的放大作用。

我们来计算一下,将莫尔条纹中两条亮纹或两条暗纹之间的距离称为莫尔条纹的宽度,用W表示。将指示光栅与标尺光栅之间偏差的角度设为θ,指示光栅栅格宽度设为d。而且莫尔条纹的排列方向与两片光栅线夹角的平分线相垂直。

图 10 放大作用计算

又因为θ很小,所以W=d/θ。设d=0.01mm,θ=0.001rad,则W=10mm。这样莫尔条纹就将栅距放大了一千倍,而且每当光栅移动一个栅距,莫尔条纹就会走过一个条纹间距,固定点也就是读数头中的感光元件就会经历一个周期的变化。这样就可以将周期性的光信号转化为正弦信号或者方波信号,这些电信号通过电路整形处理后就可以得到移动的栅格数N,那么物体的位移量自然能够计算。

四、光栅尺如何判断方向

通过以上方法,我们虽然求出了物体的移动距离,但却无法判断它的运动方向,该怎么做呢?我们可以在读数头内放置四个相差四分之一栅距的感光元件,分别是A+、A-;B+、B-。

图 11 读数头内放置感光元件

这样每个感光元件的输出信号之间就会相差四分之一个周期。如图

图 12 A、B相信号

A信号由A+-A-可得,B信号由B+-B-可得。

当A信号超前B信号时尺体正向移动。

图 13 正向移动

当A信号滞后B信号时尺体反向移动。

图 14 反向移动

有些光栅尺还可以输出Z信号也就是回零信号。同时A信号与B信号还具有其他功能,其一:防止信号的干扰。假设,当A信号的上升沿到来时,系统没有接收到B信号的上升沿那么系统就不会计数。或者当A信号受到干扰产生了两个上升沿那么系统也会排除这个干扰。因为,当系统收到A的上升沿时,就会去查询B的上升沿是否到来而不会对A信号的另一个上升沿计数。其二:提高光栅尺的精度。一个完整的信号周期A信号会产生一个上升沿和一个下降沿,B信号也会产生一个上升沿和一个下降沿。计数时,每当A信号的上升沿到来,系统计数一次,这就是一倍频,使用的是光栅尺栅距的精度。当对A信号的上升沿和下降沿分别计数时,就是二倍频,就将一个栅距分成了两份。当对A信号与B信号的上升沿和下降沿都分别计数时,就是四倍频,这样光栅尺就可以测量更加精细的位移。如下图所示:

图 15 倍频

五、其他类型的光栅尺

因为光栅尺在机床中使用较多,每次重启机器时,都要确定光栅尺的位置信息,所以人们又发明出增量式光栅尺和绝对式光栅尺。在增量式光栅尺上刻有一个或多个参考点,通过这些参考点确定位置信息才能够执行回零操作,这些参考点就是之前我们所说的Z轴,但是当机器上有多个轴时回零操作会变得即复杂又耗时。在这种情况下,就可以使用绝对式光栅尺。这种光栅尺是在标尺光栅上刻划一条带有绝对位置编码的码道。每当机器重启后,光栅尺可以通过读数头直接读取当前的绝对位置信息,就无需归零操作从而简化了系统的设计。

六、光栅尺的精度和分辨率

最后,我们介绍一下光栅尺精度和分辨率的内容。光栅尺中的精度其实是说光栅尺的制造误差。比如±0.275μm/10mm、±0.750μm/50mm,就是说运动10mm和50mm可能产生的误差分别是±0.275μm和±0.750μm。要注意的是如果光栅尺精度为±0.275μm/10mm并不能推导出±2.75μm/100mm,它们之间是没有这样的线性关系的。光栅尺上标注的分辨率,一般是经过分频得到的。分频方法有上文介绍过的物理分频还有一种电子电路的分频方式。举个例子,当光栅尺的栅距为25um,每当尺体移动25um时就会输出一个周期,在经过电路的50倍细分后尺体每移动25um就会输出50个周期,也就是厂家所说的分辨率为0.5um(25÷50)。需注意的是,当尺体的移动不超过25um时读数头是不会输出周期的。

七、光栅尺的特点

通过以上内容可以总结出光栅尺的特点有:

1 很高的检测精度,经过细分后可以达到0.1微米的分辨率

2 响应速度快,可以实现动态测量,有利于自动化控制

3 对环境的要求高,怕油污、灰尘及振动

4 安装维护困难,成本较高。

以上就是我们对于光栅尺的内容介绍,编码器与光栅尺的结构相差不大很多内容都有共同点,这里就不在另行说明。

八、实验

接下来我们完成一个以数据采集卡采集光栅尺位移数据的实验。本次实验所用的器材有:光栅尺、USB-3313数据采集卡

图 16 实验设备

在开始实验前我们先了解一下光栅尺的具体参数,此款光栅尺定义行程:200mm(可测量的最大距离约为220mm)、栅距:0.02m(一个信号周期)、精度:0.005mm(最小测量步距)。

光栅尺管脚定义:红色1接电源正极、黑色2接电源负极、绿色3定义为A相信号、白色4定义为B相信号,橙色5定义为Z相信号。

下面我们进行各设备间的接线:首先将采集卡的Ct 0 Src端口与A相(绿色)连接,将Ct 0 Gate端口与B相(白色)连接,将Ct 0 Z与Z相(橙色)连接。因为光栅尺提供了电源插头,我们将光栅尺的GND端也就是电源负极与采集卡的DGND端相连。将电源正极与光栅尺正极(红色)相连,将采集卡与电脑连接。

图 17 设备接线

打开最新的DAQ Software软件,点击Coder,开始设置参数。

图 18 点击Coder

采样率设置为10000。

图 19 设置采样率

通道选择CT 0,编码器类型选择QuaEncodeX4,它意味着每个信号周期可发生四次增量或减量,对应的是每个周期可发生四次测量步距(0.005mm)的增量或减量。在单位变换中设置每脉冲表示值为5,单位是um(微米)。

图 20 通道及单位设置

点击下一步,数据存储不勾选。

图 21 数据存储不勾选

触发选择及时出发,点击完成。

图 22 及时触发

将软件横坐标设置为0至10000,点击启动。光栅尺起始位置是0。

图 23 光栅无动作

滑动光栅尺就可以看到软件将光栅尺的数据信息表现出来,在软件右侧可以直接读出光栅读数头走过224.115mm(毫米)。

图 24 滑动光栅尺

快速移动光栅读数头,可以看到程序波形随之而改变。

图 25 快速移动光栅尺

微小的移动也会反应到波形图中。

图 26 微小移动

以上就是Smacq采集卡连接光栅尺的全部内容。希望可以对大家有所帮助。采集卡的更多内容可在网站内查看。

数据采集与传感器

一、传感器与计算机的关系 本篇文章我们要谈谈数据采集与传感器之间的关系。在计算机发明之前,人类的数据采集过程是这样的,用度量衡工具及自身感官感受被测物的信息,然后用纸和笔将数据记录下来。 图 1  人的感觉器官 但随着科学研究的不断深入以及生产实践的要求 图 2  现实要求 人们要处理的数据量变得越来越多,需要的测量信息也越来越精确。这个时候传统的数据采集和记录的方法已经远远不够了。为了解决这个问题,计算机和传感器走进了人们的视野中。 图 3  计算机和传感器 计算机是一种用于高速计算的电子计算机器。它能够自动、高速处理海量的数据。计算机的发明大大提升了人类的计算能力 图 4  提高了计算能力 但它只能处理0101这样的电信号,而现实生活中大都是非电量的信号 图 5  各种物理量 如果还是用人工的办法将信息输入到计算中,那么它的效率肯定是不高的。怎么办呢?这就要用到传感器了。 图 6  传感器 传感器是一种检测装置,能够感受被测物的信息并将感受到的信息按一定的规律变换成为电信号或其它所需形式的信号输出的装置。按功能可将传感器分为:温度传感器、湿度传感器、压力传感器、位移传感器、加速度传感器、扭矩传感器等。 图 7  传感器按功能分类 二、传感器与计算机的中介——数据采集卡 传感器输出的是模拟信号而计算机可以接收的是数字信号,所以想要将传感器的信号传输到计算机中还需要一个器件——模数转换器。它可以将传感器产生的电信号也就是模拟信号转化为计算机可以接收的数字信号 图 8  模数转换器(ADC) 但完成这样的任务需要对模数转换器进行电路设计、制版、焊接、编程、调试等一系列的工作才可以。为了降低使用门槛,一种使用通用计算机接口的集成了模数转换器和基本信号调理功能的数据采集设备便应运而生,也就是通常所说的数据采集卡。 图 9  采集卡的出现 三、数据采集卡的分类 我们可以按照以下两种方式选择数据采集设备。按照与计算机接口的连接方式可将采集卡分为:USB接口、PCI/PCIE、PXI/PXIE接口、RS232/485接口,以太网接口等。 图 10  按照接口分类的采集卡 这些接口类型各有优势:USB接口的设备适合小规模的系统集成和实验室应用;PCI和PXI接口的设备适合大规模的集成应用;RS-485和以太网接口的设备在远距离、分布式场景中更具优势。 若按照应用分类则可以分为专用数据采集卡和通用数据采集卡。 图 11  按应用分类的采集卡 专用数据采集卡具有针对某种特定类型传感器的信号调整电路,使得该数据采集卡与这些传感器的连接更加便捷。 图 12  专用采集卡 比如热电偶专用数据采集卡会配置有高增益的放大器和冷端补偿电路,但在专用数据采集卡上想要连接其它类型的传感器就会非常困难,所以使用更多的是通用数据采集卡。它接收的大多是电压型信号,量程为10V或5V。一般会为通用数据采集卡配置程控放大器用来扩大采集卡的应用范围。 图 13  通用数据采集卡 四、数据采集卡的简单使用 举个例子,如果我们想采集环境的湿度应该怎么做呢?首先应该选择一种湿度传感器 图 14  湿度传感器 为了适配一般类型的数据采集卡我们需要让传感器输出标准的电压信号,也就是10V或5V的电压信号。这里选择的是需要5V供电,输出电压为0~3V,对应湿度为0~100%的湿度传感器。 图 15  传感器参数 然后,我们要把湿度传感器的电压输出线连接到采集卡的模拟输入端,这样才能采集到传感器的电压信号。最后通过USB线将电脑和采集卡连接,就可以在电脑上观察分析湿度传感器所输出的信号了。 图 16  湿度传感器与采集卡的连接 这里选择的是Smacq的数据采集卡,它有配套软件可以在电脑上运行,所以我们要先调整一下软件的设置参数。勾选AI 0通道,把通道注释标注为湿度。传感器的输出是0-3V,那么量程就设置成5.12V。 图 17  勾选通道及选择量程 因为传感器输出速率较低,所以设置采样率为5就可以了。 图 18  设置采样率 勾选单位变换功能,设置传感器的单位为“%”,将传感器输出电压上限改为3V。 图 19  勾选单位变换功能 其他设置不变。取消自动调整Y标尺并将坐标量程改变为0~100。启动采集,软件就可以显示采集卡采集到的传感器输出电压。当环境湿度增加后可以明显在软件中看到数据的变化。 图 20  开始采集信号 以上这些,就是一次完整的采集湿度传感器数据的过程。在这个过程中,传感器输出的模拟电压可以很好的被采集卡所采集。那么,当我们找不到能够和数据采集卡适配的传感器时该怎么办?比如这个热电偶传感器,它产生的电压比较小,不适合直接连接到采集卡上。 图 21  热电偶 这时就要用到一种叫变送器的设备,将非标准信号转换为标准信号。 接下来我们看一看变送器对采集数据的影响。 第一次实验是将K型热电偶直接连接到采集卡的模拟输入通道上。 图 22  直接采集信号 打开软件,设置相关参数,勾选AI 7通道,由于热电偶输出的信号比较小,量程选择0.64V。 图 23  选择通道及量程 采样率设置为5。因为通用采集卡没有冷端补偿,所以不能进行单位变换。开启软件的数据采集功能,画布会显示环境温度对应的电压值,提高环境温度,数据也会发生相应的变化。 图 24  温度上升 图 25  温度下降 第二次实验将K型热电偶与变送器连接,因为变送器需要电源供电,所以与采集卡的连接方式略有不同。 图 26  利用变送器采集信号 完成连接后我们对采集卡软件进行简单设置:变送器输出的是标准的电压信号,所以通道量程不需改变。 图 27  通道量程不变 而且可以开启单位变换功能,传感器量程上限为350,下限为-130,单位是℃,传感器输出电压是0~10V。 图 28  开启单位变换功能 启动采集,在软件画布上就会出现当前的环境温度。 图 29  温度升高 图 30  温度下降 将两组实验数据对比,在同样的温度变化下可以明显看出数据波形的优劣。 图 31  温度变化对比 当然并非所有非标准电压输出的传感器都要连接变送器:输出电流信号的传感器可以使用取样电阻将电流信号转变为电压信号再输入到采集卡中 图 32  利用电阻取样 输出频率、脉冲信号的传感器可以使用采集卡的计数器功能进行信号采集。 图 33  计数器功能 如果有机会的话,我们将在之后的文章中介绍它们的采集方法。

M系列模块软件安装及使用

文章主要介绍关于M系列模块的相关内容。我们以M2101模块为例,它主要应用在热电偶温度采集方面。 图 1  模块介绍 一、M模块的软件安装 M系列模块的全称叫做MODBUS远程I/O模块,顾名思义,M系列各型号的模块都是基于标准的MODBUS RTU协议来完成设备间的通信。关于协议的规定及内容,大家可以到官网的视频中心观看相应内容。在使用M2101模块之前(以下简称模块),我们可以从官网下载它的应用软件。 要注意的是这个软件只能安装在Windows操作系统中。 打开官网smacq.cn。 图 2  应用下载和安装(一) 进入服务支持页面点击应用软件往下翻就可以找到MODBUS远程I/O模块数据采集软件。 图 3  应用下载和安装(二) 点击下载后会跳转到网盘界面,然后输入官网中给出的提取码就可以下载文件了。 图 4  应用下载和安装(三) 为节约时间,我们已提前将文件下载并解压完成。打开已经解压好的文件夹,双击setup.exe程序,软件就开始安装。 图 5  应用下载和安装(四) 大家可以自行选择软件的安装路径 图 6  应用下载和安装(五) 一直点击下一步,等待一会,软件就安装好了。 图 7  应用下载和安装(六) 二、模块使用准备 在开始菜单中可以找到刚刚下载的软件。现在软件方面的准备已经基本完成,想要使用模块,我们还需要其它的设备:一个热电偶传感器,它可以作为模块的信号来源;一台带有RS-485接口的windows操作系统的计算机。如果没有这样的计算机则可以使用USB转RS-485转换器完成信号的转化。模块还需要一个9~24V的直流电源为其供电。那么在本视频的实验中,我们使用了SDS1011转换器(以下简称转换器),这个转换器不仅可以将模块的RS-485信号转换为USB信号,还可以为模块提供9~24V的直流电压。 图 8  试验设备 在使用转换器前需要下载它的驱动程序,我们可以在官网产品分类页面中,点击SDS1011隔离型USB转换器。 图 9  SDS驱动下载和安装(一) 进入详情页后,就可以找到它的驱动下载链接,点击下载就可以了。 图 10  SDS驱动下载和安装(二) 有一点需要注意,文件解压后的文件名是:PS-dirver。打开文件夹后,双击setup.exe,在弹出的对话框中点击安装就可以了。 图 11  SDS驱动下载和安装(三) 转换器的其他内容,大家可查看它的用户手册了解。 在开始设备接线前,我们首先介绍一个使用技巧,在模块和转换器出厂时,其底部都会有一个便于安装的导轨。我们将模块的导轨拆卸下来,因为螺丝的设计便可以将这两种设备组合到一起。要注意的是,两个设备的电源端(Vs+)和GND端应在同一边,这样连接起来后使用就更加方便了。 图 12  安装技巧 三、设备接线 接下来开始正式的接线,我们使用的是K型热电偶。黑线一端是它的工作端、热端,而在它的冷端有两根导线。首先我们将红色线连接到IN 4 + 端,将绿线连接到了IN 4 - 端。 图 13  热电偶接线 然后把模块与转换器的地线(GND)和电源线(Vs+)互相连接。之后将模块的485-A和转换器的485-A相连,模块的485-B端口和转化器的485-B端口相连。 图 14  电源及485转换连接 最后将转换器与电脑的USB接口连接后,便能看到两设备的指示灯亮起,这样就可以使用模块采集温度信号了。 图 15  设备连线 四、采集温度信息 打开刚刚下载的数据采集软件,点击“Device List”搜索设备,这时会弹出一个窗口,让我们选择COM口并配置相关的参数。保持默认,点击Search,对弹出的对话框点击确定,这样COM端口就设置成功了。 图 16  搜索设备并连接 鼠标点击Function Config,在弹出的界面中,可以选择使用的热电偶的类型。因为我们使用的是K型热电偶,所以对AI 4通道不做改动。 图 17  热电偶型号选择 点击Set to Default就可以保存设置。 图 18  保存默认设置 当然在这个界面点击Run按钮,是能够显示热电偶的当前温度的, 图 19  简单显示温度 但这样操作不仅不能保存历史数据,也没有波形图来直观的反应温度的变化情况,所以我们点击Exit退出此界面,然后鼠标点击“Data logger”,进行更加详细的数据记录。在这个页面中需要我们选择使用的通道,因为我们将热电偶接入通道4,所以只要点亮通道4就可以了。而且在页面中也可以看到,前几个通道的热电偶的类型已经随着刚才的设置改动了。点击Add to List将其加入任务列表。 图 20  添加采集任务 如果要删除任务可以在任务列表选中任务后,点击Delelte form List将其删除。 图 21  删除采集任务 在数据存储方面,软件默认将数据以CSV的格式储存在C盘中。我们可以点击旁边的文件夹图标,去修改它的存储路径。 图 22  修改存储路径 如果不需要保存历史数据,则可以取消勾选数据存储选项。 图 23  取消数据保存 点击Acquisition按钮,便可进入到数据采集窗口,在此界面中点击RUN按钮就能启动采集了。 图 24  开始采集 可以在软件中看到,现在的环境温度为22℃,将热电偶放入热水中,能看到软件显示的温度迅速上升,达到77℃左右。 图 25  数据记录(一) 当热电偶离开热水后,温度又开始下降,这说明模块与采集卡之间可以正常通信。 图 26  数据记录(二) 结束采集程序,调整坐标显示,就可以清楚的看到温度的变化情况。 图 27  温度变化 波形图中突然下降的一小段是因为热电偶离开了热水。打开保存的历史记录,便能看到各时刻采集卡所采集的数据信息。 图 28  记录的数据信息 五、恢复出厂设置 最后我们介绍如何将模块恢复出厂设置,倘若模块被修改过设置并且已经忘记了设置的内容,就可以用到恢复出厂设置功能。我们先把热电偶和485-A、B上的导线拆下来,然后将模块的INIT端口与GND端口连接。 图 29  恢复出厂设置连线 接通电源,在看到模块的LED指示灯闪亮三次后,它就会恢复出厂设置了。 图 30  LED灯变化 文章通过采集热电偶的温度数据,简单介绍了M模块的使用。模块其它内容和使用方法都可以在网站中查询。

M系列多模块操作

本篇文章将介绍一种多模块操作方式。我们会把M-2002电压采集模块和M-2101热电偶采集模块通过SDS-1011转换器一起连接到电脑上使用。

图 1  实验设备

一、模块和传感器介绍

进行试验前,需要首先介绍一下M-2002模块。它是M2000系列模拟量输入远程IO模块中的一种,可以用来测量电流大小。

图 2  M2002

实验中与M-2002模块相连的传感器是压力变送器。它输出的是4-20mA的标准电流信号。

图 3  压力变送器

这种传感器已经内置了集成电路,可以将毫伏信号转换成标准电压、电流或频率信号。

M-2101模块是专门用来采集热电偶的I/O模块。

图 4  M2101

对于它的介绍我们会放在采集热电偶数据时详细介绍。

二、设备间的连接

接下来我们开始连线,首先把M-2002模块与SDS-1011转换器组合在一起,然后将两个模块的电源线(Vs+)和地线(GND)连接。接着把M-2002模块的485-A、B接口,与转换器的485-A、B接口相连。

将电源线正极接入变送器1接口,将变送器的2接口与模块的AI0+接口连接,将电源负极与模块的AI0-接口连接。根据压力变送器的使用说明,我们需要为它提供12~24V的直流电源。最后用USB线缆将它们和电脑连通。

图 5  M2002与压力变送器连接

三、多模块接入时的软件操作

打开软件,点击Device List搜索设备。

图 6  点击Device List

然后点击Search搜索COM端口设备。

图 7  点击Search搜索设备

因为实验中要用到两张M系列的数据采集模块,所以我们要单独修改每个模块的ID号。

 

 

进入Basic Config页面。

图 8  点击Basic Config按钮

通过Slave ID控件将模块的ID号修改为2。在这个页面中,大家也可以修改模块的波特率(Baud)、校验(Parity)以及看门狗等内容。

图 9  Basic Config页面定义

而在本次的实验中使用默设置认就好,点击Set保存修改。这时软件会提醒我们重新刷新设备,点击“确定”,点击“Exit”退出界面后重复刚才搜索设备的操作即可。

图 10  保存设置

然后将M-2101模块与M-2002模块组合并通过SDS转换器连接到电脑上。它的连线方法很简单,只需要将M-2101模块的485接口和电源同M-2002模块一起连接到SDS转换器上就可以了。

图 11  M-2101模块连线

回到软件界面,再次点击“Device List”控件。完成搜索设备操作后,就可以看到两张采集模块的信息了。

图 12  两个模块信息

因为有两张采集卡,如果想要修改其中一张模块的某些设置时,则可以在“Module selection”控件中选中这张模块。

图 13  通过Module selection控件选择模块

然后点击“Basic Config”、“Function Config”这两个控件,在弹出的界面中修改就可以了。

图 14  “Basic Config”与“Function Config”

“Function Config”页面的内容比较简单,在之后的文章中会有说明,这里就不展开了。最后点击“Data logger”采集数据,在弹出的页面中把两张采集卡所使用的采集通道加入任务列表。点击“Acquisition”,进入采集页面。

图 15  添加采集任务

点击“RUN”开启数据采集。

图 16  开始采集

因为传感器工作需要电源,所以在启动采集前,要先打开电源开关。当温度传感器被放置在热水中时,便能够看到M-2101采集的温度迅速上升。给压力变送器一个压力,也能看到数据的相应变化。

图 17  实验数据

停止采集后,我们介绍一种单次采集的采集模式,需要使用Cyckles和Period(s)这两个控件。其中Cycles控件决定软件采集次数,Period(s)控件决定软件每次采集间隔几秒。

图 18  单次采集

我们可以来实验一下,将Cycles设置为10,将Period(s)设置为1,点击RUN,启动采集。就可以看到软件在运行10秒后自动停止采集。

图 19  实验

回顾上述实验,其中一个不足之处,那就是在压力测试中没有将采集到的电流值转变为传感器应该输出的压力值。解决方法可以是直接在软件中进行单位变换。不过,我们要先求出这两个变量之间的关系,已知变送器的量程为0~6kPa,输出电流为0~20mA,设量程为y,输出电流为x。根据已知量

解得:k=375,b=-1500

所以两变量得关系为y=375x-1500。y的单位是Pa;x的单位是mA。将k和b的值填入软件中。

图 20  单位变换

再次进行实验时,就可以看到软件显示的是当前传感器测试到的压力值。

四、修改模块ID的必要性

不知道大家有没有注意到,当我们将两张采集模块连接到转换器上使用时,是先连接一个采集模块,更改其ID号后才连接另外一个模块的。

图 21  多模块连接

如果我们将两张采集卡同时接入转换器中,会发生什么情况呢?我们来演示一下。

首先需要把两个模块都恢复出厂设置(恢复出厂设置的方法可在模块手册中查阅),然后将连接好的设备同时接入采集卡中。打开软件,搜索设备后我们发现,软件只能识别到其中一个设备。

图 22  只能识别一个设备

出现这种情况的原因是,软件通过每个模块的ID号来区分它们。而在模块出厂时,其默认ID都是1,所以软件就不能同时识别它们。当我们需要使用多块卡同时工作时,首先要为每个模块分配ID号,并在软件中单独依次修改。

以上就是关于多卡操作的实验内容。

M系列模块与PLC连接

文章将介绍如何使用PLC访问并控制M系列采集卡。

一、试验设备的连接

准备的实验设备有:S7-200 SMART型PLC、M-1001和M-2101模块、SDS-1001转换器、K型热电偶以及一个直流电源。

图 1 实验设备

我们首先说明各设备是如何连接的,将直流电源连接到PLC的24V电源接口,正极接L+,负极接M。因为RS485端口是集成在PLC的九针超小D型连接器上的,所以我们制作了一个连接器方便设备接线。具体的针脚分配,大家可以在STEP 7 SMART软件的在线帮助文档中的连接器引脚分配章节中看到。连接器的红线接M2101模块的485-A信号,黑线接485-B信号。因为用以太网电缆连接PLC和电脑,所以需要调整电脑的IP地址,它的具体操作我们之后说明,现在只要将电缆插入网口即可。此次实验我们依然使用SDS-1001为采集模块供电,将它们的+Vs、GND端连接就可以了。最后将K型热电偶接入M2101模块中的DI 1端口。为模块通电,这样设备接线就完成了。

图 2  接线参考图

二、使用Smart软件与模块建立连接

S7-200 SMART型PLC所用的编程软件是Smart软件,这个软件是免费使用的,大家可以到西门子的官网下载。

图 3  SMART软件下载

打开软件,在文件选项中打开范例M2101,此时设备正处于未连接的状态,双击主要窗口中的通信选项,在出现的的对话框中点击查找CPU,就能看到PLC的IP地址。我们可以点击旁边的闪烁指示灯,验证是否找到了CPU。如果PLC的指示灯交替闪烁,就说明我们查找CPU已经成功。

图 4  连接PLC

下一步的操作是设置电脑的IP地址。进入网络和Internet设置界面,进入网络和共享中心。

图 5  网络和共享中心

选项点击以太网。

图 6  以太网

选择属性。

图 7  以太网状态

在弹出的窗口中找到Internet协议版本4(TCP/IPv4)项目,点击属性。

图 8  以太网属性

选择使用下面的IP地址,输入相应的IP地址:192.168.2.111,子网掩码输入225.225.225.0,默认网关是:192.168.2.1。点击确定。

图 9  IPv4属性

回到软件页面,如果成功的话,软件会显示已连接。

图 10  已连接

三、PLC范例程序说明以及实验

我们以程序2101为例,解释一下它的内容。在程序段1中的SM是PLC中的特殊标志继电器,SM0.0表示始终接通,与其连接的参数EN在输入接通(TURE)时,每次扫描均会执行该指令;

图 11  Always_On命令

SM0.5表示提供一个周期为1秒钟的时钟脉冲,0.5秒为1,0.5秒为0,与它连接的参数First我们之后说明。

图 12  Clock_1s 命令

特殊寄存器(SM)的其它地址位,大家可以到在线帮助文档中查看。指令MBUS_CTRL,可以在主要窗口的库文件中的Modbus RTU Master(v2.0)中找到,右键选择帮助就可以看到它的说明文档。需要声明的是:在程序中,我们将PLC当作主站,M模块(如:M-2101)则作为从站使用。阅读说明内容我们知道MBUS_CTRL是程序在执行MBUS_MSG指令前必须调用的指令。

图 13 MBUS_CTRL命令

参数“模式”(Mode)用于选择通信协议,我们输入的是SM0.0,触点为常闭状态,所以输入值是1,意思是启用Modbus协议。参数“波特率”(Baud)的设置值要和从站设备的波特率一致才可以得到正确信息,所以输入值为M模块的默认波特率:9600。参数“奇偶校验”(Parity)的设置应与从站设备的奇偶校验相同,从站默认为偶校验,以数值2表示。参数“Port”是设置物理通信端口,实验中使用的是PLC中集成的RS-485接口,所以需要输入0值。参数“超时”(Timeout)为等待从站做出响应的毫秒数,范例中设置的是典型值1000ms。

图 14  MBUS_CTRL命令

所以指令Mbus_CTRL的作用是初始化主站,使得主从站设备的参数一致,两者可以进行正常的通信。

下面我们来介绍指令MBUS_MSG,它的作用是启动对Modbus从站的请求并处理响应。参数“First”是当主站有新请求发送时,First通过边沿检测元素(例如是上升沿),将导致程序发送一次,所以我们为此参数设置的是SM0.5。参数“从站”(Slave)是Modbus从站设备的地址,M系列模块的默认地址为1。参数“RW”是设置读取或写入信息,0表示读取,1表示写入。参数“地址”(Addr)是起始Modbus地址,范例中写入的数值就是我们在用户手册中给出的寄存器地址:30101。参数“计数”(Count)用于分配要在该请求中读取或写入的数据元素数,也就是根据地址参数的输入值向后延伸的个数。

图 15  MBUS_MSG命令

打开范例M2100的用户手册,找到M2101远程IO模块Modbus映射表就可以看到地址、通道、属性等内容。

图 16  M2101寄存器列表

如我们现在打开的这个范例程序,它是要操作从热电偶输入寄存器30101到30108这8个寄存器,所以对Count的输入值为8。参数“DataPtr”是间接地址指针,指向CPU中与读/写请求相关的数据的V存储器,指针必须是VB类型。这里的V、VB、VW是V存储器中不同类型数据的表达方式:V表示位数据,VB表示字节数据,VW表示字数据,一个字由两个字节构成,一个字节则有8位。在范例程序中,我们使用VB数据类型存储从模块读到的值,然后用VW数据类型表示出来。进行这样的数据操作是因为,当PLC发出读取请求时,采集模块返回的值是16位的整型数据,需要用两个VB类型的数据表示,而一个VW数据类型就表示两个字节,刚好可以表示模块返回的数据。我们可以在状态图表中验证一下。调出图表窗口,下载程序,运行CPU,开启图表的监视状态,因为我们只为模块连接了一个温度传感器,所以在状态图表中只有第2行显示出实际温度值,当我们提高环境温度,第2行的当前值也会随之改变。其它没有接入温度传感器的端口,其寄存器的返回值是-2731。

图 17  传感器温度测试

接着验证我们刚才提到的V存储器的数据类型,在状态图表中输入VB1000,按回车键,就可以按顺序添加地址。将它们的格式更改为十六进制,VB1000为F5,VB1001为55,而VW1000是它俩的集合F555。所以说两个VB数据类型,构成一个VW数据类型。

图 18  数据类型

更换M1001采集模块。

接下来我们打开范例M1001DI,它可以读取模块上的DI(离散量输入)的状态。连接设备后,打开状态图表的实时数值监控,当前值为1。当我们将DI 0接地,就会看到当前值变为0,其它的DI端口也是一样。这里的地址是位格式的,因为我们只需要一位的数据就可以表示端口当前所处的状态(闭合或是断开)。

图 19  DI端口

打开范例M1001DO,此范例可以控制DO(继电器)的状态。建立通信后,下载程序到CPU,运行CPU,打开监控按钮,可以看到此时的继电器都处于关闭状态。在新值中输入1,点击图表中的写入按钮,就会看到当前值的改变而且M模块的继电器也会动作到开启状态。

图 20  DO端口

这两个范例程序的寄存器地址大家可以在用户手册M1000的M1001远程IO模块Modbus映射表中找到。

以上就是模块与PLC连接的相关内容。文档中使用的范例及用户手册均可以在官网下载。

M系列模块与组态王连接

此文章将介绍如何使用组态王软件与M系列模块进行连接。 一、实验准备 需要准备的设备有:M1001和M2101模块,以及一个SDS-1011转换器。 图 1 试验设备 因为实验中要用到两个模块,所以在使用组态王与硬件连接时首先要修改每个模块的ID号,这样组态王软件才能在添加设备时对它们作出区分。 这里要强调的是,我们在使用M Manger软件修改模块的ID号时,每个模块一定要单独进行改动。关于设备的连线情况以及如何修改ID号,大家可以参考我们制作的M系列视频,之后我们也会陆续将文档上传,在这里就不详细说明了。 图 2 之前视频内容 另外要注意的一点是,在改变模块ID号后就应该把M Manger软件关闭,否则计算机上的相关串口会一直被M软件占用。 二、使用组态王与M1001连接 在完成以上准备工作后,就能在组态王上开始创建工程了。打开组态王软件,在工程管理器页面点击新建,软件会弹出一个新建工程向导页面,跟随向导程序,就可以完成新工程的建立。 图 3  新建工程 我们来演示一下。首先要选择的是工程所在目录,默认新建工程的路径是放在系统桌面上的,点击浏览则可以修改工程路径。在实验中我们将工程放在example文件夹下。 图 4  修改工程路径 点击下一页,这页是要我们为新建工程命名并为它做一个简单描述。我们把工程名称叫做测试,在工程描述中填写:M系列模块的简单测试。 图 5  工程描述 点击完成,软件会提示我们是否将新建的工程设为当前工程,选择“是”就可以了。 图 6  完成工程新建 双击我们刚刚新建的工程进入开发系统,将弹出的页面关闭。点击文件列表中的设备选项 图 7  点击设备 鼠标双击右侧的新建。 图 8  点击新建 在出现的向导界面中选择PLC。 图 9  选择PLC 然后选择莫迪康的ModbusRTU,选择COM。 图 10  莫迪康—PLC—COM 点击下一页,将设备命名为M1001 图 11  设备命名 在选择与设备连接的串口时 图 12  选择连接串口 我们可以到M系列软件中查看 图 13  在M软件中查看串口 也可以在电脑设备管理器的端口中查看模块使用的串口 图 14  在设备管理器查看串口 这里我们选择COM3。 图 15  选择串口 点击下一页,需要我们为安装的设备指定地址,这里填写一开始为模块设置的ID号就可以了。 图 16  确认模块地址 点击下一页,此界面的选项不做改变,保持默认即可。 图 17  保持默认 点击下一页,检查一下我们的设备信息是否正确。点击完成,这样设备就设置好了。 图 18  查看设置 现在我们可以测试一下设备和软件是否可以正常通讯。右键设备,点击测试。 图 19  测试设备 在出现的页面中选择设备测试,在寄存器中输入0001,数据类型选择Bit。点击添加,点击读取。如果能够看到软件读取的数据,就说明它们之间已经可以进行通讯了。 图 20  设备通讯 这里有一个疑问,为什么寄存器、数据类型要这样设置呢?模块的用户参考手册给出了答案。进入官网,打开手册,找到M1001远程IO模块Modbus映射表。在这张表上可以看到继电器0的地址是:0001,也就是我们在软件上需要输入的寄存器地址。又因为继电器只有开、关两种状态,所以数据类型选择Bit,这种数据类型只有0或1。 图 21  寄存器地址 接下来进行数据库的设置,进入数据词典。 图 22  设置数据词典(一) 在它右侧的变量名中双击新建,将变量名命名为M1R0,变量类型为I/O离散。这个变量类型就对应着继电器的开和关两种状态。 图 23  设置数据词典(二) 连接设备选择M1001,寄存器写00001,数据类型选择Bit,读写属性选择只写。因为我们只需要控制继电器的通断就可以了。点击确定,这个变量就设置完成了。 图 24  设置数据词典(三) 再次双击新建,软件会自动为新建变量排序并且寄存器地址也会自动后延。 图 25  设置数据词典(四) 因为M1001模块有4个寄存器,所以要新建4个变量。接着添加M1001模块上的DI(数字输入)相关的变量。双击新建,变量名设置为M1DI0,变量类型还是I/O离散,连接设备不变, 图 26  设置数据词典(五) 寄存器根据用户手册填写地址为10001, 图 27  寄存器地址 数据类型选择Bit,读写属性选择只读。因为我们只需要知道,DI端口输入的是高电平还是低电平就可以了。 图 28  设置数据词典(六) 根据模块的接口,我们需要建立6个这样的变量。 图 29  设置数据词典(七) 全部新建完成后,我们就需要设置它的画面内容。点击画面,点击新建。 图 30  新建画面 将画面命名为M系列,点击确定,进入画面设置窗口 图 31  设置画面窗口 在工具箱中选择打开图库,在弹出的图片管理器中选择开关。大家可以在这个图库中选择自己喜欢的样式,鼠标双击它,就可以在画面窗口添加了。 图 32  画面设置 同时我们可以选中这些图标,将其简单排布一下。接着添加六个指示灯图标,以对应模块上的六个DI端口。然后为画面添加一个面板,并将它命名为M1001,调整字体大小,最后将画面锁定,这样布局就完成了。 图 33  完成画面布局 接下来要进行的是动画连接的内容,鼠标左键双击图标或者鼠标右键点击图标,在弹出的复选框中选择动画连接,都会出现向导页面。 图 34  动画连接(一) 点击页面中变量名旁的问号(?)按钮 图 35  动画连接(二) 为开关图标选择M1Rx相关变量,为指示灯图标选择M1DIx相关变量。点击确定,动画连接就建立成功了。 图 36  动画连接(三) 如此这般将各图标都建立完成后,点击文件,点击全部存保存设置。 图 37  动画连接(四) 回到工程浏览器页面,点击VIEW进入运行系统界面。 图 38  运行动画 点击画面选择打开,选择需要打开的画面点击确定,就能运行我们刚刚设置的画面并通过它控制M1001模块。 图 39  选择动画 我们实验一下,点击开关图标,可以明显听到模块内继电器的开关动作。使用导线,将任意DI端口与DGND短接,都可以看到画面中的指示灯会做出相应改变。 图 40  动画运行 关于M1001模块的设置已经完成了,关闭画面。 图 41  关闭画面 三、使用M2101与组态王连接 接下来我们开始设置模块M2101的相关内容,首先新建一个设备,设备型号还是选择PLC——莫迪康——ModbusRTU——COM。 图 42  新建设备 设备名称为M2101,串口依旧选择COM3,指定地址为2,其他均不变。 图 43  建立设备连接 设备新建完成后,设置数据词典的相关内容,将新建的变量名为M2IN0,变量类型选择I/O整数。连接设备选择M2101,寄存器的地址填写需要参考用户手册。 图 44  选择寄存器地址 在M2101模块的Modbus映射表上,我们可以看到IN 0通道的寄存器地址是30101。 图 45  寄存器地址 将其写入软件中同时手册中说明,寄存器的返回值是16位整型数据且是有符号的,所以数据类型选择SHORT,变量类型也对应着我们刚刚选择的I/O整数。另外当模块上的接口没有热电偶接入时,其返回值是-2713,所以我们可以将变量中的最小值改为-3000,最小原始值也要改为-3000。这里的最小(大)值是指:变量在现实中表达的工程值的大小,如:压力、温度等。而最小(大)原始值是指:采集设备中寄存器数字量的最小(大)值。 图 46  变量设置 根据模块上的接口,我们要添加从M2NI0~NI7这八个变量名。全部建立完成后我们开始设置软件的画面。为了方便观察,就把两个模块的动画连接放在一个画面当中了。在画面中放置8个文本,将文本排列整齐,并添加画板命名为M2101。 图 47  添加画面 然后为每个文本按顺序添加动画连接,因为我们需要输出M2101模块的温度值,所以选择模拟值输出。 图 48  动画连接(一) 在弹出的页面中点击表达式旁的问号(?)按钮 图 49  动画连接(二) 选择相应变量名。 图 50  动画连接(三) 输出格式设置整数位为5,小数位为2,显示格式为十进制。由用户手册可知,当返回数据为2483时,表示温度为248.3℃,而实际温度为24.83℃,所以我们要将显示值再除以10,直接在表达式中直接输入“/10”就可以了。 图 51  动画连接(四) 点击确定,点击确定,这样就设计好了。其它文本的动画连接也是这样设置。全部完成后,点击文件选择全部存。 将K型热电偶连接到M2101模块上,进入到运行系统中看看能否显示温度值,打开画面我们发现,软件画面没有正确显示M2101的信息,但M1001依然受到控制。说明软件和模块的连接没有问题,这时我们关闭页面,退出运行系统,再次打开VIEW,打开刚才的画面。这时软件就能正常显示模块信息了。 图 52  M2101动画效果 最后补充一点,如果大家想要使用组态王与M2002模块连接的话,数据类型就要选择UNSHORT,因为这个模块的数据类型是无符号的16位整型数据。 图 53  补充

数据采集卡与电流数据

一、电流信号测量思路

本篇文章我们要介绍一些测量电流信号的方法。大家应该知道,多数采集卡都可以直接采集电压信号。但4~20mA的电流信号也很常见,那么这些电流信号要如何进行采集分析呢?基本思路是将电流信号转变为电压信号,然后再使用采集卡进行相应的处理。

文章将说明两种转换方案,供大家参考。

二、抽样电阻方案

第一种方案是使用取样电阻将电流转换为电压。这一方案主要利用了欧姆定律,即:U=I*R。

在公式中我们已知电阻大小为:R。当电流I流过电阻时,就会产生电压U。

而电阻是一种线性元件,这样电压的变化就可以反应电流的变化了。再使用采集卡采集电压信号,就完成了对电流信号的采集。关于欧姆定律具体的表述是:在同一电路中,通过某段导体的电流跟这段导体两端的电压成正比,跟这段导体的电阻成反比。

该定律是由德国物理学家乔治•西蒙•欧姆提出。

取样电阻方案在实际工作中应该如何使用呢?

我们以4-20mA的电流信号为例,它是广泛用于传感器/变送器领域的一种通用的标准信号。

如果选择取样电阻方案,那么取样电阻的阻值一般为250欧。

使用欧姆定律计算一下便知道4-20mA的电流信号就被转换为1-5V的电压信号。所以在这样的方案中,电阻是很重要的一个元器件。在选择电阻时既要考虑到电阻的准确性,也要考虑到电阻的温度漂移值。电阻温漂是指:温度每变化1度所对应的电阻值的变化量,通常用PPM(百万分之一)/℃为单位。倘若不方便外接电阻,Smacq也提供M2000系列的远程AI模块,该模块内置有120Ω的取样电阻。不过此模块只适合与采样率较低的情况。

再者,我们还要说明一下传感器、电阻、采集卡之间到底是如何连接的?

4-20mA的传感器/变送器可分为二线制,三线制和四线制。它们的连接方式如下图:

我们简单说明四线制的连接方式:将直流电源的正负极与传感器的正负极相连,将传感器的正负输出端(out+/-)连接到取样电阻的两端,将传感器的任意AI通道与取样电阻的out+端连接,将采集卡的AI Sense端与取样电阻的out-端连接。

特别要提到一点,当传感器是二线制时,应当注意电阻的连接问题,防止电源电流直接进入采集卡将采集卡烧坏。在使用二线制接线方式时,可以先测量一下电阻两端的电压是否符合采集卡量程,然后再使用采集卡采集传感器信号。

当然,在电流采集场景中还有许多非标准的电流信号需要采集。我们可以粗略地将其分为小电流采集和大电流采集。

由欧姆定律可知,当电流较小时,电阻R就要大一些。这样产生的电压才能适配采集卡的量程。如果采集环境要求采样电阻阻值不能太高时,我们就要选用一些素质较好的,能够测量小电压的采集设备进行采集。

也可以使用放大器放大电压信号,比如SRD-1004程控放大器,它的放大倍数可设置为10倍,100倍,1000倍。

当电流较大时,电阻R就要小一些。这种情况下一般会使用分流器,将电流信号转变为电压信号。

分流器其实就是一个能通过极大电流的阻值很小的电阻,以50A的分流器为例,它可以通过的最大电流是50A,满量程输出电压是75mV。由此可知它相当于一个0.0015欧的电阻。因为分流器输出的电压很小,我们还需要使用放大器放大它的信号。

三、电流变送器方案

当电阻不方便串入被测回路中时,我们就需要用到第二种方案:使用电流传感器将电流信号转变为电压信号。根据工作原理的不同,电流传感器有多种分类。

这里我们主要介绍一种霍尔电流传感器。

霍尔电流传感器基于霍尔效应,利用霍尔磁平衡原理实现对各种类型的电流的测量。

霍尔效应是由美国物理学家霍尔在1879年发现的。

它的具体表述是:当电流垂直于外磁场B通过半导体时,载流子发生偏转。垂直于电流和磁场的方向会产生一附加电场,从而在半导体的两端产生电势差,这个电势差也被称为霍尔电势差。

在使用霍尔电流传感器时,在输入端通入控制电流,当有一磁场B穿过该器件感磁面,则在输出端出现霍尔电势。霍尔电势的大小与控制电流和磁通密度的乘积成正比,通过测量霍尔电势的大小就可以间接测量载流导体电流的大小。这种电流传感器经过了电-磁-电的绝缘隔离转换,比较安全。但它是一种有源器件,需要外部供电,使用上不如取样电阻方便。

在一些特殊应用中,电流的频率会很高,而一般的电流传感器的带宽只有20k左右,无法满足高频率响应的要求,这个时候就可以选择电流探头。

霍尔效应是由美国物理学家霍尔在1879年发现的。

它的频率响应比较高,可以达到几十兆的带宽,但是电流探头的使用成本也要高很多。在后续的实验中,我们分别使用电阻和电流传感器,完成对电流信号的采集。

四、第一组实验

首先使用电阻将电流信号转化为电压信号。需要的实验设备有:电阻、USB-3123数据采集卡、直流电源。

实验中以直流电源模拟传感器发出的标准电流信号,电阻使用的是高精度低温漂的阻值为250Ω的电阻。下面开始连线,首先将电源的正负极连接到电阻两端,电源设置成电流4mA,电压24V。启动电源,用万用表测量电阻两端的电压大小,这一步是为了确认电阻与电源之间正常连接,防止烧毁采集卡。

关闭电源后将电阻的正极与采集卡的AI 0相连,将电阻的负极与采集卡的AI Sense端相连,然后将AI Sense端与AGND相连,最后将采集卡与电脑连接。

打开采集卡软件,调整软件设置。

选择单端模式,

勾选AI 0通道,其他设置均不变。

设置坐标为不自动调整y标尺,

并将标尺设置为-10~10。点击启动。

可以看到数据此时位于零坐标点,

将电源电流调整至4mA,采集卡采集到的数据为1V。

电源电流调整为20mA,采集到的数据则为5V,采集结果与之前计算的情况一致。

这样我们就用电阻将,电流信号转换为电压信号了。

接着我们要完成的实验是,使用数据采集卡检测220V、50Hz的交流电信号,做这个实验的目的是要和开关电源相连的交流电信号做对比,观察这两个交流电信号的波形有何异同。实验用到的设备有,功率为50W、阻值为1kΩ的水泥电阻,额定电流为2A的电流传感器,USB-3123数据采集卡,输出电压为±15V的开关电源。

各设备间的连线是这样的,将水泥电阻与电源直接串联,电流通过电阻从电流传感器的NI+端流入,NI-端流出,电流传感器副边的+15V与-15V端口分别于开关电源的V1端和V2端相连,公共地(0V)端与电源开关的COM端连接,输出端(M)与采集卡的Ai 0端相连。将Ai Sense端与开关电源的COM端连接,并且将采集卡的Ai Sense与AGND短接,最后将采集卡与电脑连接。

然后打开采集卡软件,连接采集卡后设置相关参数。选择单端模式,勾选Ai0通道,修改采样率为10000Sa/s,其它参数不变。

将纵坐标设置为-5~5,并取消自动调整纵坐标,调整横坐标为0~100。为开关电源供电,点击启动。

可以看到数据在0坐标上,为水泥电阻通入交流电后,数据在±0.8之间波动。放大画布可以看到一个明显的正弦波形。

可以看到数据此时位于零坐标点,

五、第二组实验

接下来我们看看电流传感器是怎样使用的,需要用到的实验设备有:两个直流电源、两个电流传感器、一个水泥电阻和一张数据采集卡。

首先说明一下各个器件的参数及功能,左边的开关电源输出±15V的电压,它的主要作用是为电流传感器提供电源;右边的开关电源输出±24V的电压,它的主要作用是作为测试电流,我们可以看到这个设备的输入与输出,分别与两个电流传感器串联;下方电流传感器的额定电流是2A,它测量的是±24V开关电源设备的输入,也就是220V、50Hz的交流电;上方传感器的额定电流是5A,它测量的是通过水泥电阻的电流;水泥电阻的参数是:额定功率50W(瓦),阻值12Ω;采集卡使用的依然是USB-3123数据采集卡。

接着我们说明一下各设备间的连线,电流传感器的副边有4个端口分别是:电源正(+15V)、电源负(-15V)、输出端(M)、公共地(0V)。我们将电源正端(+15V)与电源V1端连接,将电源负端(-15V)与电源V2端连接,将输出端(M)与采集卡的模拟输入端口(AI)连接,将公共地(0V)与电源的COM端连接。

需要注意的是,实验中使用了两个电流传感器。我们将与交流电连接的电流传感器的输出端与采集卡的AI 0端口连接,将与直流24V连接的电流传感器的输出端,与采集卡的AI 7端口连接,两传感器副边其他端口的连线都相同。另外,在将电流传感器串入电路中时,要使用传感器的原边,也就是标有NI+、NI-的一边。串联时,电流从NI+端流入,NI-端流出。

实验中的水泥电阻作为负载使用,直接与开关电源串联。我们可以计算一下这一电路中的电流值,电源输出电压24V,电阻12Ω,所以电路中电流的大小为2A。传感器的额定电流5A,输出电压为5V,所以采集卡采集到的电压应为2V,我们可以看看最后的采集结果是否相同。

采集卡的连接方式是:将其AI Sense端与供电电源的COM端相连,并将AI Sense端与AGND端短接,以上就是各实验设备的连线方式。

下面打开软件连接采集卡并设置相关参数:选择单端模式;勾选AI 0和AI 7通道;

采样率设置为10000,其他设置不做修改;将软件横坐标设置为0~1000,纵坐标设置为-5~5并取消自动调整坐标。点击启动,开关电源没有接通时,电流传感器没有检测到电流,采集卡采集值为0。

启动电源,我们会看到软件中有波形输出,

放大波形,可以看到交流电在±3V左右上下波动,直流电则稳定在2V,与预估值一致。

通过与之前实验中交流电信号的对比,我们能清楚的看到两个电信号波形间的差别。

以上内容就是Smacq提供的电流信号转电压信号的方案。

串联电池组充放电实验

电池包测试的必要性

近些年电动汽车有了长足的发展,消费者购置纯电动汽车的意向也越来越强。相比于传统汽车的三大件,纯电动汽车的新三大件变为:动力电池、电控系统与电机系统。

其中动力电池被称为新能源汽车的心脏,也是各汽车品牌形成差异化的关键因素。这颗“心脏”要驱动汽车这样的庞然大物,其能量是如何得到的呢? 以85D版ModelS电池包为例,该电池包有16个模组,每组有444节圆柱形电芯。 将这些电芯串联起来,就可以得到一个高电压、大容量的强力“心脏”了。当然这只是一种很简单的说法,真正的电池系统要复杂很多。 现在我们知道了电芯是动力电池的基础单元,那么对它的实时监控就显得非常必要。但在监测过程中我们会遇到一个问题,那就是串联电池组会产生较大的共模电压。所谓共模电压就是每一导体和所规定的参照点之间出现的向量电压的平均值。 以实验中的十节串联电池组为例,假设每节电池的电压均为3.6V,那么第十节电池的最高节点处的电压就是36V,十节与九节电池之间的电压值为32.4V,这样两节电池间就产生了34.2V((36+32.4)/2=34.2)的共模电压。 这么大的共模电压输入到设备中很可能会影响它的运行,甚至损坏元器件。如何解决这种负面影响呢?最好的办法就是隔离。而本次实验所采用的PS2024V采集卡,它的每个通道都是隔离型的,可以很好的防止共模电压的影响。 电池包测试实验 2.1、实验准备 接下来我们将使用PS2024V完成一个关于串联电池组充放电测试的实验。 电池组是由10节锂电池串联在一起组成的,每节锂电池的平均电压在4.1V左右。而且我们会从整个电池组的正负极引出两根导线,用来测量它们在充放电时的电压变化情况。同时将电流传感器串联到回路上,以观察电池组在充放电时的电流变化。PS2024V型采集卡共有24组差分通道,按照每节电池的正负极将引线连接到采集卡上。最后通过USB线缆将电脑与采集卡相连。 2.2、放电实验 当电池组放电时,将水泥电阻串联至整个回路中,电阻的参数是30Ω100W。这里要注意的是,锂电池不能过度放电,也就是电压不能低于最低放电电压2.5V-2.75V。 打开趋势图,我们可以看到电池组的放电曲线,放电电流没有明显的变化。 但在放电过程中,有三节电池发生过放现象,它们的电压大小快速下降。 停止放电后,我们来计算一下电池组的放电量,打开数据记录表格,其有效数据是从第4行到第1312行,每次循环测量所用的时间是6s,所以用电流值乘以每次循环的测量时间,就可以计算出本次循环的放电量。但电流是随时间不断变化的,那么就要以电流对时间的积分计算出真实的放电量。而电流与时间的对应函数我们并不知道,所以本次实验使用“梯形估算法”来计算具体的放电量。由于接线问题,起始时刻的电流值大小无法得知,首次循环的放电量只能以恒定电流值乘以时间来计算,而其余循环则使用梯形估计法。在Excel表格中输入相应公式。要注意,此时的放电量单位是As,需要对这些值求和并转换为mAh。最终计算出总的放电量是2609.41mAh。 2.3、充电实验 接下来开始电池组的充电实验,使用的充电电源是恒流恒压电源,因为每节电池电压均在截止电压(2.5V~2.75V)之上,所以采用较大电流(1A)充电。在实际使用过程中,应该选用适配的充电器对电池充电。 打开趋势图,可以明显看到电池组的充电曲线,当到达指定电压后,充电电流明显减弱。 还是以同样的方法,我们计算出电池组的充电量为2641.28mAh。 以上就是本篇文章的全部内容,希望对您有所帮助。

采集卡控制步进电机

步进电机定义 步进电机是一种将脉冲信号转化为角位移的执行器件。我们以两相式混合步进电机为例加以说明。 一、运行原理及内部结构 大家都知道磁极之间同性相斥,异性相吸,而步进电机就是利用了这一特性。 在电机内部的定子和转子上,转子的极性不发生改变,但定子的极性会根据输入的电流发生变化,判断极性的方法是安培右手定则。 当通电方向顺序按照AA’——BB’——AA’——BB’四个状态周而复始进行变化,电机可顺时针转动; 当通电时序为AA’——B’B——A’A——BB’时,电机就逆时针转动。而且输入的电脉冲频率越高,电动机转动就越快。 二、驱动电流的产生 现在我们已经知道了步进电机是依靠电流产生的极性工作,那么这样的电流要怎样输入呢?最开始人们是根据使用需求,设计一种专门的硬件电路来控制电机的转动。 但这样做的问题是:当需求发生变化时,就要重新设计电路。这无疑会增加步进电机的使用成本和难度,于是一种专门的驱动器便产生了,也就是我们在实验中使用的步进电机驱动器。 驱动器的作用是对控制脉冲进行环形分配、功率放大,使步进电机绕组(定子)按一定顺序通电,控制电机转动。为了方便控制驱动器产生的电脉冲,人们又引入了控制器。它会发出脉冲信号和方向信号到步进电机驱动器中,进而达到控制步进电机的目的。这样,我们就构建出一个步进电机控制系统了。 三、使用采集卡控制步进电机转动 在本次实验中,USB-3123数据采集卡充当控制器的角色。驱动器的型号是TB6600两相步进电机驱动器,它可以实现电机正反转控制,旋转角度控制等功能,还可以进行细分数及电流大小设定。我们来具体介绍一下: PUL端是步进控制,当它接收到一个脉冲信号,就控制电机旋转一下;DIR端可以控制电机的正反转,高电平正转,低电平反转;EN端是使能端,输入高电平时,电机进入脱机状态,电机不响应脉冲信号,输入低电平时,电机接受脉冲信号开始正常运转。视频中使用共阴极接法连接采集卡与步进电机驱动器。将EN-、DIR-、PUL-接入采集卡的DGND端,将EN+与DO 0端口连接,DIR+连接到DO 1端口,PUL+连接到DO 2端口。 驱动器的A、B端口与电机的A、B相连接,至于如何判断电机的四根接线是否为同一组,我们可以直接查阅产品手册或者将任意两根线短接,然后转动电机的轴,如果转动时感到有明显的阻力,那么这两根线为同一组。判断完成后,将它们连接就可以了。 在电源接口中,VCC连接电源正极,GND连接电源负极。要注意的是驱动器工作在直流电压9-42V之间。实验输入的是12V的直流电压。 然后调节拨码开关的状态,将1、2、3端口分别调节成ON、ON及OFF状态,也就是一倍细分;因为电源开关的额定电流是1.2A,所以将4、5、6拨码开关调节成ON、OFF、ON状态。 关于驱动器的其它内容,大家可以参考其使用手册,这里就不详细说明了。最后将采集卡与电脑连接,这样就完成了接线。 打开Smacq提供的do_waveform_full.vi范例,控制采集卡的DO端口输出数字波形。在范例前面板上,SamplePeriod(ns)控件是控制采集卡的输出周期;DoCycle控件可以控制输出次数;Value数组是控制采集卡产生的波形。 在数字波形图中可以显示每个端口的输出波形,行0表示Do 0端口、行1表示Do 1端口……数字波形图中的每一排表示一个Value的输入数据,保留数组中的两个元素并将其它数据删除,这样每个通道输出的脉冲就很清晰了。现在驱动器的细分数是1,也就是当它接收到200个脉冲时电机的轴就会走一圈,而且PUL端口是与采集卡的Do 2连接的,所以我们调整输入波形为0000,0100,DoCycle为200,周期为3000000(频率是333.3Hz),点击运行,能看到步进电机的轴转了一圈。 减小周期为1000000ns,可以看到电机的转速有明显的提高,当然如果周期太小(1000),就会超过电机的响应频率了。 然后,改变拨码1、2、3的状态为ON、OFF、OFF。这是控制电机为四倍细分,接收到800个脉冲时电机才会旋转一周。所以按照我们刚才的设置,点击运行后,电机会转动四分之一圈。 将拨码调整为原来的状态(ON、ON、OFF)。根据上文介绍,想要使电机反转,就要给DIR端一个高电平,所以输入数据0000,0110。点击运行,可以看到它反方向转动了一圈。 最后验证电机的使能端口,让Do 0输出高电平,即在数组中输入0001、0111,点击运行后看到,电机并不发生旋转。当在数组中输入0000、0110,点击运行,步进电机会转动一周。 以上就是使用Smacq数据采集卡控制步进电机的全部内容。

采集热电阻RTD(PT100)温度数据

热电阻定义 RTD是Resistance Temperature Detector的缩写,意思是电阻温度检测器。接下来我们将从五个方面介绍RTD的内容。 测量原理 RTD能够测量温度是利用了金属电阻随温度的升高而升高这一性质。为什么金属会具有这样的特性呢?是因为金属原子的最外层电子数少,容易失去电子。 当大量的金属原子聚集时,绝大部分的金属原子就会失去其价电子(最外层电子)。 这时正离子又会以一定的几何形式排列起来,在固定的位置上做高频的热振动,而失去的电子则成为自由电子,在正离子间运动,大量自由电子的移动,就造成了金属的导电性较好。 但是,当金属的温度升高时,正离子间的热振动幅度变大,这就会阻碍自由电子的移动,表现为金属的阻值增大。 常见类型 不是所有的金属都适合做测量电阻。经过筛选人们将铂、铜、镍作为RTD的使用材料。 铂的特性稳定、耐腐蚀,不会因高低温引起物理或化学的变化,所以铂RTD是测量温度最准确最稳定的一种,在工业生产中使用最广泛。常见的型号有PT100、PT500、PT1000等。 镍是一种硬且有延展性的金属,比较耐腐蚀,但长时间的使用会使镍金属加速老化,影响测量精度,所以镍RTD的使用范围很小。 铜是比较柔软且有良好延展性和导电性的金属,在一定温度下铜的电阻-温度线性度很好,但铜在高温下会发生氧化反应,影响精度,所以铜RTD在低温场景下的使用比较多,常见的型号有Cu50、Cu100。 这些RTD的型号是什么意思呢?以PT100为例,PT表示它是铂电阻,100表示它在0℃时,电阻的阻值是100Ω。其他型号的表示方法也是这样。 RTD的优势 从上图可以看出RTD的电阻-温度线性度是最好的。 表格比较了热电阻、热敏电阻、热电偶这三种传感器。可以发现,在中低温的温度测量中,RTD具有明显的优势。高温测量时,使用热电偶的效果更好。在一定温度下,使用精度很高的热敏电阻更合适。虽然热电阻的线性度比较好,但是如果想获得相对准确的温度值,我们通常还是以查表的方式来实现。下图是PT100的热电阻分度表。 测量方法 我们知道了RTD的测量原理,那么就要说一说RTD是如何测量的。 测量电阻我们首先想到的就是利用欧姆定律:R=U/I 在测量阻值较小的电阻时,通常使用恒流源作为激励,然后测量电阻两端的电压,通过计算得到其电阻值。而且RTD所用的激励电流最大为5mA,所以一般使用1mA甚至更小的电流作为激励。具体的测量方法分为二线制、三线制和四线制这三种形式。 二线制测量的电路图与上图基本一致,不过在实际测量中会有线电阻的影响。如下图所示: ?是导体的电阻系数也就是电阻率 ?是导体的长度 ?是导体的横截面积 现在我们尝试计算线电阻的阻值。假设使用一个导线长度为1米的PT100进行温度测量,导线的半径为0.2毫米,已知现在导线的电阻率为1.74×10-8 可以计算得到一根导线的阻值是0.14Ω,二线制测量需要引出两根导线,那么一共就有0.28Ω的电阻误差。当测量电阻是111.29Ω时,查看PT100的热电阻分度表可知,温度是29℃。但因为有导线带来的电阻误差,实际电阻值是111.01Ω,查表得到实际温度是28℃。可知导线带来了1℃的误差,随着导线加长,误差会进一步加大。我们再看四线制。如下图: 它的方法是引出两根导线直接测量电阻的电压值,这就排除了导线电阻的影响,所以得到的温度是最精确的。但由于它增加了两根导线,会提高实现难度和使用成本,所以四线制只有在需要高精度的实验室中才会用到。而三线制则在成本和测量精度之间找到了平衡,受到使用者的青睐。 这种方法是通过增加一个电流源,抵消了线电阻上产生的电压,将误差控制在合理的范围内。这里我们进行简单说明:电压值V我们通过V1-V2得到,分析一下电流I1的流向,I1从电流源1中流出经过线电阻1到RTD电阻,最后经过线电阻3。 可知此方法测得的电压值只是上的电压值,这样也就消除了线电阻带来的影响。 温度采集 下面我们使用PT100,检测一下手机在使用过程中的温度变化情况。我们用三线制的PT100薄膜热电阻,对手机进行温度测量。这种热电阻是新一代的温度测量和调节传感器,它的响应时间快,精度高,尺寸小,适用于液体、气体等介质,以及固体表面等温度的测量。 如果是不锈钢套管热电阻,它会将热电阻阻体以及引线插入到不锈钢套管内,套管可以起到保护作用,是最常见的封装方式(如下图所示)。 测量温度时,热电阻的测温端与被测物贴合。我们将热电阻连接到M2111RTD温度采集模块上。通过一个485串口转换器和电脑连接,这样就可以在电脑上显示实时的温度情况。 上图是连接好的状态,然后将电阻温度传感器放在手机摄像头旁的位置。设置采集软件相关参数。现在开始测试,进入游戏,我们要看看玩一局游戏,手机大约会升高多少度。 测试完成后,分析波形图可以发现:几个下降区间是因为将手机放在了温度较低的桌面上导致的,波形整体呈上升趋势。 查看储存的CSV文件,可以看到传感器在每个时刻采集到的温度。 回到波形图,放大纵坐标可以看到,现在手机温度为37.7℃,手机的初始温度是32.4℃,一局游戏大约是15分钟。可以计算到,玩游戏时手机每分钟大约升高0.35℃。当然这只是一个估算还有很多情况没有考虑到。 以上就是我们使用RTD传感器测量温度的全过程,软件使用及模块信息均可在网站的相关页面查看。
Smacq思迈科华-电话号码
Smacq思迈科华-电话号码
Smacq思迈科华-淘宝店铺
Smacq思迈科华-京东店铺
Smacq思迈科华-QQ客服
  • 问题咨询 点击这里给我发消息
Smacq思迈科华-微信
  •                    Smacq思迈科华-微信二维码 微信在线客服
Smacq思迈科华-服务邮箱
Smacq思迈科华-返回顶部