设备

设备页面:它的标题栏和命令、“设备”卡片、按驱动显示不同字段的“连接”卡片、凭据与证书、带批量编辑的“点位”表格、复制一台设备,以及重名和冲突是怎么处理的。

以 Markdown 查看

一台设备就是工作站通过某个驱动去对话的一台仪器:怎么够到它,以及从它那里读哪些点位。在通信栏里选中一台设备的行,或者在一个驱动、一条线路或一个文件夹的表里按某台设备行上的“打开”,就能打开它的页面。“查看 Connector”能读它,“配置 Connector”能改它。串行线路有自己的页面,见串行线路

新建一台设备

手势 结果
新建… > 新建设备 > 归入 <Driver> 一台位于驱动本级的设备。
一个驱动页面上“设备”表里的添加设备 同上。
一个文件夹的“设备”表里、或它右键菜单里的新建设备 一台归在那个文件夹里的设备。
一条串行线路的“设备”卡片上或右键菜单里的添加设备 那条线路上的一台 Modbus RTU 设备,用第一个空闲的从站 ID。
一条设备发现结果上的添加设备 一台带着扫描找到的端点、以及你勾选的那些点位的设备;见设备发现
Matter 驱动上的配对设备 一个已调试好的 Matter 节点;见设备发现
一台设备上的复制设备 选中那台设备的一份副本,点位也在内。

新设备名叫“新设备”(然后是“新设备 2”,依此类推),启用状态,轮询间隔 1000 毫秒,从站 ID 为 1,页面随即在它上面打开:“已添加设备‘新设备’。在右边编辑它的细节。”本安装包没带的驱动下面拒绝新建设备;Matter 下面也拒绝,因为那里的设备只能来自配对或发现(“请用‘配对设备’添加一个新的 Matter 节点,或者用‘发现’添加一个已经调试好的节点。”)。

连接从来不是一道拦路的步骤:内置服务器把设备登记下来,并在后台的重试循环里去连它,所以一台够不着的设备不花什么代价。在连接接上之前,它的点位读作空档,页面同时显示最近一次连接错误。

标题栏

名称、一行“本工作站所连的一台设备:怎样连上它,以及从它读取哪些点位。”,以及一枚带着基础 URI 的胶囊,也就是内置服务器实际连过去的那个地址,由“连接”卡片实时拼出来(例如 modbus+tcp://192.168.0.10:502/1opc.tcp://plc:4840simulated://CompressedAir)。下面是三种通知之一:

  • 本安装包不包含该驱动:“这台设备需要 IEC 61850 驱动,而本次安装没有包含它,所以它保持离线。它的设置都留着,也可以删掉;这里别的任何东西都改变不了它读到什么。”
  • 正在等待证书批准(OPC UA):“这台现场设备出示了一份本工作站从未批准过的证书,所以还没有从它那里读任何东西。请和调试这台现场设备的人核对指纹,然后在“设置”的“现场设备访问”里批准它。”并带一个查看证书按钮,它会在那份证书上打开现场设备访问
  • 否则,有最近错误时就是那台设备红色的最近错误文字(见启用与健康状态)。

命令栏

命令 作用 何时置灰(情况) 何时不画出来(角色)
重新连接 关掉这台设备的连接再重开一次,不碰别的设备。记录条会等驱动回话,然后说结果:“已重新连接‘Furnace’。”,或者“无法重新连接‘Furnace’:”加上原因。什么都不会被重新加载,而一台只是晚一点才应答的设备照样会自己回来。 正在扫描或配对,有运行占住工作站,运行时已停止。 没有“配置 Connector”权限时。
启用 让这台设备参与采集。 已经是启用的,或者工作站拒绝改动。 没有“配置 Connector”权限时。
禁用 停掉与这台设备的全部通信,并把它的点位从实时地址空间里撤下来;每个点位仍保留自己的“已启用”开关。 已经是禁用的,或者工作站拒绝改动。 没有“配置 Connector”权限时。
复制设备 造一份副本并打开它(见下)。 本安装包没带这个驱动(“本安装包不包含该驱动。”),或者工作站拒绝改动。 没有“配置 Connector”权限时。
删除设备(危险色,靠右) 先问“要删除‘Furnace’吗?这同时会删掉它的全部点位。此操作无法撤销。”,然后删除并选中它的上一级(线路或驱动)。 工作站拒绝改动。 没有“配置 Connector”权限时。

右键菜单里还多出添加点位移动到(见设备文件夹)。

“设备”卡片

字段 它是什么 取值 / 默认值 影响
名称 友好名称;也是这台设备总线身份和地址的最后一段。 必填;在驱动内部唯一,不区分大小写。 打字时会预告这次重命名要带走什么(“正在检查引用…”,然后是有多少处引用会跟着改,或者“实际生效的地址没有变;不需要更新任何引用。”);按回车或离开字段就确认,指向旧地址的每一处引用都在同一次操作里被改写:“设备已重命名,更新了 3 处引用。”名字留空会被拒绝:“设备名称是必填的。”
驱动 这台设备说的协议。 只读。 创建时定死,见驱动
轮询间隔(毫秒) 工作站多久读一次这台设备的点位,除非某个点位自己另有规定。 1000;填零或更小会按 1000 存下来。 对固定 1 秒轮询或接收推送数据的驱动隐藏(Mitsubishi MC、BACnet、IEC 61850、OCPP、LoRaWAN)。

“连接”卡片

只要驱动声明了连接字段,这张卡片就出现,并且只显示那个驱动会读的字段。每个驱动的页面把自己的字段讲得更细;这里是面板画出来的完整清单。

字段 哪些驱动显示 它是什么
主机 Modbus TCP、OPC UA、Siemens S7、Rockwell、Beckhoff、Mitsubishi、BACnet、IEC 61850、Redfish、AVEVA PI、HTTP 主机名或 IP 地址;留空表示 localhost。IPv6 字面量会在基础 URI 里替你加上方括号。
端口 Modbus TCP、OPC UA、Beckhoff、Mitsubishi、BACnet、IEC 61850、Redfish、AVEVA PI、HTTP TCP 端口;填零就取驱动的默认值(502、4840、851、5007、47808、102、443、443、80)。
从站 ID Modbus TCP、Modbus RTU Modbus 的从站 ID:TCP 上是 0 到 255;串行线路上是 1 到 247,每条线路内唯一(“从站 ID 必须在 1 到 247 之间。”)。
最小事务间隔(毫秒) Modbus TCP 一次完成的尝试之后、端点开始下一次之前的静默,0 到 1000,默认 0(“兼容性辅助手段,0-1000 毫秒。填零不加任何人为延时。”)。共用同一主机和端口的已启用设备取其中最大的那个值,别的设备把它抬高时卡片会说出来:“实际生效 200 毫秒 · 192.168.0.10:502 上另一台已启用设备抬高了这个端点的上限。”
串行线路 · 固定 Modbus RTU 线路的名称和它的参数组,只读;要改就到线路自己的页面上改。“线路缺失”或“未指定物理线路”表示这台设备丢了它的线路,保存不了:“Modbus RTU 线路是必填的。”
机架 / 槽位 Siemens S7 两个数字;基础 URI 读作 s7://host:rack:slot
槽位 Rockwell EtherNet/IP 一个数字,也就是控制器插在机箱的第几位;CIP 路由不带机架,基础 URI 读作 eip://host:slot
本机 IP(AMS) Beckhoff ADS 本工作站在 AMS 路由上的 IP;两个 AMS net id 都由 <ip>.1.1 推出来。留空就用“主机”。
设备 Id BACnet BACnet 的设备实例号。
服务器 / 密钥 LoRaWAN 应用密钥。
标识符 OCPP、LoRaWAN 充电桩的 id,或者 DevEUI(带冒号或短横线的写法会被规整成纯十六进制)。留空就退回到规整过的设备名称。
资源路径 OPC UA、AVEVA PI、HTTP 接在授权部分后面的一段路径:OPC UA 的服务器路径、PI Web API 的服务根(默认 piwebapi),或者每个 HTTP 点位路径都拼在后面的那个前缀。
传输方式 AVEVA PI 勾选框用明文 HTTP 发送。不勾表示 HTTPS,说明是“HTTPS。承载令牌或密码在发往 PI Web API 的路上是加密的。”;勾上之后,说明变成一条警告:令牌或密码在每一次请求里都以明文发送,这是给只在这种传输上应答的 PI Web API 用的。
用户名密码 OPC UA、Redfish、AVEVA PI 按设备保存的凭据;用户名为空表示匿名连接(“留空 = 匿名。按设备保存;密码在静态存储时受保护。”)。
承载令牌 AVEVA PI 一个令牌,填了它就压过用户名和密码;显示令牌把它显出来。

Matter 设备显示的是另一张“连接”卡片:节点 ID · 只读,也就是配对时分配的那个 64 位节点 id(存下来的身份读不出来时写“需要重新配对”),以及状态,也就是这台设备的健康状态词。上面没有一样东西可以编辑。Simulated 设备根本没有“连接”卡片。

凭据与证书

密码和承载令牌在静态存储时由 Windows 的每用户数据保护看着,所以配置数据库里从不保存明文值。这层保护绑定在输入这个秘密的那个 Windows 账户和那台机器上:换一个账户,字段回来时是空的,并带一句说明“在这个 Windows 账户上读不出来:它只在输入过它的那台机器和那个 Windows 账户上才打得开。请在这里重新输入一次。”凭据是直接交给驱动的;它们不会出现在基础 URI 里,也不会出现在诊断日志里,而且操作记录条显示的错误消息里也会被抹掉。

OPC UA 设备在会话打开之前会出示它的现场设备证书。一份本工作站从未批准过的证书不会悄悄地失败:树里和页面上这台设备都读作“正在等待证书批准”,提示条上的按钮会在那份证书上打开现场设备访问,好去批准或阻止它。之后撤销批准,会关掉基于它跑着的那些会话。细节在 OPC UA 页面上。

“命令”卡片

有三个驱动够到的现场设备除了被读之外还会被要求做事:HTTPRedfishAVEVA PI。它们的设备页面在“连接”和“点位”两张卡片之间多一张命令卡片,标题下写着“可以要求这台现场设备做什么。每条命令都点名请求发到哪条路径,路径接在设备地址下面。”所有人都看得见这张清单;声明、编辑和下发需要“配置 Connector”,没有这个权限位的角色既看不到字段也看不到命令。

添加命令添一行,名叫“命令 1”(编号接着已有的往后排)。每一行带着:

它是什么
名称 这条命令叫什么。它同时也是这台设备在本工作站自己的 OPC UA 地址空间里的方法名,所以在设备内部唯一。
路径 请求发到哪里,接在设备自己的地址下面:现场设备文档点名的那条路径,例如 redfish/v1/Systems/1/Actions/ComputerSystem.Reset。没有路径的命令永远不会被放到设备上。
入参 这条命令接收的那一个值的名字,按现场设备的叫法写(ResetType);不接收任何东西的命令就留空。
这条命令到底提不提供。关着的命令既不会在设备上创建,也不会被下发,这样就能把一条命令搁在一边而不丢掉它所指的东西。
对接收一个值的命令来说,这一次按下要发的东西。它属于这一次按下,不属于设备,所以从不保存。

行尾那一组带着只作用于这一行的两条命令:运行,它把命令发出去并报告现场设备答了什么(“‘Reset’的回答:已接受”),以及删除。“运行”在被拒绝时会说明原因而不是消失:命令还没有路径(“这条命令还没有路径,所以没有东西可发。”)、命令是关着的、命令还等着被存进运行时、设备没有连上,以及工作站自己的工程或运行边界。别的驱动根本不带这张卡片:充电桩和 Matter 节点也接收命令,但它们的命令由协议定死,来自驱动,而不是来自你在这里打的字。

“点位”卡片

卡片的标题是点位,后面跟着“地址格式 · <hint>”,说明这个驱动怎么给一个点位寻址(“自由形式的点位名(例如 sim/temperature)。”“寄存器号 + 数量(按字段填)。”“节点 id,例如 ns=2;s=Temperature。”);对“配置 Connector”还有一句指引“勾选若干行,然后编辑一个单元格,就会应用到所有勾选的行。应用之后勾选自动清除。”以及添加点位按钮。“添加点位”创建“点位 5”(编号接着当前数量往后排),类型是 Float 或者这个驱动支持的第一种类型,只读,并选中它;记录条里写“已给‘Furnace’添加点位。”,或者在新点位还缺东西时写“已给‘Furnace’添加点位。在右边把它的细节填上。”

表格

行按数据类型分组,顺序是:数值布尔文本及其他,每一组的组头带着它的数量。列的顺序跟着点位页面上卡片的顺序走;某一行用不上的单元格(布尔点位上的数值字段)画成空的并且不可用。

分组 编辑什么
勾选框 把这一行选进一次批量编辑。只对“配置 Connector”画出来。
名称 常规 点位的名称,重命名预告和引用改写与页面上一样。从不被复制到别的行。
类型 常规 数据类型;改它会把这一行的信号种类、Modbus 寄存器类别、越限处理和 NaN 策略一起对齐,见点位
访问方式 常规 只读、只写、读写(OCPP、Matter 和 LoRaWAN 只有只读)。
单位 常规 工程单位。
轮询(毫秒) 常规 按点位覆盖的那个值;填 0 表示用设备的默认值。对固定速率和推送型驱动隐藏。
地址 来源 自由文本地址,给接受这种地址的驱动用。从不被复制到别的行。
信号 来源 仿真信号的种类,每个名字旁边配一张形状的小图。只有 Simulated 设备有。
原始值 来源 最新一次原始读数,只读。
换算 ×换算 +换算后 转换 量程换算环节的系数和偏置,以及它的结果。
校准开校准 ×校准 +校准后 转换 校准环节:它的开关、它的系数和偏置,以及它的结果。
限值开下限上限越限限值后 转换 限值环节:它的开关、它的上下界、它的处理方式,以及它的结果。
小数开小数 转换 小数位环节:它的开关,以及位数,0 到 15。
取反 转换 布尔取反。
子串起点子串长度 转换 文本的子串窗口。
数值 实时数值 工程值,只读。
动作 打开;然后对“配置 Connector”还有启用禁用删除,最后一个带确认。

三个环节开关和它们所管的字段一样是列,也和它们一起参与批量编辑:勾选若干行、打上系数、把环节打开,同一次编辑就改掉这些行读到的东西,不必逐个点位地打开。表格里仍然没有的,是无效读数的处理策略、两点法助手、写入字段和交叉引用:那些在点位页面上。只有“校准点位”权限的角色能读这张表,但一个格子都改不了,校准那几列和“校准开”开关也一样;它的校准编辑走点位页面。

批量编辑

勾选要改的那些行,然后编辑任意一行的一个单元格:新值会应用到那一行以及每一个被勾选的行,勾选随之用掉。有行被勾选时,表格上方有一条横幅写着“已选中 3 行。编辑一个单元格会应用到所有这些行,并清除勾选。”,旁边有一个清除选择按钮。勾选属于这台设备:过一会儿再回到它,勾选已经清空了。有三条规则让混选也不出错:名称和地址从不被复制;类型单元格落地时会把每一行相关的字段各自对齐;某一行接受不了的值只对那一行被拒绝并保持原样,正因如此,一个文本行被塞一个数值信号种类还能活下来,一个整数行被塞一个 NaN 越限处理也一样。

复制设备

“复制设备”会从选中的那台造出一台归你的设备:一样的连接字段和凭据,每个点位都以全新的身份连同整条转换链、它的启用状态和轮询间隔一起克隆过来。副本先取源设备的名字,只要那个名字在这个驱动上还空着;否则依次是“Furnace (2)”“Furnace (3)”。不管源设备在哪个文件夹里,副本都落在驱动的本级;Modbus RTU 的副本留在同一条线路上,用下一个空闲的从站 ID。页面随即在副本上打开:“已把‘Furnace’复制为‘Furnace (2)’。这份副本归你编辑。”

重名与冲突

设备名称在一个驱动内部唯一,不区分大小写:那些创建命令会自动加个数字后缀让开,而重命名到一个已被占用的名字上,在确认时会被拒绝。同一个驱动下面两台已启用的设备,如果名称规整之后落到同一段技术标识(Line ALine-A),两台都不参与轮询,而不是其中一台胜出,并且在其中一台重命名或禁用之前,它们的点位什么都读不到。技术标识最多 128 个字符:“技术设备标识不能超过 128 个字符。”两台 Modbus TCP 设备可以共用同一个主机和端口而用不同的从站 ID,这时它们也共用这个端点的事务节奏。两台 Matter 设备可以点名同一个节点 id:设备发现会提议改为打开已有的那台,但并不禁止第二台。

设备页面不做什么

驱动不能改,文件夹不在这里编辑,Modbus RTU 设备的线路也不能改派到别处。启用一台设备不会启用它的点位,禁用一台设备也不会去翻它们的开关。没有按设备的导入或导出,除了把设备启用起来、再看它的健康状态和最近错误之外,也没有别的连接测试。