TwinCAT C++使用入门
- 1、准备工作
- 1.1 软件环境
- 1.2 硬件环境
- 2、安装流程
- 2.1 Visual Studio安装
- 2.2 TwinCAT 安装
- 3、配置签名
- 3.1 TwinCAT证书制作
- 3.2 Windows开启测试模式
- 4、C++项目设置
- 4.1 项目编译
- 4.2 模块加载执行
1、准备工作
1.1 软件环境
TwinCAT Package Manager;
Visual Studio 2022 Community;
VMware Workstation 17.6.0;
Windows 10 Enterprise 22H2。
1.2 硬件环境
Windows PC。
2、安装流程
在PC上安装VMware虚拟机并在虚拟机中安装Windows 10 Enterprise 22H2系统。
2.1 Visual Studio安装
使用 VisualStudioSetup.exe安装VS 2022社区版,需要注意在安装过程中要选择图中所示插件,以支持对C++代码进行编译。
点击install直至安装完成。
2.2 TwinCAT 安装
TwinCAT安装通过 TwinCAT Package Manager进行,这是一个安装管理软件,旨在实现软件的模块化管理,通过此软件可选择TwinCAT软件安装哪些插件或者更新特定插件到指定版本。由于测试在虚拟机中进行,需要同时安装XAE开发环境和XAR运行环境。安装TwinCAT组件前需要对Package Manager进行一些设置,遵照下图进行即可。
Feeds中配置TwinCAT软件源和您的TwinCAT账户信息。点击 Add new feed。
在弹出的窗口中按下图选择Beckhoff Stable Feed,安装稳定版源中发布的软件。User和Password中填写您在Beckhoff官网中注册的账户信息。
在Integration中配置TwinCAT XAE集成到现有的VS 2022框架中,这里不必选择安装Shell。
Location选择TwinCAT软件安装的目录,保持默认即可。
安装完毕后通常会在桌面生成快捷方式,通过此快捷方式启动TwinCAT Package Manager软件。第一次会显示一个引导配置,这里可以直接Skip。
从列表中选择如下软件安装即可。
TwinCAT.Standard.XAE v4026.27.0;
TwinCAT.Standard.XAR v4026.27.0;
TwinCAT 3 ADS v4026.27.0;
TwinCAT 3 C++ v4026.26.0
点击 Apply modification开启安装流程。
安装完毕后在Installed中查看已经安装的软件
安装成功后在桌面的右下角可以看到如下图标,表明TwinCAT已经安装并嵌入到VS环境中,通过这里点击 TwinCAT XAE即可启动XAE开发环境。
3、配置签名
C++项目编译出的组件(Module)在Windows和TwinCAT/BSD系统中必须进行签名才可被TwinCAT runtime加载执行。这个签名由Beckhoff签发,以确保证书来自受信机构。但是在非生产环境下测试时可以使用自签名证书进行前期的项目测试,自签名证书需要开启windows系统的Test Mode模式以允许操作系统加载自签名文件。
3.1 TwinCAT证书制作
启动TwinCAT软件,新建一个项目
至此,一个C++的项目已经建立起来。按图示位置打开 Software Protection选项来配置签名文件。
OEM Name:填写签名文件的名称,测试文件可以随便起一个名字即可;
Unique Name :随便填写一个邮箱地址即可;
Certificate for:全部勾选。
完毕后点击Start。
系统会弹窗提示输出保存测试签名文件的位置,默认位置即可,点击save保存。
弹窗提示输入私钥的密码,输入一个密码即可,这里输入1。
完毕后即可在软件中看到已经生成的签名文件
3.2 Windows开启测试模式
在Windows下开启测试模式,在power shell中输入以下指令即可
bcdedit /set testsigningyes
开启成功后系统的右下角会出现测试模式字样。
至此,环境配置完毕。
4、C++项目设置
4.1 项目编译
回到C++的项目中,在下图CycleUpdate函数中添加一行代码,这样Module每执行一次都会对Data变量自加1。CycleUpdate()函数相当于PLC中的MAIN()函数。
添加完毕后对项目进行编译,确保没有错误。在 Untitled 1 Project 上右键,选择 Properties 打开项目属性。
导航到TC Sign,在TwinCAT Certificate下填入之前设置的签名文件和私钥密码,点击OK。
设置完毕后编译项目确保没有错误,对项目进行发布操作。在Untitled 1 Project上右键打开TwinCAT Publish Modules。之后在Output中查看信息,可以查看已经生成了module。注意ProgramData文件夹默认是隐藏的。
4.2 模块加载执行
编译完毕后会生成一个C++ Module,在Untitled 1节点下右键Add new item来新建一个Module对象。
可以看到之前编译项目生成的Module 1已经识别在列表中,选择并点击OK进行加载。
这里已经成功加载Module并识别出输出输出变量。
新建一个Task,绑定到此Module中,由Task周期调用执行此Module即可。在Task节点下右键 Add new task。
新建Task2
点击Task2,可以配置Task2的属性,这里保持所有属性默认即可。
回到Module节点,在Context下选择Task2作为它的任务Task。
激活项目配置到测试机上并切换TwinCAT到run mode,注意如果你的测试机未设置独立核心,可能会影响TwinCAT切换到run mode模式。报错代码一般为0x1024,出现此错误请关闭测试机的Hvper-V并设置独立若干核心,放置TwinCAT的所有Task到独立核心中后重新激活项目即可。
切换成功后在任务栏的下方可以看到已经是图标已经是绿色齿轮,查看C++ Module中Input下的Data变量,已经执行了自增操作,说明C++ Module已经在执行了。