zhaojun_xf 发表于 2023-10-26 14:57

ADI芯片在工业自动化张力放大器中的应用

<p align="left"><span style="color:#e74c3c;"><span style="font-size:20px;">&nbsp; &nbsp; &nbsp; &nbsp;一、概述</span></span></p>

<p align="left">&nbsp; &nbsp; &nbsp; &nbsp; 张力放大器可以同时接收两个张力传感器的信号,能够把传感器上微小信号通过仪表放大器放大后进入ADC,经过一系列逻辑运算后,通过DAC转换为0-10V或4-20mA的标准信号输出,可与PLC,显示仪表等直接连接。</p>

<p align="left" style="text-align: center;"> &nbsp;</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp;放大器操作由两个按键+3个LED组成。通过按键操作后可用获取应用工况的实际线性曲线和放大倍数等信息。该放大器并非直接通过硬件电路进行信号放大的,实际上是硬件放大加软件放大相结合的应用。</p>

<p align="left">&nbsp;</p>

<p align="left" style="text-align: center;"> &nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left"><span style="color:#e74c3c;"><span style="font-size:20px;">&nbsp; &nbsp; &nbsp; &nbsp;二、张力传感器</span></span></p>

<p align="left">&nbsp; &nbsp; &nbsp; &nbsp; 应用在张力检测的传感器一般有两种:一种是应变式(惠斯通全桥);一种是差动式(差动变压器原理)。这两种传感器在市场上的应用比较多。它们的基本原理如下:</p>

<p align="left">&nbsp; &nbsp; &nbsp;</p>

<p align="left"><span style="color:#9b59b6;"><span style="font-size:18px;">&nbsp; &nbsp; &nbsp;1)应变式</span></span></p>

<p>&nbsp; &nbsp; &nbsp; &nbsp;应变式传感器工作电源电压5-12V,信号范围2mV/V,工作原理如下图,其特性如下:</p>

<ol start="12" style="list-style-type:lower-alpha">
        <livalue="50">传感器直接贴在弹簧体上,结构简单。</li>
        <livalue="50">输出电压小。</li>
        <livalue="50">需要对稳定变化进行补偿。</li>
        <livalue="50">不耐湿。</li>
</ol>

<p align="center" > &nbsp;</p>

<p align="center" >应变式传感器的工作原理</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp; &nbsp; <span style="color:#9b59b6;"><span style="font-size:18px;">&nbsp;2)差动式</span></span></p>

<p align="left">&nbsp; &nbsp; 差动式传感器工作电源电压5V,信号范围200mV,工作原理如下图,其特性如下:</p>

<ol start="12" style="list-style-type:lower-alpha">
        <li align="left"value="50">传感器部分非接触,抵抗撞击的能力强。</li>
        <li align="left"value="50">与应变式相比输出电压较高,抵抗噪声能力强。</li>
        <li align="left"value="50">幅度小时误差小。</li>
        <li align="left"value="50">需要对稳定变化进行补偿。</li>
</ol>

<p align="center" > &nbsp;</p>

<p align="center" >&nbsp;差动式传感器的工作原理</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp; &nbsp; &nbsp;<span style="font-size:18px;"><span style="color:#9b59b6;">3)检测荷重与张力的关系</span></span></p>

<p align="left">&nbsp; &nbsp; &nbsp; 张力T与传感器上的检测荷重F的关系如下图所示。这个是水平状态下,我们可以通过安装角度和辊重获取的它们的关系。但是在实际应用中,由于传感器的安装角度和包角等不确定性的存在,我们是无法直接计算获取的,所以在使用之前必须校准。</p>

<p align="center" > &nbsp;</p>

<p align="center" >&nbsp; 张力T与检测荷重F的关系</p>

<p align="left">&nbsp;</p>

<p align="left"><span style="color:#9b59b6;"><span style="font-size:18px;">&nbsp; &nbsp; 4)传感器的安装</span></span></p>

<p align="left">&nbsp; &nbsp; 传感器在安装时,需要注意检测辊与其他两个辅助辊之间的包角和距离。同时压座传感器(SE系列)还需要注意进料方向,必须与实际一致。</p>

<div style="text-align: center;"></div>

<p align="center" >&nbsp;&nbsp;&nbsp;</p>

<p align="center" >传感器的安装示意图</p>

<p align="left">&nbsp; &nbsp;<span style="color:#e74c3c;"><span style="font-size:20px;"> 三、放大器电路设计</span></span></p>

<p align="left">&nbsp; &nbsp; 不管是应变式传感器还是差动式传感器,其输出信号都是差分信号。不过这两种信号的输出范围区别比较到,下面我们就以应变式传感器为例说明如果使用ADI的芯片设计张力放大器。如果需要使用差动式传感器,只需要修改传感器的放大倍数即可。</p>

<p align="left">&nbsp; &nbsp; <span style="color:#9b59b6;"><span style="font-size:18px;">1)结构图</span></span></p>

<p align="left">&nbsp; &nbsp;放大器由5个部分组成:电源部分(Power)、MCU部分(Mcu)、隔离电路(Iso)、传感器放大及ADC(OPA)和模拟输出部分(Out)等。这5个部分中,比较关键的是OPA和Out两个部分,这两个部分都是使用的ADI的芯片设计的,下面就只描述这两个部分。</p>

<p align="left" style="text-align: center;"> &nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp; &nbsp; <span style="color:#9b59b6;"><span style="font-size:18px;">2)OPA</span></span></p>

<p align="left">&nbsp; &nbsp;这部分的电路是把张力传感器上的微弱模拟信号放大一定的倍数后,输入到ADC中,再通过ADC的SPI接口与MCU相连接。仪表放大器使用轨道轨输出AD8226,该芯片可以放大1-1000倍,单电源输入2.2V-36V,使用MSOP封装,非常方便小巧。</p>

<p align="left" style="text-align: center;"> &nbsp;</p>

<p align="left">&nbsp; &nbsp; ADC使用8通道,16位,250kSPS的AD7689。</p>

<p align="left" style="text-align: center;"> &nbsp;</p>

<p align="left">&nbsp; &nbsp; 由于我们使用的传感器是应变式传感器,电源为10V,故输出信号为10&times;2mV/V = 20mV。张力传感器根据安装的方向不同,可以是压力,也可以是拉力,所以,我们需要兼容两个方向的应用。故需要把仪表放大器上的信号电平太高到ADC检测范围的1/2位置,即2.5V,这个电平需要用专门的基准电源芯片实现。故传感器实际能够使用的信号范围为0-2.5V,设计需要预留部分空间,故信号范围选择在0-2.0V比较好,放大倍数 = 2000mV / 20mV = 100。</p>

<p align="left">&nbsp; &nbsp; &nbsp; ADC获取传感器放大后的信号后,通过SPI与MCU进行通讯,MCU只需要周期性的读取ADC的信号即可。这个信号还不能直接放大后通过DAC输出,因为传感器的安装方向不同,安装角度不同,其实际需要放大倍数也是不同的。所以,这里使用的方式是通过MCU运算后实现信号放大输出。</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp; &nbsp; 2)Out</p>

<p align="left">&nbsp; &nbsp; 工业上对模拟信号的范围是有要求的,一般要么是0-10V,要么是4-20mA。要能够输出这两种信号的集成芯片并不多,要么只有模拟电压输出,要么只有模拟电流输出,ADI的AD5412是一款不错的芯片,它能够输出模拟电压或模拟电流。</p>

<p align="left" style="text-align: center;"> &nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp; &nbsp; AD5412的应用电路非常简单,它本身内置基准,我们这里把这个基准引出,应用作为ADC的电源,即能保证ADC和DAC基准一致,又能节省一个基准芯片,使得电路更加简洁。不过需要注意由于AD5412的基准输出电流只有5mA,需要通过一个运放来放大驱动电流,比较常见的可以使用ADI的AD8605,由于电路简单这里就不贴出来了。</p>

<p align="left">&nbsp;</p>

<p align="left"> &nbsp;</p>

<p align="left">&nbsp; &nbsp; <span style="color:#e74c3c;"><span style="font-size:20px;">四、放大器的应用</span></span></p>

<p align="left">&nbsp; &nbsp; 完成了传感器信号的放大和DAC模拟量的输出,MCU实现的功能就比较简单了,经过两次标定获取&ldquo;零点&rdquo;和&ldquo;最大&rdquo;,基本就获取传感器在当前工况中的线性曲线了。</p>

<table align="center" style=" border-collapse:collapse; border:none" width="1198">
        <tbody>
                <tr>
                        <td style="border-bottom:1px solid black; background-color:#a6a6a6; border-top:4px double black; border-right:1px solid black; border-left:none">
                        <p align="center"><b>序号</b></p>
                        </td>
                        <td style="border-bottom:1px solid black; background-color:#a6a6a6; border-top:4px double black; border-right:1px solid black; border-left:none">
                        <p align="center" ><b>LED</b></p>
                        </td>
                        <td style="border-bottom:1px solid black; background-color:#a6a6a6; border-top:4px double black; border-right:1px solid black; border-left:none" valign="top">
                        <p align="center" ><b>状态</b></p>
                        </td>
                        <td style="border-bottom:1px solid black; background-color:#a6a6a6; border-top:4px double black; border-right:none; border-left:none">
                        <p align="center" ><b>说明</b></p>
                        </td>
                </tr>
                <tr>
                        <td rowspan="3" style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none">
                        <p align="center" >1</p>
                        </td>
                        <td rowspan="3" style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none">
                        <p align="center" >Zero</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none" valign="top">
                        <p align="center" >常亮</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:none; border-left:none">
                        <p align="left" >正在调零</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none" valign="top">
                        <p align="center" >闪烁</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:none; border-left:none">
                        <p align="left" >慢闪(1s一次,未校准),快闪(一次200ms)3次,校准异常</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none" valign="top">
                        <p align="center" >熄灭</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:none; border-left:none">
                        <p align="left" >正常</p>
                        </td>
                </tr>
                <tr>
                        <td rowspan="3" style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none">
                        <p align="center" >2</p>
                        </td>
                        <td rowspan="3" style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none">
                        <p align="center" >Span</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none" valign="top">
                        <p align="center" >常亮</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:none; border-left:none">
                        <p align="left" >正在跨度标定</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none" valign="top">
                        <p align="center" >闪烁</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:none; border-left:none">
                        <p align="left" >慢闪(1s一次,未校准),快闪(一次200ms)3次,校准异常</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none" valign="top">
                        <p align="center" >熄灭</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:none; border-left:none">
                        <p align="left" >正常</p>
                        </td>
                </tr>
                <tr>
                        <td rowspan="2" style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none">
                        <p align="center" >3</p>
                        </td>
                        <td rowspan="2" style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none">
                        <p align="center" >Work</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none" valign="top">
                        <p align="center" >常亮</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:none; border-left:none">
                        <p align="left" >正常</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:1px solid black; border-left:none" valign="top">
                        <p align="center" >闪烁</p>
                        </td>
                        <td style="border-bottom:1px solid black; border-top:none; border-right:none; border-left:none">
                        <p align="left" >超满量程(超过10%)报警,快闪(一次200ms)</p>
                        </td>
                </tr>
                <tr>
                        <td style="border-bottom:4px double black; border-top:none; border-right:1px solid black; border-left:none">
                        <p align="center" >4</p>
                        </td>
                        <td style="border-bottom:4px double black; border-top:none; border-right:1px solid black; border-left:none">
                        <p align="center" >3LED</p>
                        </td>
                        <td style="border-bottom:4px double black; border-top:none; border-right:1px solid black; border-left:none" valign="top">
                        <p align="center" >慢闪</p>
                        </td>
                        <td style="border-bottom:4px double black; border-top:none; border-right:none; border-left:none">
                        <p align="left" >3次(1s一次),进入测试状态</p>
                        </td>
                </tr>
        </tbody>
</table>

<p>&nbsp; &nbsp;</p>

<p><span style="color:#9b59b6;"><span style="font-size:18px;">&nbsp; &nbsp;1)初始化数据</span></span></p>

<p align="left" >&nbsp; &nbsp; 同时按下Zero和Span两个按键2秒以上,直到Zero和Span两个指示灯同时闪烁,此时松开两个按钮,初始化完成。</p>

<p align="left" >注意:执行初始化后,放大器内校准数据丢失,并恢复到出厂设置。</p>

<p align="center" >&nbsp;</p>

<p >&nbsp; &nbsp; <span style="color:#9b59b6;"><span style="font-size:18px;">2)调零操作</span></span></p>

<p align="left" >&nbsp; &nbsp; 检测辊上不安装任何材料,长按(2s以上)按键Zero,指示灯Zero常亮,松开按键,放大器进入调零状态。如果调零正常,指示灯熄灭;如果异常指示灯闪烁3次。</p>

<p align="left" >&nbsp;</p>

<p style="text-align: center;"> &nbsp;</p>

<p align="left" >&nbsp;</p>

<p >&nbsp; &nbsp;<span style="color:#9b59b6;"><span style="font-size:20px;"> 3)标定操作</span></span></p>

<p align="left" >&nbsp; &nbsp; &nbsp; 在检测辊上悬挂对应的砝码,在端口EMF与GND之间连接好相应的电阻,范围为,放大器将以此电阻与10K&Omega;的比值进行标定。例如:我们外接5K&Omega;的电阻,那么我们只需要满量程一半重量的砝码进行标定。不接外接电阻时,将以满量程进行标定;如果直接短接这两个端子将以满量程的50%进行标定。外接电阻必须步进为1K&Omega;,如果不是整数值,放大器将四舍五入进行计量,所以尽量不要使用n.5K&Omega;附近的电阻。</p>

<p align="left" >&nbsp; &nbsp; 长按(2s以上)按键Span,指示灯Span常亮,松开按键,放大器进入跨度标定状态。如果标定正常,指示灯熄灭;如果异常指示灯闪烁3次。</p>

<p align="left" style="text-align: center;"> &nbsp;</p>

<p>&nbsp; &nbsp; ① 如图在检测辊中间悬挂对应满量程张力的砝码;如果使用到了EMF端口,按比例挂砝码。</p>

<p>&nbsp; &nbsp; ② 按住Span并保持2秒,此时跨度指示灯常亮;松手,进入跨度标定。</p>

<p>&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>

<p align="left">&nbsp;</p>
页: [1]
查看完整版本: ADI芯片在工业自动化张力放大器中的应用