(一)进入“数据模拟”应用

“数据模拟” 应用只有一个菜单板块,就是数据模型项目。

跟其他应用的使用是一样的,也是通过创建模拟项目来实现Aprus适配器的模拟。

从创建模拟项目画面我们可以看到:

  1. 需要给模拟项目设置一个名字,就是模拟项目名称和别名。
  2. 需要编制一个“模拟终端编号”,这个模拟终端就是Aprus适配器的编号。
  3. 需要输入模拟终端的鉴权(用户名和密码),这个鉴权规则与真实数据终端是相同的,可以参考“终端管理”应用中的详细说明。
  4. 需要准备用于数据模拟的“数据源”文件。“数据源”文件是这个模拟的数据终端所产生的模拟数据。这个文件有确定的编写格式,后面会专门介绍。
  5. 循环上报,如果选择“否”,则该模拟项目发送出去最后一个数据源文件的数据后,模拟项目就会自动停止。如果选择“是”,则该模拟项目会循环使用这个数据源文件里面的数据,数据模拟项目会一直持续,除非人工去停止该模拟项目。
  6. 上报周期有两个选项,一个是“与数据源一致”,另一个是“自定义”。数据源文件中的数据是按时间顺序排列的,模拟项目会按数据源里面的时间顺序间隔来触发模拟数据报文的发送。如果选择“ 自定义”,则模拟项目会按自定义的周期,按顺序发生模拟数据报文。
  7. 我们可以把相关信息备注到这个模拟项目。

(二)数据源文件

数据源文件是 “数据模拟” 项目的核心。我们先看一个数据源文件的例子:

这是一个比较大的数据源文件。

(1)数据源文件的格式

来说明一下数据源文件的格式,如下图所示:

数据源文件是由一条一条 JSON格式的 “报文数据” 组成,“报文数据” 简称为 “数据”,就是模拟适配器向 MixIOT 平台系统发送的数据报文。

每条报文数据有三项内容,分别是:时间(time)、主题(topic)和有效数据载荷(payload)。

(2)时间

每条报文数据都需要有 “日期时间”,但这里的 “日期” 和 “时间” 并不重要,重要的是时间顺序和时间间隔。模拟项目开始运行后,会按数据源文件每条报文数据的顺序进行数据报文发送。

如果数据模拟项目的上报周期选项是 “与数据源一致”,则发送的时间间隔会与数据源文件的报文数据顺序和时间间隔一致,这个时候并不会去理会每条报文数据的日期和时间。

如果模拟项目的上报选项是 “自定义”:

则需要填写上报周期,单位是 “秒”。这时候模拟项目会忽略数据源的时间间隔,按照这个数据源的顺序,根据设置上报周期的时间间隔,把数据发送出去。

(3)报文主题

数据源文件报文数据的主题(topic)项,是MixIOT体系的终端数据报文规范。报文主题是为了区分报文类型。

报文主题有8种:

  • r — routine
    r 报文,也叫常规周期性报文(routine message),是最常见也是最多的文本报文,这种报文一般都是周期性采集的数据的上报。

  • i — initial/info
    i 报文,也叫初始化或信息报文(initial/info message),是数据终端完成初始化后,回复平台征询的文本报文。比如Aprus适配器通电重启后,就会发出初始化报文;MixIOT平台收到某个数据终端的i报文,就知道这个数据终端之前重启过,从而根据其他的信息综合一起推断,也许停过电,也许数据终端死机过,也许是什么其他问题.

  • n — nominal
    n 报文,也叫名义报文或正常示意报文(nominal message),是文本报文。这是MixIOT报文体系的一个约定,数据终端如果正常运行,则每4个小时会向平台发出一个正常示意报文,说明自己一切正常。这也是MixIOT体系中非常重要的报文,平台如果超过4个小时没有收到数据终端的n报文,就可以根据其他信息一起综合研判,获知这个数据终端是不是死机了、掉电了、没有充值、流量没有了等等问题。

  • p — picture
    p 报文,该报文跟r、i、n报文不一样,不是文本报文,而是图片(picture)报文。实际上,MixIOT体系可以支持的数据终端设备是没有限制的,除了可以采集数据的适配器,还可以是其他的,如抓拍照相机、摄像机以及拾音(声音监听)设备或装置。

  • a — audio
    a 报文,是音频报文。

  • v — video
    v 报文是视频报文。

  • e — event
    e报文是数据终端对事件的文本报文,比如掉网离线后重新连接、I/O 接口被拔掉等等。

  • d — diagnose
    d报文是诊断文本报文,当平台发出数据终端的自诊断请求后,数据终端会进行自检,并把自检结果上报。

(4)有效数据载荷

报文数据中的 payload 是 “有效数据载荷”,经常被称为 “数据载荷” 或 “数据”,它才是报文数据的具体内容。

如果数据终端的报文是文本报文,也就是说报文是r、i、n、e、d主题,对应的payload都是文本;如果报文是p、a、v主题,那么payload就应该是这些图片、声音或者视频对应的二进制数据。

数据终端不同的报文主题,对应的 payload 都不一样。报文的具体形式,可以参考《MixIOT 报文规范》。

在 “数据模拟”中,模拟的是适配器采集数据的上报,所以仅以r报文为主来讲解。

(三)创建数据模拟项目

还是通过一个数据模拟实例来讲解“数据模拟”应用的使用方法,我们创建的这个数据模拟,是模拟采集佳华泵站数据的数据终端。

(1)项目信息

输入数据模拟项目的基本信息

除了模拟项目名称和别名,还需要给一个模拟终端的编号,这里我们确定编号为 JHPM1001。

用户和密码,是SERG(三普能源集团)统一的数据终端鉴权。

(2)数据文件

选择数据模拟项目的数据源文件。这个数据源文件 JHPM1001.json 是这样的:

上传上去:

循环上报选择 “否”,也就是说一旦开始模拟,等这个数据源文件的数据都上报完了,这个模拟就停止了。

(3)上报周期

确定数据模拟的报文周期,按 15秒一次进行。

(4)备注

输入必要的备注。

(5)确定保存

保存后,这个模拟项目就创建完成了。

这个数据模拟项目创建完成后,只是具备了数据条件。这个阶段可以视为刚刚把数据终端(Aprus 适配器)安装到位,对接了佳华泵站的设备。

(四)注册数据终端

在 “终端管理” 一章中已经非常明确地说过,在整个 MixIOT 体系中的数据终端,无论其形式是什么(智物联的 Aprus 适配器、第三方的工业网关、DTU等等),都需要在 “终端管理” 里面进行注册,只有注册了的数据终端,才能称为 MixIOT 体系中的一个合法使用的数据终端。

MixIOT 仅仅接受来自合法数据终端的报文数据,只会存储这些数据,并对这些数据进行处理。

现在应该清楚,模拟数据只是替数据终端产生数据而已。这里面填写的 “模拟数据终端编号”,目前还不是真正的 MixIOT “数据终端”。所以,还需要在 “终端管理” 中去注册一个真实的终端:

终端类型要选择 “数据模拟终端”,终端配置无需填写。

保存这个数据终端创建信息:

到了这一步,这个数据终端才算是注册完成了。

(五)开始/结束模拟

一旦完成了数据模拟终端所对应的 “真实数据终端” 在 “终端管理” 里面的注册,这个数据终端才能算真正地完成了各项准备,既对接到了设备,也做好了各项登记和配置。

这个时候,可以在操作菜单上启动这个数据模拟项目。

一旦启动这个项目,就相当于我们注册的 JHPM1001 终端开始上报数据。这跟真实的适配器上报数据是完全一样的。报文内容就是我们指定的数据源文件的内容。

报文的数据,可以在 “终端管理” 应用对应的这个数据终端详情中看到,可以试一下:

现在启动了这个数据模拟项目,也就是说这个数据模拟项目已经在为编号为 JHPM1001 这个终端产生报文数据。

可以在 “终端管理” 应用中,从该数据终端详情中看到这些报文。

我们可以与数据源文件做一些对比:

注意一下时间间隔,15秒,非常精确。

到这里,应该基本了解 “数据模拟” 应用的作用以及使用方法,应该也理解了数据模拟的机制。

但是还是会有这样一个问题,这些模拟数据怎么来的呢?我们需要去进一步了解数据源的来源。当然,也可以完全自己手工编辑,这个数据源文件的格式很简单。

(六)模拟数据源的来源

模拟数据怎么来,实际上是一个很重要的问题。一般来说,模拟数据的来源有两个:

(1)真实数据终端的数据导出

真实数据终端的数据导出也就是直接从某个实际数据终端导出某一个时间段的数据。

比如,我们可以在 “终端管理” 的终端详情中,把佳华电站的A-201数据终端,2024年4月14日这一天的全部报文数据导出到一个文件 jha201.json,这个导出的数据文件正好是符合模拟数据源格式的文件。

这是一个很重要的信息点,换句话说,只要把这个佳华电站里面的数据终端的数据给我们,我们就能让这个电站在 MixIOT 中运行起来。这就是为什么与智物联开展产学研合作的高校,它们的学生不出校门就可以模拟山西佳华瓦斯电站的运行,而且可以自己掌握了如何调度和优化山西佳华瓦斯电站的运行。

智物联工业云(mixyun.com)提供了经过脱敏后的 MixIOT 数据终端模拟数据,这些数据涵盖多个工业领域,如矿山、化工、绿色能源、加工中心、电子、防治、气动能源、热力能源、饲料、水务、环保等等,这些数据可以供 MixIOT 企业用户、合作伙伴以及大专院所用户学习和使用。

(2)通过数据模拟程序产生

除了直接导出的真实数据,还可以利用 “模拟数据生成器” 程序去生成一个完全随机的模拟数据源文件。

“模拟数据生成器” 是一个本地运行的桌面程序(exe程序),运行起来后,输入需要模拟的数据:

模拟程序可以设定需要模拟的数据量、时序数据的起始时间、时序间隔以及 AprusKey 的个数。

模拟数据生成器可以模拟三种模拟数据类型,分别是:

  • 列表随机选择。也就是说,先定义一个列表中,如 (1,2,3,4,5),模拟的时候随机选择一个,选择任何一个的概率是一样的。
  • 区间随机。也是定义一个闭区间,模拟的时候从中随机选择一个该区间的有理数。
  • 正态分布。所模拟的数据,符合正态分布,需要确定期望值 μ 和标准差 σ。

点击 “保存”,这个数据源文件就会被生成出来。

我们大概可以估计一下数据量要怎么确定,比如,10秒钟模拟一组数据,一分钟就是12条,一小时就是720条,一天就是大约1.7万条。

文档更新时间: 2024-07-02 16:48   作者:Mixiot