让我们从27648开始说起

文章解释了AI板卡通过模数转换读取4-20mA信号来获取模拟量,但因INT数据类型的限制无法表示超过32767的累计流量。要表示大范围流量,需使用浮点型并设定量程。累计流量无固定量程,因此需要通过通讯协议从流量计直接读取。此外,AI板卡的PIW值上限低于32767是为应对超量程情况。
摘要由CSDN通过智能技术生成

本人之前一直从事工控行业,这工作中我不只一次地遇到这种情况:我给你放两根线到你的自控柜,你给我把流量计的累计值读过来,显示到界面上。每次我都表示很无奈,这个做不到啊!那么能用AI板卡读瞬时流量,为什么不能读累计流量呢?

说到这个问题,要从一个正常的模拟量信号的读取过程说起。首先仪表通过4-20mA的电流信号来表示实际的数值,通过AI板卡的模数转换器将模拟量信号转换为Int类型(整型)的数字量。

Int为带符号的16位整型,所以最大值为 0111 1111 1111 1111 (原码),最小值为 1111 1111 1111 1111 (原码)转换为十进制表示即为 -32767 ~ +32767(由于有一位符号位,所以实际用来表示数值的有15位,用二进制表示为 111 1111 1111 1111 十进制为32767 所以对应的数据范是-32767 ~ +32767)

知道了原理那么假如现在我们有一台流量计,最大能测量的流量为65534 m³/h,显然这个数已经超了INT数据所能表示的最大值的两倍,所以我们要如何把这个数表达出来呢?首先流量的显示肯定不能使用Int类型了,我们该用32位浮点型,以便显示更大的数值。然后这里我们就要引入一个新的概念量程,量程即为流量的范围,如我们上面的举的例子,流量计的最大流量是65534 m³/h,那它的量程就是0 ~ 65534m³/h,有了量程我们就可以得到对应关系,即Int 0对应流量0m³/h,Int 32767对应最大流量65534m³/h,有了这样的关系我们就可以使用AI板卡提供的数字信号表示量程范围内的任一数值。举个例子,假如现在Int数值为10000,那么对应的流量值为65534*10000/32767=20000m³/h。

下面回到我们最开始讨论的话题,为什么累计流量不能用AI板卡读取呢?因为有了量程才可以量化AI板卡读取数据与实际数据的对应关系,而累计流量是没有量程的,它会一直累计。所以累计流量是不能使用AI板卡读取的,如果想要读取累计流量,在流量计支持的情况下选取对应的通讯协议进行读取如485/232协议等,当然这一般就需要在PLC端增加相应的硬件。

最后在实际操作的时候,有小伙伴会发现一些AI板卡读取的PIW值最大值并不是+32767而是+27648,这是为了应对超量程情况而留下的15%裕量,毕竟不是所有仪表都很老实,也有超量程的时候,我们也不能不显示吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值