TwinCAT 开始软件PLC开发(其1:开发环境构建篇)

日本語|English|中国语
| 7 min read
Author: hayato-ota hayato-otaの画像
Information

为了覆盖更广泛的受众,这篇文章已从日语翻译而来。
您可以在这里找到原始版本。

0. 引言

#

TwinCAT 是由以开发 EtherCAT 著称的德国企业 Beckhoff Automation GmbH[1](以下简称 Beckhoff)提供的面向工业自动化系统的平台。
这是一种所谓的软件PLC,并且采用了同为软件PLC应用而知名的 CODESYS 作为OEM。

本文及相关系列文章将分享使用 TwinCAT 进行软件PLC开发的步骤。

另外,本文使用的 TwinCAT 版本定为 “TwinCAT 3.1 Build 4026”[2]

1. 什么是 TwinCAT

#

TwinCAT 概述

#

简而言之,它是一款可以将 PC 转变为 PLC 的应用程序。

由于普通的 Windows 操作系统缺乏实时性,因此在要求时间临界处理的工业应用中可能不适用。通过引入 TwinCAT,可以为基于 PC 的 Windows 系统添加实时控制功能。

Information

目前主要支持的操作系统仅为 Windows,但实际上也存在支持 FreeBSD 的 TwinCAT/BSD[3]
此外,据说将来还计划支持 Linux 版[4]。(预计2025 Q3?)

在 PLC 程序的开发中,除 IEC61131-3 规范规定的五种语言外,还可以使用 C++。

  • LD(梯形图)语言
  • FBD(功能块图)语言
  • ST(结构化文本)语言
  • IL(指令表)语言
  • SFC(顺序功能图)语言
  • C++语言
    • 但存在部分限制

TwinCAT 与操作系统的关系

#

与一般应用程序不同,TwinCAT(确切地说是 TwinCAT 的运行环境)在更深层次上运行。
TwinCAT 独有的实时内核独立于操作系统运行。创建的程序将在内核模式下执行。

twincat-and-windows
(上图摘自此处

关于 TwinCAT 设计的文档

可以通过以下链接确认 TwinCAT 的设计理念。
TwinCAT3 Product Overview - Philosophy

开发环境(XAE)与运行环境(XAR)

#

TwinCAT 主要可以分为两种软件。

  • XAE(eXtended Automation Engineering)
    • TwinCAT 的开发环境
    • 用于开发和调试
  • XAR(eXtended Automation Runtime)
    • TwinCAT 的运行环境
    • 用于实时运行 PLC 程序

这两款软件无需安装在同一台 PC 上,也可以分别安装在不同的 PC 中。
也就是说,可以实现以下两种系统配置。

  • 模式A:XAE/XAR 存在于同一台 PC 上
    • 这是最简约的配置
    • 例如:当希望仅用一台 PC 实现时
  • 模式B:XAE 安装在开发 PC 上,XAR 安装在运行 PC 上
    • 虽然系统规模扩大,但在多人开发或不希望在开发 PC 上安装运行环境时非常有用
    • XAE 和 XAR 之间通过一种称为 ADS(Automation Device Specification)的专用协议进行通信
    • 例如:运行 PC 在现场,而希望在办公室 PC 上开发

本文将以模式B(XAE 和 XAR 分别安装在不同 PC 上)的配置为前提进行说明。

Warning

前节中提到的在“内核模式下运行”的仅为 XAR,而 XAE 为普通应用程序。
本文出于风险考虑,强烈建议将 XAE 和 XAR 安装在不同的 PC 上。

模式A与模式B的混合型

另一种模式是:在开发 PC 上仅安装 XAE,而在运行 PC 上同时安装 XAE 和 XAR。
但由于环境冗余,本文不做详细介绍。

2. 开发环境构建

#

这次准备两台 PC,一台安装开发环境(XAE),另一台安装运行环境(XAR)。
大致流程如下:

  1. 创建 Beckhoff 账号
  2. 在开发 PC 上安装 TwinCAT Package Manager
  3. 在开发 PC 上安装 XAE(开发环境)
  4. 在开发 PC 上下载 XAR(运行环境)的软件包
  5. 从开发 PC 将软件包转移到运行 PC
  6. 在运行 PC 上安装 TwinCAT Package Manager
  7. 在运行 PC 上安装 XAR

虽然有点长,但请耐心阅读。

系统配置

#

下图展示了本文将构建的系统配置。

  • 开发 PC = 仅运行开发环境的 PC,假设已连接互联网。
  • 运行 PC = 仅运行运行环境的 PC,假设未连接互联网。
Caution

在本文及相关系列文章中,我们未使用 Beckhoff 制造的工业PC,而使用的是普通笔记本电脑。
如果注重实时处理性能,请考虑使用工业PC。

创建 Beckhoff 账号

#

请访问 Beckhoff 官方网站 ,然后点击页面顶部的 “サインイン(登录)”。
点击显示处的 “登録(注册)” 按钮,并按照出现的页面注册账号。

register-beckoff-account

安装 TwinCAT Package Manager

#

与 TwinCAT 相关的软件均使用 TwinCAT Package Manager(在命令中简写为 tcpkg)进行安装。

请前往TwinCAT Package Manager 下载页面,点击 Download TwinCAT Package Manager

beckhoff-download-tpkg-button

虽然下载页面会打开,但需要先登录。请点击页面底部的 Log in 按钮进行登录。

登录后,点击 EXE 按钮即可下载安装程序。

tcpkg-download

运行下载的 exe 文件以安装 TwinCAT Package Manager。

tcpkg-installer

安装完成后会提示重启,请重启电脑。

TwinCAT Package Manager 的设置

#

从桌面快捷方式启动 TwinCAT Package Manager。

twincat-package-manager-icon

Information

快捷方式文件的链接地址为 C:\Program Files(x86)\Beckhoff\TcPkgUi\bin

在最先显示的 “Feed Configuration” 页面中,指定软件包的供应源。由于从互联网获取软件包需要账号,请输入账号信息。

在 Username 中输入账号的邮箱地址,在 Password 中输入密码。输入完毕后点击 Save 按钮。

tcpkg-feed-configuration

点击 Save 按钮后会提示 PowerShell 的执行权限,请选择 “OK”。

Information

在 TwinCAT Package Manager 中进行的操作由后台运行的 PowerShell 执行。
因此,在后续步骤中会多次出现权限请求,请每次点击 OK。

接下来,在 “Startup configuration” 页面中进行 TwinCAT Package Manager 的初始设置。按如下方式进行设置。

tcpkg-startup-configuration

以下是各设置项的详细说明。

  • UseVS2022
    • 是否将开发环境集成到已安装的 VisualStudio 中
  • UseTcXaeShell
    • 是否安装 TwinCAT IDE(TwinCAT 集成开发环境)(32 位版)
  • UseTcXaeShell64
    • 是否安装 TwinCAT IDE(TwinCAT 集成开发环境)(64 位版)
关于 UseVS2022 选项

此选项仅在电脑中安装了 VisualStudio 时显示。用于指定是否将 TwinCAT 的开发环境集成到已选的 VisualStudio 中。
当在 TwinCAT 中构建 C++ 程序时集成是必需的,但会对 VisualStudio 的显示产生一定更改,因此如果不需要,请选择 “No Integration”。

设置无误后,选择页面下部的 Next。之后,请确认显示出类似下图的可安装软件包列表。

tcpkg-top-screen

TwinCAT Package Manager 的设置至此完成。

在开发 PC 上安装 XAE

#

接下来,安装开发环境。

在 TwinCAT Package Manager 界面中,勾选 “TwinCAT Standard” 部分的复选框。

tcpkg-select-twincat-standard-package

在屏幕右侧会显示 TwinCAT Standard-EngineeringTwinCAT Standard-Runtime 两项。
由于开发 PC 上不安装运行环境(Runtime),请点击 × 按钮将其删除。

tcpkg-delete-runtime-selection

只保留 Engineering 选项,点击 Install 按钮进行安装。

tcpkg-press-install-button

至此,XAE 的安装完成。为了保险起见,请重启开发 PC。

在开发 PC 上下载运行 PC 安装 XAR 所需的所有文件

#

由于运行 PC 未连接互联网,因此无法采用与开发 PC 相同的方法进行安装。
因此,需要在开发 PC 上下载必需的文件,并使用 USB 闪存等设备将文件转移到运行 PC。

如果运行 PC 已连接互联网

如果运行 PC 可以连接互联网,则可以采用与开发 PC 相同的方法安装 XAR,因此后续步骤可省略。

首先,打开命令提示符或 PowerShell,输入以下命令。

tcpkg list -t workload

执行后,将显示可安装软件包列表。请确认在列表底部有 “TwinCAT.Standard.XAE” 和 “TwinCAT.Standard.XAR”。

tcpkg-list

tcpkg 命令

tcpkg 是 TwinCAT Package 的缩写。详细的命令请参阅下列链接。
TwinCAT3 - Working with the command line

确认后,请一行一行地输入以下命令,下载所需的软件包(实际上是 NuPkg 文件)。
(输出目录请根据需要自行更改。)

tcpkg download TwinCAT.Standard.XAR -o "C:\TwincatOfflineInstaller\XAR"

在此请注意以下几点:

  • 输出目录必须事先已创建
  • 安装过程中会多次提示确认

从开发 PC 向运行 PC 转移所需的所有文件

#

请使用 USB 闪存等设备,将以下两项文件转移到运行 PC:

  • TwinCAT-Package-Manager 安装文件
  • XAR 文件夹

本次放置在 C:\TwincatOfflineInstaller\ 内。

twincat-installers

在运行 PC 上进行安装

#

将目标文件转移到运行 PC 后,首先同之前一样安装 TwinCAT Package Manager。安装完成后,启动 TwinCAT Package Manager。

启动后,在 Feed Configuration 页面中指定软件包的供应源。
在开发 PC 上是从互联网获取软件包,但因运行 PC 无法连接互联网,因此使用之前转移的包文件。
在 Feed URL 部分指定放有 XAR 安装包的目录。

用户名和密码保持空白,点击 OK 按钮。

tcpkg-feed-configuration-offline

之后,请确认在主界面中显示了 “TwinCAT Standard”。在此界面中选择 “TwinCAT Standard”,并在运行 PC 上同时安装 XAR 的两部分。

至此,运行 PC 的安装完成。

3. 防火墙设置

#

本章将对开发 PC 和运行 PC 之间的通信进行设置。
两台设备之间将使用 ADS 通信(Automation Device Specification)这一协议。
默认情况下,由于防火墙的限制,ADS 通信无法进行。需要在设置中允许下表所列端口的通信。请在开发 PC 和运行 PC 上都允许这些端口通信。

协议 端口号 方向 用途
TCP 48898 接收&发送 ADS Communication
UDP 48899 接收&发送 ADS 广播搜索
TCP 8016 接收&发送 Secure ADS
Information

如果开发 PC 和运行 PC 为同一设备,则本章设置无需执行。

打开防火墙设置界面

#

右击屏幕左下角的 Windows 图标,选择 “検索(搜索)”。

click-start-search

在搜索栏中输入并点击 “セキュリティが強化された Windows Defender ファイアウォール(增强安全性的 Windows Defender 防火墙)”。

open-firewall-settings-dialog

在该对话框中添加 ADS 通信所需要的设置。

firewall-settings-dialog

添加接收规则

#

在屏幕左侧的 “受信の規則(接收规则)” 上右击,然后点击 “新しい規則(新建规则)”。

click-new-reception-rule

请为上述表格中列出的所有三个端口添加规则。
例如,对于 “TCP 的 48898 端口”,步骤如下:

  • 规则类型
    • 选择 “ポート(端口)”
  • 协议及端口
    • 指定 TCP 和 48898 端口
  • 操作
    • 选择 “接続を許可する(允许连接)”
  • 配置文件
    • 指定所需的配置文件
  • 名称
    • 填写规则的名称和描述

select-reception-rule-type
select-reception-rule-port
select-reception-rule-manipulation
select-reception-rule-profile
select-reception-rule-name

Warning

请对以下所有端口进行设置:

  • TCP, 48898 端口
  • UDP, 48899 端口
  • TCP, 8016 端口

设置完成后,接收规则列表应如下图所示。(名称可根据情况自行调整)

reception-rule-added

接收规则设置至此完成。

添加发送规则

#

接着,添加发送规则。(方法与接收规则几乎相同)
在屏幕左侧的 “送信の規則(发送规则)” → “新しい規則(新建规则)” 中,请同样添加上述三个设置。(详细步骤省略)

在发送规则向导中的 “操作” 页面

请注意,默认值为 “接続をブロックする(阻止连接)”。

send-rule-manipulation

设置完成后,发送规则列表应如下图所示。(名称可根据情况自行调整)

send-rule-added

发送规则设置至此完成。

4. ADS 通信路由设置

#

好了,漫长的开发环境构建即将完成。
最后,为在开发 PC 与运行 PC 之间实现 ADS 通信,进行路由设置[5]

如果开发 PC 和运行 PC 为同一台 PC

如果开发 PC 和运行 PC 为同一台 PC,则无需执行本章设置。

执行本章内容前

在执行本章内容前,请使用网线将开发 PC 和运行 PC 连接,并确保它们处于同一网络中。

在开发 PC 屏幕右下的系统托盘中,右击紫色齿轮图标,并选择 “Router” → “Edit Routes”。

open-ads-edit-routes

随后会显示 “TwinCAT Static Routes” 界面,请点击左下的 “Add” 按钮。

click-add-route-button

显示 “Add Route Dialog” 界面后,请在左下角勾选 “Advanced Settings”。

ads-enable-advanced-settings

勾选后,屏幕下部会显示详细的设置项。在 “Address Info” 的选项中选择 “IP Address”。

ads-change-address-info

点击屏幕右上方的 “Broadcast Search” 按钮,搜索处于同一网络且安装有 XAR 的 PC。

ads-click-broadcast-search

如果开发 PC 注册了多个以太网适配器(包括 USB 适配器),将会显示 “Select Adapters” 界面来选择要搜索的适配器。
为防止与非目标设备连接,请仅选择与安装有 XAR 的 PC 相连接的适配器。

ads-select-adapter

当检测到安装有 XAR 的 PC 后,请确认其 IP 地址等信息,若无问题则点击 “Add Route”。

ads-select-and-add-route

随后会显示 “SecureADS” 界面,请进行远程连接设置。
在 “Remote User Credentials” 栏中输入目标运行 PC 的用户名和密码。

ads-enter-remote-user-credentials

如果目标运行 PC 是 Beckhoff 制造的 PC

对于 Beckhoff 制造的 PC,用户名和密码如下:
User = Administrator
Password = 1
Windows Operating Systems - General Information

连接成功后,在 “Connected” 部分会显示一个锁形图标。
确认无误后,点击右下的 “Close” 按钮关闭 “Add Route Dialog”。

ads-check-connected

在 “TwinCAT Static Route” 界面中,请确认刚刚添加的路由设置显示出并呈绿色。如果未显示绿色,请再次确认开发 PC 和运行 PC 是否已连接。

after-route-added

至此,ADS 通信设置完成。

5. 结语

#

虽然内容冗长,但 TwinCAT 开发环境构建到此结束。辛苦了。
下一篇文章将实际创建 PLC 程序,并在 TwinCAT 上运行。

【补充】
在本文撰写过程中,Beckhoff 官方发布了一段解释开发环境构建步骤的视频。请一并观看。

TwinCAT Howto - V.3.1.4026以降のインストール方法


  1. Beckhoff Automation ↩︎

  2. TwinCAT 3.1 的最新版本:Build 4026 ↩︎

  3. TwinCAT/BSD ↩︎

  4. 针对实时 Linux 的 TwinCAT 运行时 ↩︎

  5. TwinCAT Howto - 连接到远程系统 ↩︎

豆蔵では共に高め合う仲間を募集しています!

recruit

具体的な採用情報はこちらからご覧いただけます。