前言
在现代化的工业控制系统中,数据收集、数据处理和远程控制等一系列的任务对于实现工业物联网至关重要。如何优化以及简化设备的数据采集、处理以及传输是一个长期以来存在的问题。在这方面,npm 包 iiot 提供了一种非常优秀的解决方法,本文将深入探讨如何使用 iiot 这一 npm 包来实现工业设备数据采集,以及如何在实际生产过程中使用 iiot 来提高数据处理的效率。
iiot 简介
iiot 是一种基于 Node.js 的 npm 包,其主要目的是为工业数据采集系统提供快速开发的工具包。iiot 支持从通用的工业协议中获取数据,包括但不限于 ModbusTCP、OPC UA、MelsecNet等常用的协议。由于其可靠性和扩展性,iiot 越来越多地应用于工业生产领域。
安装 iiot
首先我们需要在自己的工程项目中引入 iiot,可以通过以下命令进行安装:
npm install iiot
安装完成后,我们就可以在项目中愉快的使用了。
iiot 的使用方法
在详细介绍 iiot 的使用方法之前,我们需要先了解一些基本的概念。
数据源
数据源(Data Source)是一个数据采集器,通常情况下它从一些工业设备中获取数据。iiot 支持多种数据源,包括 ModbusTCP、OPC UA、MelsecNet 等。
点
在 iiot 中,点(Point)是一个数据源中的数据,通常它包含了多个属性(比如名称、数据类型、单位等)。
连接器
连接器(Connector)的作用是将数据源中的数据连接到相应的处理程序(例如数据库、Web 应用程序等)。
现在我们来看一下如何使用 iiot 来连接 ModbusTCP 这一数据源。
首先我们需要新建一个数据源,如下:
const iiot = require('iiot'); const dataSource = new iiot.ModbusTCPDataSource({ host: '127.0.0.1', port: 502, });
以上代码新建了一个 ModbusTCP 的数据源,它的 IP 地址为127.0.0.1
,端口为502
,为了方便,我们将其命名为 dataSource。
接着我们需要在该数据源中添加一些点,比如:
dataSource.addPoint({ id: 'pressure', dataType: iiot.dataTypes.Float32, address: 0, });
以上代码新增了一个名为 pressure 的点,它的数据类型为 Float32,地址为 0。
接下来我们将具体地看如何将数据传输到处理程序中。
连接器
连接器是将数据源中的数据传输到处理程序中的桥梁。在 iiot 中,我们使用 Connector 类型的对象来实现这一功能,它将数据源的数据转换为处理程序所需要的类型。
在使用 iiot 连接器之前,我们首先需要选择一个处理程序,比如数据库(MySQL、Oracle、PostgreSQL 等)。
以 MySQL 数据库为例,下面的代码为数的传输到 MySQL 中:
-- -------------------- ---- ------- ----- ----- - ----------------- ----- ---------- - ------------------------ ----- ------------ ----- ------- --------- ----------- --------- ------- --- --------------------- ----- --------- - --- -------------------------------- ---------------------- -------- ----------- ------ -------------- -------- - --------- ------- -- -- ------------------------------
以上代码通过 MySQLConnector 类将数据源中编号为 pressure 的点的数据传输到数据库中名为 sensor_data 的表中。
在该代码中,我们首先通过 mysql 模块建立了一个连接到数据库的连接,接着使用 MySQLConnector 类创建一个 Connector 对象,然后调用 addMapping 函数建立点和数据表之间的映射,最后使用 dataSource.connect(connector) 函数进行连接。
如果要连接多个数据源,可以按照以上步骤为每个数据源建立一个 Connector 对象,然后调用相应的 connect 函数。iiot 会在背后处理好所有的异步操作,确保连接可以正常工作。
示例代码
下面给出一个实际的示例代码,演示如何获取 ModbusTCP 中的数据,将其传输到 MySQL 数据库中:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ----- - ----------------- ----- ---------- - --- -------------------------- ----- ------------ ----- ---- --- --------------------- --- ----------- --------- ----------------------- -------- -- --- ----- ---------- - ------------------------ ----- ------------ ----- ------- --------- ----------- --------- ------- --- --------------------- ----- --------- - --- -------------------------------- ---------------------- -------- ----------- ------ -------------- -------- - --------- ------- -- -- ------------------------------ -------------- -- - ----- ----- - -------------------------------------- ---------------------- ----------- -- ------
以上代码会不断地从 ModbusTCP 中获取 pressure 点的实时数据,并将其传输到 MySQL 中。同时,该代码还会在控制台中输出 pressure 点的当前值。
总结
iiot 是一个非常优秀的 npm 包,可以在工业数据采集与处理系统中提供必要的工具和支持。本文中我们详细介绍了如何安装、配置以及使用 iiot,同时也讲解了 iiot 中的一些基本概念与流程。希望本文能够对大家学习 iiot 以及工业数据采集系统提供一些有用的参考。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005600f81e8991b448ddeeb