Beckhoff ADS
TwinCAT 是由 Beckhoff Automation 开发的一种控制技术。它是一种基于软件的控制系统,用于自动化和控制应用。TwinCAT 能够运行在多种平台上并支持多种编程语言。
EMQX Neuron Beckhoff ADS 驱动使用户可以通过 TCP/IP 连接到 Beckhoff TwinCAT PLC。
添加驱动
在 数据采集 → 南向设备 页点击 添加设备,驱动类型选择 Beckhoff ADS。
连接参数
点击驱动卡片进入设备配置页填写:
| 字段 | 说明 |
|---|---|
| 设备 IP 地址 | 远程设备 IP。 |
| 设备端口 | 远程设备 TCP 端口(默认 48898)。 |
| 源 AdsAmsNetId | 运行 EMQX Neuron 的设备的 AMS Net ID。 |
| 源 AdsPortNr | 运行 EMQX Neuron 的设备的 AMS Port (默认 851)。 |
| 目标 AdsAmsNetId | 目标 PLC 的 AMS Net ID。 |
| 目标 AdsPortNr | 目标 PLC 的 AMS Port(默认 851)。 |
请注意,为了让 EMQX Neuron 能与 TwinCAT PLC 正常通信,需要在目标 TwinCAT 软件中添加和设置对应的 ADS 路由。
其中涉及的关键 ADS 概念如下:
| 概念 | 说明 |
|---|---|
| ADS 协议 | ADS (Automation Device Specification) 是 TwinCAT 的通讯协议。 它使得 TwinCAT 系统能够通过媒介独立的串行或网络连接,实现数据的交换和控制。 ADS 旨在为 TwinCAT 系统中控制器与用户界面之间的通信提供标准接口。 |
| AMS Net ID | AMS Net ID 是 TwinCAT 网络中本地计算机的地址。它由6个字节组成,用点分十进制表示(例如: “1.2.3.4.5.6”) 。 为避免通信冲突,AMS Net ID 在 TwinCAT 网络中必须是唯一的。 默认情况下,TwinCAT 通过在系统的 IP 地址后附加 “.1.1” 来生成 AMS Net ID 。 例如,在 IP 地址为 “172.17.213.60” 的系统中, 默认生成的 AMS Net ID 将为 “172.17.213.60.1.1” 。注意:实际场景不一定会使用默认生成的方式,这时请在 TwinCAT 软件中查看 AMS Net ID。 |
| AMS port | TwinCAT 网络中的 ADS 设备由 AMS Net ID 和 AMS port 标识。 每个 TwinCAT 系统通常为特定的目的使用特定的 AMS Port 。 例如,Port 801 用于系统通信,Port 851 用于事件通知。 |
| Index group/offset | ADS index group 和 index offset 是 TwinCAT ADS 系统服务中用于设备或程序之间进行数据交换的规范。 所有的读取和写入操作都通过 index group 和 index offset 在 PLC 上进行。 Index offset 是16位的,index offset 是32位的。 Index group 用于指定正在访问的数据的类别或类型,而 index offset 指定该类别或类型中的特定数据元素。 |
点位配置
以下为本驱动支持的数据类型与地址格式。
数据类型
- BOOL
- INT8
- UINT8
- INT16
- UINT16
- INT32
- UINT32
- INT64
- UINT64
- FLOAT
- DOUBLE
- STRING
地址格式
对 ADS 驱动来说,一个点位地址由 INDEX_GROUP 和 INDEX_OFFSET 两个部分组成,分别表示 index group 和 index offset 。
INDEX_GROUP,INDEX_OFFSET
INDEX_GROUP 和 INDEX_OFFSET 可以分别使用十进制或十六进制指定。
地址示例
| 地址 | 数据类型 | 说明 |
|---|---|---|
| 0x4040,0x7d01c | bool | index_group 0x4040, index_offset 0x7d01c |
| 16448,51029 | uint8 | index_group 0x4040, index_offset 0x7d01d |
| 0x4040,512896.5 | string | index_group 0x4040, index_offset 0x7d380, 字符串长度为 5 |
应用场景
您可通过 EMQX Neuron 通过 ADS 协议采集倍福 PLC 上不同地址区域的数据,具体步骤,见采集 PLC 数据(Beckhoff ADS 协议)。