仪表画面组件

什么是仪表画面组件:类型目录、它们绑定的地址、读数如何绘制,以及每一种类型共有的属性分区。

以 Markdown 查看

组件是仪表画面上的一个条目:一块由网格单元格围成的矩形,在里面画出点什么。多数组件读取实时地址空间并把它呈现出来,少数向它写入,还有少数只负责绘制。你从仪表画面编辑器工具栏的添加区放置一个组件,把它拖到某个确定的单元格上,或者点一下让它占用第一个空位,放好之后它会在属性里打开,等你配置。

每一种类型都有自己的参考页,列在类型目录里,也列在本分组自己的目录里。本页写的是它们共有的东西:绑定的地址、读数如何绘制,以及每一种类型上都会重复出现的属性分区。哪个角色可以按下某个控件,以及登录角色无权时组件所戴的那把锁的标记,写在View 与仪表画面

类型目录

添加面板按类别把目录分组,类别说明的是一个家族做什么。显示是所有负责报告的组件:朴素的数值显示与表格、指示灯,以及那些按时间跟踪点位或者把点位并排比较的图表。控制是专门用来写入的家族:它的每一个组件都是为了把一个值放到某个点位上而存在的。不过它并不是操作员唯一会按的界面。报警把待处理的报警清单搬到画面上,报警提示条就在那里确认,可以逐行确认,也可以整批确认;下面列出的流程类卡片同样是按下去用的。媒体放置图片、图元库里的标记和工业图形。布局在整幅画面的后面把一个区域框起来。

类别 组件
显示 文本 · 数值 · 点位表 · 状态指示灯 · 折线图 · 柱状图 · 饼图 · 仪表盘 · 指标卡 · 进度
控制 开关 · 输入框 · 按钮 · 选择器 · 设定值滑块 · 步进按键
报警 报警提示条
媒体 图片 · 图标 · 图元
布局 边框

在这个面板之外,自动生成的单元操作面板还带着流程类卡片,它们由 Process 工作区摆放,添加面板里并不提供:联锁流程选择器事件条目列表备注时间线

媒体类组件所画的图片、标记和图形,来自 Logic 页面上工作站自己的资源库:资源库存放图片、图标和颜色,图元则是挑选一个图元的那份目录,其中还带着连线所连接的连接点。

地址与实时读数

实时组件绑定的是地址:指向工作站实时地址空间的带根名称,和 Logic 所读的是同一个空间(见 Logic 页面)。一个地址指名一个点位,不管它在哪里:

地址写法 指的是什么
Connector.<Driver>.<Device>.<Tag> 一个 Connector 点位的工程值;设备如果归在文件夹里,驱动和设备之间还要写上这些文件夹(见 Connector 页面
Variables.<name> 一个 Logic 变量(内部存储值或计算值)
Alarms.<name> 一条报警的活动状态
Assets.Icons.<name> 图标库里的一个标记
Process.<Model>.<Unit>.… 一个单元的运行点位:各项读数、Commands.*Next.<field>Commands.Comment

地址字段是带建议的自由文本:建议列表取自实时点位清单,最多 50 行,按该字段所消费的值类别收窄(仪表盘建议数值,开关把 Bool 点位排在前面,写入类控件只列出可写的东西),每一行都标出自己的类型。你随时可以手写一个列表里没有的地址,包括一个还不存在的地址。字段一旦指名了某个点位,编辑器就在字段下面显示这个点位此刻读到什么:一个自己不画数字的组件,靠它才能给出这份确认。在基于 Process 模型定义的画面上,模型的抽象通道排在每一份列表的最前面;选中一条,绑定的就是这条通道,至于是哪个单元,留到某个单元打开这幅画面时再回答。

画布按实时地址空间刷新自己的组件:在工作站自己的窗口上每 150 ms 一次,在远程浏览器上每 400 ms 一次,读的是逻辑扫描周期发布出来的那些值。对每一个实时组件,有两条规矩始终成立:

  • 绝不显示陈旧的值。 一个点位不再读到数据时,组件落到它自己的占位表示上(缺口短横、空心的灯、图表上的断口),绝不是最后那个数字。
  • 只有一种读数异常标记。 一个组件所绑定的点位读不到(地址解析不到任何东西,或者点位答复的质量不可用)时,它戴上同一个标记:单元格四周一圈虚线的警示轮廓,右上角一个带圈的 ! 小徽标。每一种类型戴的标记都一样,所以只需要学一次。一个解析得到、质量良好、但没有值的点位不算故障(两次运行之间空着的试验台、循环之外的计数器),因此组件保持它那安静的占位表示,标记不会亮起。而没有绑定的地址不是谁的过错:一幅还在拼装当中的画面,不该读起来像一幅满是警告的画面。

数值的显示

一个读数画多大,由同一份约定管着,画布上每一处文字表面都遵守它(数值显示、说明文字、按键面、状态词):

  • 每一处表面要么是自动的(由单元格决定大小,上限是这处表面自己所声明的内容需要预留的宽度:位数、小数位、单位,或者写好的那些字),要么是指定的,也就是你给出一个磅值(9 到 144)。指定的字号是照字面来的:不管在哪个单元格里都按那个字号绘制,绝不会为了塞下内容而缩小。字号从来不跟着恰好到来的那个值走,所以一个在四到六个字符之间跳动的数字,绝不会把字体大小推来推去。
  • 数字绝不画成截断的样子。 凡是显示不全的地方(位数多于字段所声明的,或者指定的字号宽过单元格),表面就画出 ####,也就是电子表格和 DCS 用来表示字段窄于其值的那个记号,完整读数放在提示里。
  • 自由文本用省略号截断,完整文字放在提示里。文字绝不戴数字的那个记号。
  • 一个读不到数据的点位,又是另一回事:缺口短横,并且在这份沉默确实是故障时再加上那个共用的读数异常标记。没有读数和没有地方,从不互相借用对方的记号。
  • 数字靠在自己字段的右边,用等宽数字,这样一列读数才能自己对齐。

11 px 的可读性下限处处成立,共用的内容缩放旋钮在解析出来的字号上再乘一个系数:往小调总是看得见(仍受下限约束),往大调只能长到这一行仍然不被截断为止。

共有的属性分区

选中一个组件就打开它的属性。以组件自身类型命名的那些分区排在最前面(它的内容、它的数据、它的格式),写在那一种组件自己的页面上。围绕着它们的,是每一个组件都共有的那些分区。绘制这些分区的面板、每个地址字段下面的实时读数,以及在各种类型之间重复出现的那些控件(显示字号、读数形式、刻度区段、图表工具箱),写在仪表画面编辑器

标识是为编辑这幅画面的人给组件起的名字:名称写在属性面板的最上方,在组件列表里作为这一行的标签,也由它回答搜索。它不会在操作员的画面上画出任何东西,那是外观里的标题。

外观是组件的那个方框:

字段 作用 取值 默认
显示边框 画出组件自己的轮廓。 开 / 关
边框粗细(px) 这道轮廓有多重。1 px 是一张卡片的边;更重的一笔不必再动第二种颜色,就能把一组东西和周围分开。 1 到 4 1
显示背景 用那对颜色填满组件的矩形,把它变成一张卡片。关掉时,网格从后面透出来。 开 / 关
背景色 填充色是一对,每个主题各占一半,两半一起编辑,因为屏幕上出现哪一半由当前运行的主题决定。 各写 #RRGGBB 浅色 #FFFFFF · 深色 #2B2B2B
标题(角上) 组件自己的角上标签,说明这张卡片是什么,位于这一类型所绘制的内容之上。留空就没有这一行说明。 自由文本
标题字号(px) 留空时每张卡片按自己的单元格决定标题大小;指定的字号照字面来,正是它让整幅画面的标题保持一致。放不下的部分用省略号截断,完整标题在提示里。 11 到 96,或留空 空(自动)
标题颜色 标题的一对墨色。不去动它,标题就跟着主题自己那种安静的色调。 各写 #RRGGBB 浅色 #6B6B6B · 深色 #A0A0A0
内容缩放 内容占它这个方框的多少:你画出的单元格已经决定了内容的大小,这个旋钮在单元格内部再调一次,不必重画网格。图形按几何方式响应它,数值显示按排版方式响应它。 0.25 到 3 1

位置与图层放着数值形式的 X / Y / W / H、图层(Z),以及移到最前 / 移到最后这一对。高级只在带有不常用附加项的类型上出现。操作用来复制或删除组件。

按住 Ctrl 可以选中多个组件,一起编辑它们共有的东西:外观里的字段会铺到整份选择上(成员之间取值不一致的字段写“不一致”),图层命令保持这一批之间的相对次序,复制和删除对它们全体生效。按类型独有的字段则需要单独选中一个组件。