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

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

3天内不再提示

测量各类非电物理量的4~20mA电流环采集应用方案

英创信息技术 作者:英创信息技术 2019-10-10 17:50 次阅读

工业上普遍需要测量各类非电物理量,例如温度、压力、速度、角度等,这些都需要转换成模拟信号才能传输到几百米外的监控室或显示设备上。因为电流信号不易受干扰,工业上广泛采用4~20mA电流来传输模拟量。4mA表示0%的信号,可以区分0%信号和电路断开;20mA表示100%的信号,其通断引起的火花能量不足以引燃瓦斯。而控制端需要采集这个模拟电流量,将其转换成数字量进行处理。

1、硬件方案

工业上除特殊要求需要自己设计模拟电流采集电路以外,通用的比较高效、低成本的模拟电流采集方案一般是直接购买专门厂商的模拟量采集模块(俗称亚当模块)。配合上工控主机,可以实现下图所示的采集流程:电流变送器传感器返回的非标准信号转换成4~20mA的模拟电流信号进行传输;亚当模块是一个ADC模块,采集4~20mA的模拟电流,转换成数值存放于寄存器中;主机通过RS485总线访问各个模块,得到相应寄存器的数值进行处理。

测量各类非电物理量的4~20mA电流环采集应用方案

图1模拟电流采集示意图

针对4~20mA模拟电流的采集,市场上有许多厂商都能提供不同性能、不同价格的亚当模块,这些模块通过RS485总线接口与主机通信,通信协议是modbus RTU。英创主板提供RS485接口和modbus库文件,能够作为485主机,与亚当模块构成模拟电流采集系统,并进行相应处理。目前,我们对市场上满足4~20mA输入范围要求的一些亚当模块做了比较详细的评估,英创主板都能与它们正常通信,完成对模拟电流的采集处理。在9600波特率下,我们用5位半电流表对各个厂商不同产品的测量精度进行了评估(最低0.2%),具体情况及其他参数见表1,不同需求的客户可以参考下表进行亚当模块的选型。

表1模拟电流采集模块参数比较

型号 DAM6080 DAM7021 EMR-AI08-I ADAM-4117
厂商 深圳诚控 深圳诚控 深圳昶为 ***研华
单价(元)(不含税) 360 298 533 15341
测试电路与主控电路电源 隔离 隔离 隔离 隔离
采集单元与控制单元 光电隔离(2500VDC 光电隔离(2500VDC) 光电隔离(1500VDC) 光电隔离(3000VDC)
隔离RS485
通信接口 RS232RS485 RS232RS485 RS485 RS485
输入范围 +20mA ±20mA 4-20mA 通道独立可设
输入通道 8路单端,共地 2路差分,独立 8路差分接线,共负信号2 8路差分,独立
ADC分辨率 12位 16位 12位 16位
转换速率 实测 大于10Hz/通道 大于5Hz/通道 大于30Hz/通道3 大于10Hz/total大于30Hz/total4
手册 5Hz/通道 5Hz/通道 100Hz/通道 10/100Hz(total)软件可选
输入阻抗(Ω) 200 100 250 120
测量精度5 实测 0.05% 0.1% 0.2% 0.05%/0.15%
手册 ±0.2% ±0.1% ±0.2% ±0.2%
标准modbus RTU协议 支持 支持 支持 支持
与其他型号组网6 兼容 兼容 兼容 兼容
模块地址 PC端软件修改 PC端软件修改 485主机modbus协议修改 PC端软件修改

(绿色部分为实际测量结果,仅供参考)

1. 研华的ADAM-4107+只要1146元,与ADAM-4117的区别主要是通道不能单独设定输入范围,采样率只有10Hz(total),用户可以评估一下

2. 实际就是单端,只是为每个通道提供了一个单独的地信号接头

3. 大于30,9600波特率受限于读函数一次耗时约30ms,最大能测到约30Hz;当波特率在115200时,读一次时间约20ms,最大约能测50Hz,100次读耗时不到2s,结果93次不同,表明差不多有50次/秒。受限实验条件,不能验证是否能达到100次/秒

4. adam-4117测电流要打开外壳,改变跳线,在PC上设置地址采样率(转换速率)等参数,可以只enable一个通道,则这个通道的采样率就是总的采样率(大于30Hz/total测试过程通注释3),如果enable多个通道,则每个通道平分总的采样率

5. 误差除以量程为测量精度,5位半电流表测量值作为真实值;可以通过测试最大电流的采样值和最小电流的采样值重新标定采样值范围,修改换算公式的值来进一步改善

6. 各个模块设置不同的地址后,两两联网,485通信没有问题

此外,市场上还有更低成本的低精度、单通道亚当模块,只要其支持标准的modbus RTU协议,物理通信接口为RS485就能配合英创主板使用,设置成不同地址后,可以组建RS485网络,通过英创提供的modbus库函数进行访问。不同模块与英创主板的连接如图2所示。

图2不同亚当模块与英创主板连接

2、应用软件编程

Modbus是工业控制器网络通信协议中最常用的协议之一,其通信采用主从方式,在同一个网络中有一个主设备及最多达255台从设备。工业上一般使用modbus RTU模式,以16进制传送数据,一个字节就是一帧,效率高于modbus ASCII模式。一个典型的modbus协议数据包由若干帧组成,如图3所示:

图3modbus数据包格式

其中,第1帧为从机地址,第2帧为功能码,第3、4帧为主机欲访问的从机的起始寄存器地址,第5、6帧为要访问的寄存器个数,最后两帧为16位CRC校验码。对任何一个 ModBus协议数据包,其第 1、2帧及最后两帧的意义都是相同的,其他帧则根据功能码不同而有所区别。

英创提供的libmbusmaster.a库实现了modbus协议,支持常用功能码,详细介绍请查阅网站文章《ModBus通讯协议软件包》、《英创嵌入式Linux工控主板支持Modbus主控协议软件》、《Linux下的Modbus设备方协议软件介绍》。

下面就linux系统下,使用英创提供的libmbusmaster.a库文件进行模拟电流采集应用编程作简单介绍,更详细的过程请参考具体例程。

1、打开串口设备

sprintf( hostName, "ttyS3:9600-8-1-0");

hPort = mbusMaster_OpenPortProtocol( hostName );

2、设置modbus通信超时时间

i1 = mbusMaster_SetTimeout( hPort, 2000 );

printf( "SetTimeout:%d\n", i1 );

3、读取亚当模块转换结果寄存器,处理读取值

result = mbusMaster_ReadMultipleRegisters( hPort, moduleAddr, startAddr+channelStart,dataArr,channelCnt);

if (result == 0)

{

sampleCnt++;

printf("*****sample %d*****\n",sampleCnt);

for (i1 = 0; i1 < channelCnt; i1++)

{

value[i1] = CalculateCircuit(moduleID, dataArr[i1]);

printf("[%d]:\t%hd\t0x%04x\t%0.4f\n", i1 , dataArr[i1], dataArr[i1], value[i1]);

}

}

else

{

strcpy( str,mbusMaster_GetErrorText( result ) );

i1 = strlen( str );

if( i1>0 )

{

printf( "%s!\n", str );

}

}

其中,CalculateCircuit是根据不同模块的转换公式将读到的数值转换成对应的电流值。在使用mbusMaster_ReadMultipleRegisters读取寄存器值时,要参照各模块的手册,传递不同的寄存器映射地址。如果读取失败,可以通过mbusMaster_GetErrorText函数提示失败原因。

4、关闭串口设备

mbusMaster_ClosePortProtocol( hPort );

如果用户对4~20mA模拟电流采集应用方案感兴趣,可以联系我们。我们将提供表1所有的模块信息及程序示例。

3、总结

目前,市面上亚当模块(模拟数采模块)在价格、性能、通道数上有非常灵活的选择,单通道的亚当模块最低不到¥100元就能买到。综合我们的测试情况来看,主控部分使用英创主板,模拟数据采集部分使用市面上成熟的亚当模块,是工业上一种快速构建4~20mA模拟电流采集硬件平台的方案,并且具有很高的灵活性,能够满足用户的不同需求。此外,英创的libmbusmaster.a库文件实现了modbus协议的常用功能,用户只要简单的调用几个函数,就能完成软件上的编写,大大减少了整个产品的开发周期,降低了开发难度。因此,此方案具有简单、高效、灵活、低成本的优势。

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

    关注

    87

    文章

    11008

    浏览量

    206835
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6065

    浏览量

    34649
收藏 人收藏

    评论

    相关推荐

    模拟4~20ma电流输出的设计

    4 ~ 20ma 电流输出的目的不用多说,今天就简单聊一下 4 ~ 20ma 电流输出是怎么设计出来的,并介绍一种国产集成芯片解决方案
    发表于 07-13 15:35 1.4w次阅读
    模拟4~<b class='flag-5'>20ma</b><b class='flag-5'>电流</b>输出的设计

    两线制4~20mA变送器电路设计

    普遍需要测量各类物理量,例如温度、压力、速度、角度等,都需要转换成模拟电信号<br/
    发表于 12-09 14:01

    Link-Max LM-1C2C电流隔离器实现4~20mA电流信号的隔离

    输入输出通道完全隔离,避免了共模干扰对测量精度的影响,也避免了地电位不同对设备带来的危害。4-20mA隔离器产品达到满量程万分之五的精度与线性度,50ppm的温度系数,能提供稳定而精准的物理量隔离与转换
    发表于 11-01 11:07

    Link-Max LM-1C2C电流隔离器实现4~20mA电流信号的隔离

    避免了地电位不同对设备带来的危害。4-20mA隔离器产品达到满量程万分之五的精度与线性度,50ppm的温度系数,能提供稳定而精准的物理量隔离与转换功能。在某些应用中,也许不需要隔离,但仪表的输出阻抗有限
    发表于 11-16 11:03

    4~20mA模拟电流采集应用方案

      工业上普遍需要测量各类物理量,例如温度、压力、速度、角度等,这些都需要转换成模拟电信号才能传输到几百米外的监控室或显示设备上。因为
    发表于 04-05 15:50

    简要分析采用4~20mA电流来传输模拟的原因

    引起的火花能量不足以引燃瓦斯。下限没有取0mA的原因是为了能检测断线:正常工作时不会低于4mA,当传输线因故障断路,环路电流降为0。常取2mA作为断线报警值。
    发表于 11-13 08:49

    4~20mA电流工作原理

    4~20mA电流工作原理:在工业现场,用一个仪表放大器来完成信号的调理并进行长线传输,会产生以下问题:第一,由于传输的信号是电压信号,传输线会受到噪声的干扰;第二,传输线的分布电阻会
    发表于 08-20 11:45

    芯片选型:采集一个2线制420mA传感器的输出信号

    请教大家。1. 要采集一个2线制420mA传感器的输出信号,传感器指标不明确,想到的方案有两个,方案a是用一个高精度电阻
    发表于 08-30 11:26

    4~20mA电流有何不一样?为什么在工业控制中大受青睐

    值。电流型变送器将物理量转换成 4~20mA 电流输出,必然要有外电源为其供电。最典型的是变送器需要两根电源线,加上两根
    发表于 10-16 07:00

    为什么广泛采用 4~20mA 电流来传输模拟

    值。电流型变送器将物理量转换成 4~20mA 电流输出,必然要有外电源为其供电。最典型的是变送器需要两根电源线,加上两根
    发表于 09-22 09:39

    怎样采用4~20mA电流来传输模拟

    怎样去采集4~20mA的模拟电流?怎样采用4~20mA电流
    发表于 10-09 07:55

    如何去实现一种4~20mA电流的设计

    4~20mA电流是什么?如何去实现一种4~20mA电流
    发表于 10-14 06:16

    420mA模拟输出电流有哪些应用

    怎样去开发一种4~20mA模拟输出信号呢?420mA模拟输出电流有哪些应用?
    发表于 10-15 06:11

    两线制变送器的结构与原理说明及设计4~20mA变送器电路的资料说明

    工业上普遍需要测量各类非电物理量,例如温度、压力、速度、角度等,都需要转换成模拟量电信号才能传输到几百米外的控制室或显示设备上。这种将物理量转换成电信号的设备称为变送器。工业上最广泛采
    的头像 发表于 10-13 09:32 1.3w次阅读
    两线制变送器的结构与原理说明及设计4~<b class='flag-5'>20mA</b>变送器电路的资料说明

    4~20mA电流采集模块

    针对4~20mA(0~20mA)输出型传感器,设计了这套电流采集电路,可以将传感器输出电流采集
    发表于 11-09 09:42 7183次阅读
    4~<b class='flag-5'>20mA</b><b class='flag-5'>电流</b><b class='flag-5'>采集</b>模块