首页 > 其他分享 >Niagara 物联网技术基础应用(文章修复中)

Niagara 物联网技术基础应用(文章修复中)

时间:2024-03-03 23:33:36浏览次数:20  
标签:界面 修复 Point 视图 联网 station Niagara 属性

技术指南

引言

主要分以下几个模块

  • 物联网软件平台(workbench)的使用
  • Niagara编程方式
  • 项目创建流程

物联网软件平台(workbench)的使用

Niagara软件流程及协议

Niagara系统中主要包括几种典型程序

  1. platform(平台)

  2. Station(站点)

  3. Workbench(工作台)

  4. Daemon(守护进程)

  5. Web Browser(浏览器客户端)

协议

​ 预留

workbench功能及介绍

workbench开发平台是Niagara 4的统一应用开发工具,其功能主要包括数据建模、用户界面设计、驱动开发(内置Java开发环境)

Workbench主窗口视图功能

Workbench主窗口视图基本要素如下图1所示,本文档将按照下图所示的标识对功能进行描述

Niagara编程入门

Niagara的大多数功能和应用可采用两种编程方式

  • 程序员方式—Java编程
  • 非程序员方向—接线图编程(Wire Sheet)

程序员方式—Java编程

预留

非程序员方式—接线图编程(Wire Sheet)

Point描述

​ 在Niagara软件平台中,所有的参数变量都被抽象作名为点(Point)的模块,这个点又可以分为两个大类

有“简单点”和“代理点”详情请仔细阅读手册About KitControl部分内容

graph LR Point-->SimpleControlPoint Point-->ProxyPoint

​ 简单点(Simple Control Point):从KitControl->ControlPalette->Points中添加的点属于简单控制点,在项目中主要起数据处理的作用,无需配置寄存器。

​ 代理点(Proxy Point):通过网络设备驱动添加的点属于代理控制点,通过代理点可以从设备中读取数据,也可向设备中写入数据,但这种点不能乱加,这种Point与设备内部的寄存器有关,在配置时需要查阅设备的寄存器表

  • 控制点数据类型

    1. 布尔型-Boolean

      ​ 只有on和off两种状态,可用于开关及设备的启停

    2. 数值型-Numeric

      ​ 代表模拟量(AO、AI信号)适用于一些与数值相关的变量,使用的是双精度(64bit)数值类型

    3. 枚举型-Enum

      ​ 代表枚举状态(超过两种状态),可以实现多种状态的控制

    4. 字符串类型-String

      ​ 代表一个或多个ASCⅡ字符,通常具有一些字面意义

  • 控制点读写类型

    1. 只读型

      ​ 只能读取,不能控制和修改

    2. 读写型

      ​ 既能读取,也能修改

    如下图所示:

    ​ 图中带有Writable后缀的Point便是可写类型,而不带此后缀的便是只读类型,下面以布尔点为例讲解点的用法,在这之前我们先了解下组件的通用视图类型。

通用组件视图类型

什么是通用组件视图?通用组件视图在创建一个数据文件时默认加入的视图文件,这些视图用于配置、管理相应的组件,在station-config目录下新建文件夹命名demo,双击该文件夹默认打开的是名为Wire Sheet的视图,展开主视图右上角的视图选择器后可看见系统默认添加的通用组件视图,如下图所示
  1. Wire sheet: 显示组件间的连接关系,以及运行状态,多用于逻辑程序编写以及程序仿真,该视图是Point类型组件的主要承载者,想要向程序中加入一个点变量便是从Palette中选取想要的变量后采用鼠标拖拽的方式将其拖入该视图。如下所示

  2. Ax property sheet:显示组件的可见属性,切换至此视图后可见各Point变量以列表的形式呈现,单击某个变量后可展开该点的属性配置,在该视图便于配置多个Point的属性,但不便于展示各Point的连接,展开可见属性后可看见Point的属性是由不同的拓展块组合而成的,在可见属性界面可以再加入新的属性拓展,例如报警点,如下所示

  3. Property sheet: 功能同 Ax property sheet,基于 HTML5 实现

  4. Category sheet:类别管理,与权限配置相关

  5. Ax slot sheet: 显示和编辑组件 slot 属性,如隐藏、显示、类型等(其实就是组件的可见属性)

  6. Relation sheet:显示和管理组件之间的链接关系

可见属性视图详解

我们主要讨论可读写型Point的属性配置,因为只读型Point可讲得东西实在是太少了,但这两个类型的属性界面也有很多相似之处,我们重点选取BooleanWritable和NumericWritable进行讲述,这也是最常用到的Point

首先在WireSheet视图中加入BooleanWritable和NumericWritable点变量,如下所示

双击BooleanWritable图块进入该点位的可见属性配置界面,具体功能描述如下图所示

NumericWritable的属性界面大多与BooleanWritable相同,下面着重介绍NumericWritable的属性界面的不同点,如下图所示

再讲一下些二者的共同点,虽然这种可读写型点位变量最多支持17个输入端口,但在WireSheet视图中,我们只看到了其中的两个输入,如下图所示,该点位的仅有两个输入端口

想必你也不希望视图里是一长串的输入端口,所以变量在创建时默认只开放了两个输入端口,那么要怎么加入更多输入端口呢?首先对着Point模块单击鼠标右键,如图出现下列菜单

单击最下方的Pin Slots出现端口插槽菜单,如下图所示,其中带有图钉标号的就是该模块开放的端口

若想对端口作改动,只需要单击相应的端口直到被标上图钉标志即可

Poxy Point设置流程

项目创建流程

资料准备

​ 预留

在组态软件中配置项目

  • 创建工作站

    在菜单栏依次点击Tools-New Station

    按需输入工作站名称,工作路径一般无法更改,默认在C盘(与计算机管理员绑定),随后选择工作站模板(默认即可)

    随后设置工作站密码,首先是admin(超级管理员用户)用户,该账户用于管理有关Station的操作,用户名就是admin且无法更改,密码设置完毕后该Station的所有文件将保存在侧栏目录中,如下所示

    —My Host:主机名

    ​ —My File System

    ​ —User Home

    ​ —Station

    ​ —用户创建station

    在此目录下,用户能以“离线”状态编辑station相关功能

  • 打开platform平台

    在菜单栏依次点击My Host-My Modules-platform

    其中会出现两个platform,带小锁图标的是TLS(一种安全协议)连接,另一个是普通连接,双击后进入登录界面,如果是在本机上运行的platform,其账户密码为此电脑的管理员账户和密码,但如果要登录其他设备,如JACE,需在菜单栏依次点击File-Open-Open Platform进入界面后输入正确的IP地址和端口号进行连接,此时的密码为该设备的platform密码

  • 拷贝station文件夹至Daemon(守护进程)目录

    不论在任何设备上运行station都是从Platform Daemon User Home中启用站点,所以离线运行的station必须将该站点拷贝进入Platform Daemon User Home文件夹中,先在侧栏依次打开My Host-Platform。在主界面的功能目录上选择Station Copier功能,进入后能看见左右两个文件区域,左侧区域是本地(也就是创建的离线station)station,右侧则是守护进程的目录,选中本地文件夹的station再点击中间的copy即可将文件转移到另一区域,当然,守护进程的文件也可以下载,但是通常需要授权(station密码),拷贝过程会出现两个复选框,这两个复选框的功能请查阅书籍P102

  • 启动station

    进行上述步骤后双击回到platform界面,在主界面视图选择Application Director,进入界面后可看到为未启动的实例,启动station代命令行出现正在运行的相关字样说明station启动完成

  • 打开station

    在station启动完成后侧栏的platform下方会出现station标识,双击即可进入station登录界面,此处的station界面的登录密码即为新建station的admin用户的密码,用户名是admin,密码为用户自定义。成功登入后待主界面出现新内容说明station打开成功

配置项目实时数据库

​ 预留

为实时数据配置历史存储功能

历史数据功能概要

网络控制器(JACE)采集的数据属于实时数据,很多情况需要将实时数据保存起来以便后期查询和数据分析。历史记录是有时间戳记录数据的有序集合。

想要让Station中的历史数据提供数据库支持,Station必须包含History Service等历史服务,这些服务在创建station时会默认添加,不建议随意删改,如下图所示。

此外还需要给需要历史数据记录的Point添加正确的历史拓展并进行合适的配置

要记录的数据量往往很大,因此历史数据编程时要注意以下几点

  • 哪些数据需要记录?
  • 记录的频率是多少?

历史数据记录基本流程

  1. 数据采集:确定需要采集的数据,若该数据是根据数据变化记录的,则确定数据变化的幅值;若该数据是根据时间变化记录的,则确定记录的时间间隔

  2. 数据储存:主要包括定义要储存的数据库文件名,及定义数据库文件的容量。若为JACE站点,则需要定义一个有限的数据库文件容量,缺省值为500条记录;若为PC站点,可将数据容量定义为无限制

  3. 数据归档:指JACE定期将数据归档到Supervisor站点,在节省储存空间的同时也便于永久储存数据

历史数据功能的基本配置流程

  1. 在host/station/config目录下创建一个文件夹将其命名为Demo

  2. 双击文件夹打开WireSheet视图从Palette-KitControl-Util中将名为Random的模块拖入WireSheet视图中如下图所示

  3. 鼠标双击该Point进入可见属性配置界面,将偏移值设置为-10,将最大数据范围设置为60,并将表面属性数值修改为摄氏度并修改该Point的DisplayName,如下图所示

  4. 在WireSheet再添加一个NumericWriable的数据点并按照Doc Histories文档向该点添加相应的拓展

    其中,Interval类型是按时间间隔收集历史数据的拓展(周期性存储);Cov类型是按数据变化收集历史数据的拓展(状态变位存储,一般用于布尔类型)。

  5. 打开历史拓展属性,详细属性配置如下

  6. 把历史数据的使能打开,然后将历史数据记录间隔修改为5秒

  7. 随后在history便可在Host/Station/Config/Demo/History/TEST(station的名字)中双击RT_Temperature数据库后可以看到相应的数据曲线图(chart)。如下图所示

从视图切换列表中可以切换不同的视图,到此,历史服务建立的基本流程结束

为实时数据配置报警

需要配置报警功能的项目

  1. 异常范围:当某个数值超出了规定的数据范围,必须设计报警功能提醒管理员
  2. 警告提示:当程序突然去执行其他任务时需要给管理员一个必要的提示
  3. 故障报警:设备返回故障或脱离控制需要及时提醒管理员维护

报警功能的基本配置流程

基本流程

  1. 报警生成

  2. 报警路由

  3. 报警生成

下面是报警流程配置的基本步骤

  1. 要想使Point具有报警功能同样是需要安装相应的属性拓展,在Palette中搜索alarm功能组,进入alarm功能组后再选择Extensions目录按需选择相应的拓展(详见手册),这里我们在上次进行历史数据配置的例子中安装拓展,如下图所示
  2. 以OutOfRangeAlarmExt(根据数值上下限产生报警的拓展)为例解释其中的详细属性配置,如下图所示

根据需要编写联动控制程序

​ 在Wire Sheet界面中,能以鼠标拖拽Point模块端口的方式进行输出(out)与输入(in)之间的连接,这是在一个Wire Sheet视图中的Point之间的连接,但这种方式是不可以连接到这个Wire Sheet视图以外的点,下面主讲不同Wire Sheet之间的Point的连接方式。

跨文件数据交互(处于不同Wire Sheet中的Point之间的互联方式)

手册Basic object linking

我们首先在Host>station>config目录下创建两个文件夹,一个命名为Data1,另一个命名为Data2,如下图所示

创建完成后在Data1文件夹中创建一个随机数Random,在Data2文件夹中创建一个NumericWriable点,如下图所示

显然,利用鼠标拖拽的方式并不能使这里两个点互联,在Niagara中,处于不同Wire Sheet视图中的Point进行互联是可以的,首先需要定义“数据源”(一般就是输出),先对着需要定义的“数据源”的Point模块单击鼠标右键,会相应的菜单选项,我们将视角锁定到这个选项,如下图所示

![](E:\new desk\Niagara项目文档\文档图片\link mark.bmp)

这里实际上我已经点击过Link Mark选项,否则这三行选项除了Link Mark选项以外其余两项是灰色且不显示内容的,在单击Link Mark选项过后就完成了“数据源”的定义,而图中的Link From“Random”就是将该点作为目标点与源点进行连接,而Link To “Random”就是将改点作为源点与目标点进行连接,显然,我们对自己定义的数据源点进行这两个操作是不合理的,我们现在打开Data2的Wire Sheet视图对想要连接的Point单击鼠标右键,我们选择Link From “Random”选项,会出现这样的界面,如下图所示

在此界面我们可以看到我们之前使用Link Mark定义的“数据源”,以及我们现在定义的“目标源”,单击“数据源”的输出(out)和单击“目标源”的输入(in10或in16)在点击“ok”便可完成跨文件的数据连接,通过下拉link窗口你可以看到一些用户的操作slot也能够进行互联,形成控制关系,连接完成Point会出现一个小尾巴,如下图所示

如图所示,该点已经成功接收到了来自另一个文件夹中的数据,双击小尾巴可以直接跳转到“数据源”,通过这样的方式可以实现跨文件甚至跨协议的数据交互。到此,跨文件数据交互的基本流程结束。有几个要点需要注意

  1. 并不是所有点都能连接,比如输入就必须和输出进行配对,不能互联的slot在选中后会变成灰色
  2. 这里只展示了Point默认开放的端口的连接,实际上用这种方式连接Point甚至可以在Pin Slot没有完全开放的情况下进行进行互联,互联后会默认开放未开放的Pin Slot,因为端口是具有优先级的,在进行这种操作要特别注意
  3. 另外还有一个ralation mark选项是用于定义结构层级的,具体的使用方法和应用未知

使用时间表对Point动作进行规划

​ 预留

组态图形界面用于人机交互

Px视图基础

Niagara作为中间件,提供了一种组态的方式搭建GUI界面,Px是一种文件的格式,用来定义显示图像所需要的信息、控制参数和设计属性等。一个Px文件定义了Baja UI Widget以及这些Widget绑定数据的树形结构。在Px视图中可以使用任何类型的组件,包括Point甚至是Workbench的窗口也能加入其中。

可以制作什么界面?

  1. 标准web页面,支持html5,需要前端知识
  2. px页面,只需要掌握workbench的使用即可,但受限于niagara的组件功能,难以实现高度定制化需求

px视图创建流程

首先在station>File中创建一个PX文件

把想要添加的图片文件放入守护进程的station目录中(磁盘:\ProgramData\Niagara4.9\tridium\stations\station文件\shared)

通过鼠标拖拽的形式可以将想要的图片加入画布中,在右侧导航栏的widget tree中可以查看自己添加了哪些图片以及可以修改图片的一些简单属性

在PX layer中可以创建图层,要想将一张图片设为一个单独的图层,则需要在Px editor中的主视图界面双击一张图片,在layer选项中选择相应的图层名即可。

添加图片binding:双击图片点击properties中的label右边的第一个按钮,即Add Binding功能,比如添加value binding,该功能使图片随着组件(point)变化而变化,成功添加value binding后再properties界面中出现新的属性选项(原本只有label属性),点击ord在文件选择窗口选择component chooser选项即可进入组件选择视图,选择station文件中的想要绑定的点位(如布尔点),这样就完成了基本的关联。

如何让图片随着绑定的Point的状态变化而变化:这种功能一般需要两张图片,分别代表两个状态的图片,可以是静态的,也可以是动态的(gif),在properties页面中鼠标右击label属性中的Image选项会出现animate(动画)选项窗口,在此根据Point的不同状态设置不同的图片,设置完成后可在Px view界面右击设置过的图片选择set改变状态验证该功能。

在px editor界面鼠标右击New>Label可创建标签图块,可以拖动图块上的点调整图块的大小,也可双击该图块进行命名,名命有两种,一种是普通文本命名,在properties界面的label属性中直接在Text一栏填入即可,第二种是右击Text选择Animate可以使用BFormat语法进行命名(这种命名方式需要先设置相应的value binding)。随后可以添加value binding与station>config中的文件发生关联。

可以直接将左侧导航栏中的组件拖入Px editor进行设置,拖入组件后会出现一个名为Make Widget的窗口,如下图所示(手册Adding widgets using the Make Widget wizard)

![](E:\new desk\Niagara项目文档\文档图片\make widget.jpg)

该窗口用于创建Binding属性,这个窗口对于人机界面的制作是非常重要的,这里我们选择的是Random随机数将其拖入到Px editor后在make widget窗口选择Bound Label类型即可将该Point的可见属性显示在视图上如下图所示

![](E:\new desk\Niagara项目文档\文档图片\bound label创建.jpg)

![](E:\new desk\Niagara项目文档\文档图片\Make widget实例.jpg)

使用这种方法能够让系统自动创建一个BFormat命名的标签图块

一个组件或者Point能与多个binding类型进行绑定,例如在视图上创建一个布尔点与Action>set进行绑定如下所示

![](E:\new desk\Niagara项目文档\文档图片\action类型binding创建.jpg)

进行上述操作以后会出现这样的一个set按钮,在Px view界面可以鼠标左键点击该按钮进行状态切换

![](E:\new desk\Niagara项目文档\文档图片\set创建.jpg)

但是该点虽然具有Action binding属性但不具有value binding属性,所以无法将该点的状态显示在按钮上,我们可以在Px editor界面双击该点添加一个value binding属性

![](E:\new desk\Niagara项目文档\文档图片\添加新binding.jpg)

点击Animata后先选择类型

![](E:\new desk\Niagara项目文档\文档图片\1.jpg)

随后设定状态的显示文本

![](E:\new desk\Niagara项目文档\文档图片\2.jpg)

完成后可看见原本的set按钮变为了可显示状态的按钮,甚至还可以为不同的状态设定不同的颜色,如下所示

![](E:\new desk\Niagara项目文档\文档图片\3.jpg)

![](E:\new desk\Niagara项目文档\文档图片\4.png)

在Px editor界面的右侧栏有一个名为Bound Ords的窗口由于显示一个Px页面中所关联的组件或Point的路径,有时候一个交互界面可能会有上百个具有binding类型的项目,可以借助此工具栏快速管理它们。

可用的binding属性

  • Action Binding

​ 只有当组件或Point拥有类似Active的属性才可以配置,该功能可以在Px界面设定一个用于改变某种状态的触发按钮,Px页面的触发状态可以改变组件或者Ponit的触发状态。

  • Bound Label binding

​ 将值连接到绑定标签小部件。

  • Field Editor binding

​ 用于将字段编辑器组件绑定到对象。

  • Popup binding

    用于在您可以指定和配置的附加“弹出”窗口中显示Px视图。

  • Setpoint binding

​ 用于显示“设定点”的当前值,并提供对其进行修改的能力。

  • Spectrum binding

​ 用于为小部件的笔刷(颜色)属性设置动画。

  • Spectrum setpoint binding

    与光谱conjunction绑定一起使用。

  • Table binding

​ 用于在绑定表中绑定表数据。

  • Value binding

    用于绑定到通常位于组件下的值。

测试

​ 预留

软件界面发布

​ 预留

用户权限管理

​ 预留

附录

BFormat语法

手册Formats (BFormat)
BFormat default scripts

Baja Format(BFormat)是一个使用标准格式模式语言(脚本)返回对象字符串的类。BFormat脚本由一个或多个使用句点(.)运算符链接在一起的调用组成。BFormat语法要求每个脚本的开头和结尾都有一个百分比(%)字符。像通配符或变量一样,您可以在静态文本字符串中嵌入BFormat脚本。系统从声明格式的对象开始解析格式(执行嵌入脚本中包含的调用)。然后嵌入的调用(指令)动态解析为对象,系统将最终对象转换为字符串。

系统会使用默认的BFormat脚本填充某些组件的文本特性(从选项板复制或源自管理器视图)。其他文本属性默认为空。此表列出了具有默认脚本的组件的示例。

![](E:\new desk\Niagara项目文档\文档图片\屏幕截图 2023-08-28 124917.jpg)

标签:界面,修复,Point,视图,联网,station,Niagara,属性
From: https://www.cnblogs.com/DNSS/p/18050997

相关文章

  • 解决VMware Workstation虚拟机无法联网问题-OK
    解决VMwareWorkstation虚拟机无法联网问题-OK    当重启宿主操作系统后,VMwareWorkstation(适用于VMwareWorkstationProv16.x-17.x,虚拟网络选择VMnet0桥接模式)虚拟机无法联网,可采用下面方法临时解决:(1)启动VMwareWorkstation管理控界面(2)可以进入某台Windows虚拟机,在CMD......
  • 联通云视频技术:互联网高清时代的革新者与赋能者
     中国联通在云计算与通信技术领域的深厚积淀,已成功研发并推出了新一代的云视频服务,该服务巧妙融合了高清视频会议、网络自适应、编码转换以及分布式技术,为企业和个人用户带来了前所未有的视讯体验,真正实现了跨越时空限制的高清沟通与协作。互联网高清技术联通云视频技术采用了......
  • 2023互联网笔试记录汇总(61道真题+题解)
    以下编程题均为博主在2023年投递实习和秋招过程中的笔试真题(共61道编程题),为避免不必要的麻烦,不对题目的来源进行说明。3.4第一题题意:给一个数组(n≤2e5),求数组内任意数对的最大差值。即对任意i<j,求最大的x[j]-x[i]。题解:处理一下前缀最小值。第二题题意:给一个数组(n≤2e5......
  • Liunx GLIBC版本修改时libc.so.6 被误删修复
    Liunx应用编译,需要降低GLIBC版本编译运行,但libc.so.6出现异常,shell命令均不支持;/bin/ls:errorwhileloadingsharedlibraries:libc.so.6:cannotopensharedobjectfile:Nosuchfileordirectory但这时shell未断开连接仍可进入,只是命令不支持;幸好之前修改时,有备份......
  • C++类开发的第六篇(虚拟继承实现原理和cl命令的使用的bug修复)
    Class_memory接上一篇末尾虚拟继承的简单介绍之后,这篇来详细讲一下这个内存大小是怎么分配的。使用clcl是MicrosoftVisualStudio中的C/C++编译器命令。通过在命令行中键入cl命令,可以调用VisualStudio的编译器进行编译操作。cl命令提供了各种选项和参数,用于指定源......
  • 互联网架构点
    设计大型互联网网站的项目架构是一个复杂而关键的任务,它需要考虑性能、可伸缩性、可靠性、安全性以及维护性等多方面因素。大型互联网项目的架构设计应该根据具体的业务需求和规模来调整,同时要考虑未来的扩展性。这通常需要深入了解业务需求、技术趋势和最佳实践,以做出明智的决策......
  • 【专题】2022工业互联网平台发展指数报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33647这份报告合集是基于中国工业产业升级和智能制造的大背景而展开的。报告合集分析了工业互联网平台市场的发展阶段、平台玩家的产品和服务的底层逻辑以及变化趋势,并探讨了补贴减少、数据归属权之争、标准化与盈利模式、ChatGPT等因素对工业互联......
  • 面试必备!《1000多道互联网Java工程师面试题》分享
    资料领取见文末!在当今互联网时代,Java作为一种广泛应用的编程语言,在互联网行业中扮演着至关重要的角色。无论是初学者还是有经验的开发者,不断学习和提升自己的Java技能都是至关重要的。而《1000多道互联网Java工程师面试题》这份资料提供了一个绝佳的机会,让你深入了解并加强对Java......
  • 记录一次修复蓝牙故障经过(硬件管理器:“目前,这个硬件设备没有连接到计算机。(代码 45)
    记录一次修复蓝牙故障经过(硬件管理器:“目前,这个硬件设备没有连接到计算机。(代码45)”)来源https://zhuanlan.zhihu.com/p/491185819 2022年3月中旬重装win10系统,下旬欲使用蓝牙时发现没有安装驱动,便从Acer官网下载驱动进行安装,失败,遂尝试驱动人生、驱动精灵、booster9安......
  • 【专题】2024物联网平台产业研究报告及案例集报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35235原文出处:拓端数据部落公众号前三季度,我国软件业务收入达87610亿元,同比增长13.5%。统计范围涵盖软件及信息技术服务、集成电路设计、基础软件、工业软件、信息安全、工业互联网平台和数据服务等。软件业务收入由软件产品、信息技术服务、信息......