# 接入工业信号

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-7c634d0773f0e071d4817aff763f824e229b3cf2%2FManagerOverview.png?alt=media)

初次打开信号Manager工具时，界面如上图所示。当前未添加任何服务器，只有minotor/player标签可供选择。Monitor工具的具体介绍请参见[信号监听](https://utc.gitbook.io/umt-manual-book/customize/signaltool/manager/monitor)。 Player工具的具体介绍参见[信号回放](https://utc.gitbook.io/umt-manual-book/customize/signaltool/manager/player)

当前章节将具体介绍如何在`信号浏览区`中接入`OPCUA/MQTT/MODBUS`信号

## 接入OPCUA信号

### 添加OPCUA服务器

点击信号服务器管理区右上角`+`按钮并选择`OPCUAServer`，

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-4eac2c79370bdb92dcced30de7046082d7f554ae%2FAddOpcua.png?alt=media)

随后将弹出OPCUA服务区配置界面如下图

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-76e545de5693bf136c2cba2f9d811632b73e31f5%2FopcuaConfig.png?alt=media)

在 `Endpoint url`填入服务器地址， 如需验证，勾选 `With Authentication` 并填入用户名及密码。 这里用来演示的是在线Demo OPCUA Server `opc.tcp://opcuaserver.com:48010`

完成配置信息后，点击`Connect`按钮开始连接。

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-1cdfa1e317831894a12cc99cec584b8c47f535c4%2FopcuaConnected.png?alt=media)

连接成功后可以看到`Status` 变为`Connected`。OPCUA服务器上发布的信号将出现在浏览框，用户在可在浏览框中浏览信号。

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-e51b8bd359ce73459267f1446e05d41fde34cb9a%2FopcuaBrowse.png?alt=media)

`Type`栏显示的是服务器上定义的信号的类型，当前UMT支持的类型包括

* Boolean
* Byte
* Double
* Float
* Int16
* Int32
* Int64
* SByte
* String
* UInt16
* UInt32
* UInt64
* DateTime
* ByteString
* BooleanArray
* ByteArray
* DoubleArray
* Int16Array
* Int32Array
* Int64Array
* SByteArray
* FloatArray
* StringArray
* UInt16Array
* UInt32Array
* UInt64Array
* DateTimeArray
* ByteStringArray

`Value` 栏为信号的最新的值

未支持的类型的`Type` 及 `Value` 将不显示

双击有效的信号将弹出信号预览窗口

![](https://github.com/HanochZhu/UMT-Manual/blob/UMT-0.2-Manual/.gitbook/assets/signal/opcua/preview.png)

### 订阅OPCUA信号

通过在浏览框中选择信号(通过Ctrl或者Shift键进行多选)并点击鼠标右键将信号添加到目标订阅组进行对信号订阅。

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-567bcc4b89146088b755a2637ed3fc5f63907ccb%2FAddSub.png?alt=media)

订阅成功的信号将出现在右侧`订阅管理区`。 关于`订阅管理区`的介绍参见[对订阅的信号进行管理](https://utc.gitbook.io/umt-manual-book/customize/signaltool/manager/managesubscription)

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-5cd4b4c9d2333a8d7ef2563bac1dbc2d1e2accb7%2Fsubed.png?alt=media)

## 接入MQTT信号

### 添加MQTT服务器

点击信号服务器管理区右上角`+`按钮并选择`MQTTServer`，随后将弹出MQTT服务区配置界面如下图

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-16323cb643365e3df48c2a2c7187ada49abc6789%2Fconfig.png?alt=media)

这里用来演示的为非公开服务器，请根据实际服务器的配置对图中的选项进行配置。

完成配置信息后，点击`Connect`按钮开始连接。

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-193d7ac0c4835d8728270fa5aa37a8155a145d00%2Fconnected.png?alt=media)

连接成功后可以看到`Status` 变为`Connected`。MQTT服务器上发布的信号将出现在浏览框，用户在可在浏览框中浏览信号。

从MQTT服务器接受到的信号默认`Type`为ByteArray

`Value` 栏为信号的最新的值

### 订阅MQTT信号

通过在浏览框中选择信号(通过Ctrl或者Shift键进行多选)并点击鼠标右键选择Subscribe Selection进行对信号订阅。

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-273581d44815583994f2bbdb3d24fcad0870d5a8%2Fsubscribe.png?alt=media)

订阅成功的信号将出现在右侧`订阅管理区`。 关于`订阅管理区`的介绍参见[对订阅的信号进行管理](https://utc.gitbook.io/umt-manual-book/customize/signaltool/manager/managesubscription)

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-e9f1278e256e46d206fe9e40a9c2bd2c3e747edf%2Fsubscribed.png?alt=media)

## 接入Modbus信号

## Modbus简述

Modbus协议是一种常用的工业协议。通常会使用在工业上机器和控制系统之间的通信。

Modbus协议的访问分为四个寄存器块。

* Coils
* Discrete Inputs
* Holding Registers
* Input Registers

| 内存块                   | **数据类型**      | **读写权限**   |
| --------------------- | ------------- | ---------- |
| **Coils**             | Boolean       | Read/Write |
| **Discrete Inputs**   | Boolean       | Read-only  |
| **Holding Registers** | Unsigned Word | Read/Write |
| **Input Registers**   | Unsigned Word | Read-only  |

### 添加Modbus服务器

点击信号服务器管理区右上角`+`按钮并选择`ModbusServer`，随后将弹出Modbus服务区配置界面如下图

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-da5ab305b5332e748589d383d7453f90d15eafb6%2Fconfig.png?alt=media)

这里用来演示的为本地测试服务器，请根据实际服务器的配置对图中的选项进行配置。

完成配置信息后，点击`Connect`按钮开始连接。

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-8771280b2ebdab594b28a31f1bbfb00af6211763%2Fconnected.png?alt=media)

连接成功后可以看到`Status` 变为`Connected`。MQTT服务器上发布的信号将出现在浏览框，用户在可在浏览框中浏览信号。

### 添加Modbus信号

与`OPCUA`及`MQTT`不同，读取的时候`Modbus`服务器信号时，需要告诉服务器读取的寄存器，读取的起始位置及读取长度。 点击`Add Polling Item`来并如下如添加读取的数据块

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-47b96f96c77a0f9ea87278f2d9b5b6f10e7a366e%2FaddSignal.png?alt=media)

配置完成后点击`Add`

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-d8cdf2d35abc97987720b7f43985d102bae941f0%2FsignalAdded.png?alt=media)

### 订阅Modbus信号

通过在浏览框中选择信号(通过Ctrl或者Shift键进行多选)并点击鼠标右键选择Subscribe Selection进行对信号订阅。当多选信号时，选择的信号将会被合并订阅，如下图最终订阅的信号为HoldingRegister\_0\_4（HoldingRegister 起始位置为0长度为4）， 因为HoldingRegister一个单位长度代表16-bit数据块，所以HoldingRegister\_0\_4为64-Bit的数据块。

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-7e1d2809d9c2129572993cf70e44e77dc9091ddf%2Fsubscribe.png?alt=media)

和并订阅的信号必须相邻，如下图的多个信号将无法和并订阅

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-1ff1b225e85b8c31b1acd832f3dd0685fb5bf5aa%2Fsubscribe2.png?alt=media)

订阅成功的信号将出现在右侧`订阅管理区`。 关于`订阅管理区`的介绍参见[对订阅的信号进行管理](https://utc.gitbook.io/umt-manual-book/customize/signaltool/manager/managesubscription)

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-0416a2beaf322e639a888e63c9ae321d76c051df%2Fsubscribed.png?alt=media)

## 自动连接

![](https://590671407-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcjRYQBrGBRq9cuhWqyze%2Fuploads%2Fgit-blob-a67827502b58e30564d41c18325613794a2dba50%2FopcuaAutoC.png?alt=media)

所有添加的服务器都有`Connect On Play`选项，该选项被勾选时，在程序进入`runtime`时该服务器将会被自动连接。
