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

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

3天内不再提示

一种DCS模拟量在计算机中存储中的特点及分部压缩方法

电子设计 作者:电子设计 2018-11-07 08:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

导读:传统压缩方法对DCS 模拟量进行压缩效果不佳。要得到较好的压缩效果就要从模拟量在计算机中表示的方法入手。本文分析了DCS 模拟量在计算机中存储和表示方法及其特点,对原始数据进行预处理,使数据表现出较明显的冗余信息,然后对数据的不同部分,采用不同的压缩方法,每种压缩算法压缩模拟量数据的一部分。

与DCS 接口中,串行通讯是常见的接口方式。为了提高通讯效率,需要对通讯的数据进行压缩处理。DCS 模拟量的压缩方法中,常用整数表示工程量,即将模拟量的按其量程线性化处理为两字节正整数(0~65535),应用时再转换为工程量。这种方法由于要维护模拟量的量程表,不便于通信;另一类常用的压缩方法是采用LZW 等基于字典模型的压缩算法。模拟量数据是以单精度浮点数存放的,数据的冗余度很小,传统的压缩处理方法的压缩效果都不理想。

本文从模拟量在计算机中的表示方法入手,首先将模拟量预处理,再针对数据的不同部分采用不同的方法进行压缩,最后将压缩后数据组合起来。这样既充分考虑到了数据的特点,又充分利用了压缩方法的适应性。

1 模拟量的表示方法及特点

1.1 模拟量的表示方法

DCS 模拟量用单精度浮点数表示,占用4 个字节,可以精确到7 位有效数字。按文献[3] 标准(以下简称标准)表示。设一个浮点数R,可使用三元组{S,E,M}来表示:S 为符号位,用1 位表示。

S = 0 表示R 为正数,S = 1 表示R 为负数;E 为指数,用8bits表示。实际指数要经E - 127 计算后得到;M 为尾数,用23bits 表示。浮点数R 为S×1.M E(1 为隐含的一位尾数,不在M 中表示)。

1.2 模拟量的特点

数据压缩需要信息有足够的冗余度。以标准表示的模拟量不利于压缩。即便差值很小的数据,在计算机中表示结果差别很大,如1234.5 在计算机中用四字节表示为:68 154 80 0 ,而1234.6表示为:68 154 83 51,仅有符号位和指数位表示相同,尾数完全不同,这样就造成了压缩的难度。

现以200 个模拟量数据为样本分析其特点。样本数据随机产生,其范围为[0.0,1000.0].按照标准存储的数据从字符概率分布较平均,若用通用数据压缩方法压缩这些数据,得不到很好的效果。

虽然浮点数的信息冗余度很小,但若用其表示DCS 模拟量,仍有以下特点:

(1)各工程量数值多数大于零,因此标准表示中,符号位S 大多为零;

(2)各工程量的量程相差约为0.0001~10000 倍,因此标准表示中,指数差值约为-4 ~ 4 ;

(3)从数据精度考虑,工程量一般保留5 位有效数字即可。因此标准表示中,尾数部分有可压缩的信息。

2 模拟量的预处理

模拟量预处理的目的是为了产生更多的冗余信息,获得更好的压缩效果。通信时一般将模拟量按测点表以自然顺序排列。根据1.2 节的分析可知,若将模拟量按其三元组顺序排列,即:N 个模拟量数据,其自然排列顺序为{S1,E1,M1}、{S2,E2,M2}、…、{SN,EN,MN},共占用4N 字节。压缩前将模拟量序列按字节重新排列为:

S1S2…SNE1E2…ENM1M2…MN.因符号位S 为1 位,重新排列后将8个模拟量的符号位合并为1 字节。故重新排列后N 个模拟量共占用字节数为4N+N/8(+1) 字节。(括号中+1 字节表示N 不是8 的整数倍时总字节数+1)。

图1(a) 为样本数据经重新排列后字节分布情况。可以看出数据已呈现明显的规律性:第一部分数据[1,25] 为数据的符号,是样本数据的符号。样本数据均为正,因此由符号位构成的这部分数据全为零;第二部分数据[26,225] 为N 个样本数据的指数,根据1.2 节分析可知,各数据的指数差值大约在-4~4 之间,故有较大的压缩空间;最后一部分数据[226,825] 为N 个样本的尾数,呈随机分布。

第一次预处理是数据无损的。考虑到DCS 模拟量精度要求有5 位有效数字即可。根据信息理论,1 位十进制数可以精确表示log210 ≈ 3.32 位二进制数。单精度浮点数表示模拟量时,4 位二进制约可表示1 位十进制。因此,在精度满足DCS 系统要求的情况下,可以减少一个字节尾数。第二次预处理将尾数的最低字节置零,进一步提高数据的冗余信息。图1(b) 为第二次预处理后的字节分布情况。可以看出,相比第一次预处理,数据最后一部分[626,825] 全为零,可以更好地被压缩。

一种DCS模拟量在计算机中存储中的特点及分部压缩方法

3 压缩算法的选择

3.1 压缩算法选择原则

压缩算法要根据原始数据的特点以及对速度、性能的综合要求来选择。模拟量的压缩应用在数据通信中,对速度的要求较高。

因此压缩算法不能过于复杂,运算量要小。

从预处理后的样本数据可以看出,每一部分数据的特点不同,因此选择压缩算法时应针对不同特点的数据采用不同的压缩算法来处理。第一部分数据(由符号位组成)为零(或绝大部分为零),可以采用游程编码(Run Length Encoding);第二部分数据(由指数组成)数值间相差不大,可用差分编码(Differential Encoding);第三部分数据(由部分尾数组成)随机性较大,压缩效果不明显,因此不进行压缩;第四部分数据(由最低字节尾数组成)均为零,可采用游程编码。

3.2 差分编码

差分编码又称相关编码。当源数据之间差值不大时,用数据间的差值代替源数据序列。较小的差值可以用较少的位数表示。本文用4 位二进制表示一个差值。

源数据中序列E1E2…EN 为数据的指数,其差值约在-4 ~ 4之间,用4 位二进制表示此差值:最高位用来表示差值的符号,其余三位表示差值,-7 保留。可表示的差值范围为-6~+7 ;若差值大于此范围,则不压缩,用原码输出。为了区分是差值输出还是原码输出,用保留的-7 表示下一字节为原码输出。N 字节源序列,若每一字节都可以用相邻差值来表示,其理想压缩比为1:(N/2+1)/N=1:0.5+1/N.

一种DCS模拟量在计算机中存储中的特点及分部压缩方法

图2 为样本数据差分编码压缩后字节分布。可以看到,源数据中表示指数的部分已经被有效压缩。样本数据由825 字节压缩到726 字节,实际压缩率为88.0%.

3.3 游程编码

游程编码的思路是:若数据项d 在源数据中连续出现n 次(n称为重复因子),则在输出流中以nd 代替n 个重复项d.游程编码也可能出现压缩比大于1 的情况。为了区分输出项是重复因子还是被压缩数据,规定当重复因子n ≥ 3 时,输出ddd(n-3) ;n < 3时,输出n 个d,即不压缩输出。另外重复因子3 ≤ n ≤ 255,若数据项d 重复次数大于255,则要重新进行游程编码。设源数据长度为N,包含M 次重复,每次重复平均长度L,则游程编码压缩比为1:(N-M×(L-4))/N.

样本数据经预处理后第一部分(由符号位组成)和第四部分(由最低位尾数组成)可以用游程编码。这部分数据可以获得很高的压缩比。第一部分理想压缩比为1:4/25=1:0.16 ;第四部分理想压缩比为1:4/200=1:0.015.

一种DCS模拟量在计算机中存储中的特点及分部压缩方法

图3 为经游程编码压缩后的数据分布图。由上一级差分编码压缩后的726 字节压缩至510 字节,实际压缩比为1:0.70.

4 结论

200 个样本数据经预处理,对一部分数据进行差分编码、对另一部分数据进行游程编码,最终有510 个字节。因此综合压缩比为1:510/800 ≈ 1:0.64,节省约36% 的空间。由于样本数据的随机性,因此可以推广到一般情况。得到以下结论:

(1)分部压缩方法可以获得约1:0.64 的压缩比;

(2)分部压缩方法为二级压缩算法构成。分别针对模拟量中不同信息类型的数据进行分部压缩;

(3)差分编码和游程编码的算法的复杂度低,其时间复杂度和空间复杂度均为O(n),故算法效率很高。

(4)压缩过程未涉及到数据的工程特性,因此算法可推广至工业过程控制领域,具有一定的实用价值。

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

    关注

    13

    文章

    4901

    浏览量

    90331
  • 计算机
    +关注

    关注

    19

    文章

    7843

    浏览量

    93500
  • DCS
    DCS
    +关注

    关注

    20

    文章

    660

    浏览量

    54127
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探秘TPS08U高精度模拟量采集模块:设计与应用全解析

    探秘TPS08U高精度模拟量采集模块:设计与应用全解析 电子工程师的日常工作,高精度模拟量采集模块是不可或缺的工具。今天,我们就来深入了解
    的头像 发表于 04-28 15:45 96次阅读

    工业级模拟量采集模块:千分之精度,智能化水务管理

    模拟量采集模块水利水电行业应用广泛,其核心作用是将水位、压力、温度等非电的物理转换成标准的电信号(如4-20mA电流或0-5V电压),供计算机系统进行分析、控制与决策。它主要被集成
    的头像 发表于 04-08 16:14 100次阅读

    S32 Design Studio 有些代码文件示例,但它在本地计算机中不存在,为什么?

    S32 Design Studio 有些代码文件示例,但它在本地计算机中不存在。
    发表于 03-17 07:28

    模拟量光端机两线制怎么接线?广州邮科接线全攻略

    工业自动化、远程监控和智能传感系统模拟量光端机扮演着信号远距离、高抗干扰传输的关键角色。尤其当现场使用的是两线制压力/温度变送器(输出4-20mA信号)时,如何正确接线成为工程实施
    的头像 发表于 02-09 09:36 294次阅读
    <b class='flag-5'>模拟量</b>光端机两线制怎么接线?广州邮科接线全攻略

    PLC模拟量到数字量的转换

    工业自动化控制系统,PLC(可编程逻辑控制器)作为核心控制设备,其模拟量信号处理能力直接影响着生产过程的精度和稳定性。本文将深入探讨PLC模拟
    的头像 发表于 12-09 07:39 783次阅读
    PLC<b class='flag-5'>中</b><b class='flag-5'>模拟量</b>到数字量的转换

    工业人必看:从WIFI模拟量双向对传模块选型攻略

    WIFI 模拟量双向对传模块是物联网与工业自动化领域中,专用于模拟量信号无线双向传输的智能硬件,也是衔接前端传感器、后端执行器与控制平台的关键设备,能破解传统有线传输布线难、维护成本高的痛点。
    的头像 发表于 12-01 17:31 811次阅读

    广州邮科模拟量光端机,到底是啥神器?篇文章给你讲明白!

    你是不是工厂、电站或者监控项目里,经常听到“模拟量信号”这个词?比如压力、温度、流量这些连续变化的数据,要把它们传得远、传得稳,可真不是件简单事。老式的布线方式又麻烦又容易受干扰,头都大了对吧
    的头像 发表于 10-30 09:38 442次阅读
    广州邮科<b class='flag-5'>模拟量</b>光端机,到底是啥神器?<b class='flag-5'>一</b>篇文章给你讲明白!

    抗干扰模拟量无线模块,与PLC、DCS数据自组网

    、概述 模拟量转无线模块 是一种用于将模拟量信号(如温度、湿度、压力、电流、电压等)转换为无线信号进行传输的设备。 二、 模拟量转无线模块
    的头像 发表于 10-29 10:12 472次阅读
    抗干扰<b class='flag-5'>模拟量</b>无线模块,与PLC、<b class='flag-5'>DCS</b>数据自组网

    提升性价比之选:CAN接口模拟量采集模块的三大核心功能价值

    工业物联网(IIoT)、智能控制与自动化系统,存在大量 “连续变化” 的物理信号,比如温度的升降、压力的波动、电流的强弱,这些信号被称为 “模拟量”。而CAN 接口模拟量采集模块,
    的头像 发表于 10-11 15:30 551次阅读

    集中式ZDM-E0800V模拟量采集模块(上) — 基础应用

    工业自动化模拟量信号极为关键。致远电子的E系列高速IO模块ZDM-E0800V支持EtherCAT协议,可采集工业现场的电压模拟量信号。本文将详细介绍其功能与使用
    的头像 发表于 10-09 11:32 694次阅读
    集中式ZDM-E0800V<b class='flag-5'>模拟量</b>采集模块(上) — 基础应用

    工业计算机的重要性

    于管理用于产品检查、数据记录和数据分析的运动控制系统,以提高制造生产率。例如,汽车行业从工业边缘计算机中受益匪浅,这些计算机用于自动化制造汽车所涉及的各种过程。工业边
    的头像 发表于 07-28 16:07 758次阅读
    工业<b class='flag-5'>计算机</b>的重要性

    4G模拟量双向对传模块:同步远传,远程无线遥控开关

    4G模拟量双向对传模块是一种基于4G网络实现模拟量信号远程双向传输的工业物联网设备。主要用于解决工业现场传感器、执行器等设备的数据采集和远程控制问题,尤其适用于距离远、布线困难的场景
    的头像 发表于 07-23 17:04 762次阅读

    自动化计算机经过加固后有什么好处?

    让我们讨论下部署坚固的自动化计算机些好处。1.温度范围宽自动化计算机经过工程设计,配备了支持宽温度范围的组件,使自动化计算解决方案能够
    的头像 发表于 07-21 16:44 788次阅读
    自动化<b class='flag-5'>计算机</b>经过加固后有什么好处?

    工业计算机与商用计算机的区别有哪些

    工业计算机一种专为工厂和工业环境设计的计算系统,具有高可靠性和稳定性,能够应对恶劣环境下的自动化、制造和机器人操作。其特点包括无风扇散热技术、无电缆连接和防尘防水设计,使其
    的头像 发表于 07-10 16:36 952次阅读
    工业<b class='flag-5'>计算机</b>与商用<b class='flag-5'>计算机</b>的区别有哪些

    模拟量双向对传模块,局域网通讯,应用广泛

    局域网模拟量双向对传模块是一种用于局域网(如以太网、Wi-Fi、CAN总线等)上实现模拟量信号(如电压、电流、温度、压力等)双向、实时、远距离传输的专用设备或模块。主要价值在于替代传
    的头像 发表于 06-20 16:04 852次阅读