Beckhoff ADS

通过 ADS/AMS 连接倍福 TwinCAT PLC:AMS 路由、运行时端口、符号路径和读取长度。

以 Markdown 查看

Beckhoff ADS 驱动通过 ADS 和倍福 TwinCAT PLC 对话,也就是承载在 AMS 路由上的那个 TwinCAT 自动化协议。你按 PLC 程序里的符号路径来寻址数值,所以你打进去的就是 TwinCAT 项目声明的那个。在 Connector 里的 Beckhoff ADS 驱动下面添加一台设备;面板只显示这个协议用得到的那些字段。

连接

字段 含义 默认值
主机 PLC 的 IP 地址。它的 AMS Net Id 由这个地址推成 {ip}.1.1
端口 目标运行时的 AMS 端口。填 0 就用 851,也就是 TwinCAT 3 的第 1 个 PLC 运行时;再往后的 TwinCAT 3 运行时从那里往上数(852、853、……)。 0
本机 IP(AMS) 本工作站自己的 IP 地址,它的 AMS Net Id 由此推成 {ip}.1.1。它必须和 PLC 上配置的 AMS 路由对上。留空时会拿“主机”的值来用,那只有在两端共用同一个地址时才行得通,所以实际部署里请把它填上。
轮询间隔(毫秒) 整台设备的读取周期,供没有自己另作规定的点位使用。 1000

设备标题栏显示拼好的端点,例如 ads://192.168.0.1:192.168.0.50:851(本机 IP、PLC IP、AMS 端口)。每个点位都可以设自己的轮询间隔(毫秒);点位填 0 就退回设备的间隔。

ADS 只应答 PLC 认识的那些站:请在 PLC 上加一条静态 AMS 路由(TwinCAT Engineering 里的 SYSTEM → Routes,或者 TwinCAT 的系统托盘图标),它的地址是本工作站的 IP,它的 AMS Net Id 是那个 IP 后面跟 .1.1,和驱动从本机 IP(AMS)推出来的那个一致。没有这条路由,即使网络通路完全正常,连接也会失败。

寻址

Beckhoff 的点位靠点位“来源”卡片里的两个字段寻址:

字段 含义 接受的取值 默认值
符号 这个变量在 PLC 程序里的符号路径。必填。 自由文本,例如 MAIN.fValue
读取长度(字节,留空 = 自动) 每次读取传输多少字节。留空就按数据类型定读取的大小。 1 及以上,或留空 留空

符号路径就是 TwinCAT 显示的那个:程序变量写作 MAIN.fValue,全局变量列表写作 GVL.MachineSpeedGVL_Settings.rSetpoint。驱动在 PLC 上按名字解析这个符号,并读它的原始字节。自动的读取长度是:

数据类型 自动读取长度
Boolean 1 字节
Int32 4 字节
Float 4 字节
String 16 字节

文本长于 16 个字符时,请把读取长度设到能覆盖声明的大小(一个 TwinCAT 的 STRING(80) 需要 80 字节的文本)。“来源”卡片里那行只读的来源地址(总线)会随着你编辑显示拼好的地址。

数据类型

数据类型选择器提供驱动能编排的那四种类型:

数据类型 PLC 里的对应物 说明
Boolean BOOL 1 字节,非零为真
Int32 DINT 小端序,和 PLC 一致
Float REAL 小端序,和 PLC 一致
String STRING 读缓冲区里直到第一个 NUL 为止的文本

字节序就是 PLC 自己的小端序,由驱动自动处理;没有字节序选项。文本读取会把返回的缓冲区解码到第一个 NUL 结束符为止,所以一段短文本后面的填充绝不会漏进这个值里。别的 TwinCAT 位宽(INT、LREAL、WORD、……)不提供:请在 PLC 程序里把这样的变量以上面那四种类型之一暴露出来,再在这里读。

写入

访问方式为读写或只写的点位可以被写。一次写入会解析同一个符号,并写下这个值的字节:布尔 1 字节,Int32 和 Float 各 4 字节。文本写入会铺满这个点位整个读取长度:前面是文本的 UTF-8 字节,后面是零,所以用一段短文本盖住一段长文本时,整个值都被替换掉,旧的一点儿都不剩。装不进声明长度的文本会被拒绝,长度写进诊断日志,绝不会被截短了塞进去。新点位一开始是只读。

设备发现

这个驱动里的 ADS 没有广播式的设备发现,所以 Connector 不显示“发现设备”按钮。设备和它的符号请手工添加。

需要知道的事

  • 第一次连接失败,通常的原因就是 AMS 路由:PLC 上那条路由的 AMS Net Id 必须恰好是工作站 IP 加上 .1.1
  • 符号是每次读取都按名字解析的,所以一次给符号改名或删掉符号的 PLC 下载,会让它的点位变成质量不可用,直到名字重新对上为止。
  • 一台够不着的 PLC 在启动时不花什么代价:设备在后台一直重试,在连接接上之前它的点位读作质量不可用。