笔者在同一台电脑上开发MAUI安卓应用,运行安卓模拟器需要开启“Hyper-V”,同时还有TwinCAT(倍福PLC)开发的需求,同样,编写的ST程序需要在TwinCAT上进行本地调试(<Local>),验证程序逻辑。
当一台计算机开启“Hyper-V”,同时在Twincat进行本地调试的时候,点击激活配置,跳转到运行模式前往往会提示“RTIME: incompatible software detected”:Ads:Error4115;Ads:Error4132;等错误。
通常我们会选择关闭 “Hyper-V”,然后用管理员方式执行“win8settick.bat”(C:\TwinCAT\3.1\System\win8settick.bat),重启后一般可以解决报错。
但笔者由于开发需要必须开启“Hyper-V”,在Beckhoff官网产品发布页发现“最新版本 TwinCAT 3.1:Build 4026”中提到了"TwinCAT 3 Usermode Runtime"。
官方提到:TwinCAT 3 Usermode Runtime 提供了一种在操作系统的用户模式下而非实时环境中运行 TwinCAT 程序的方式
为此,有三种模式:
- Engineering:TC1700 使运行客户程序成为可能,特别是在软件开发系统中,既不允许安装也不允许操作运行时的情况下,可以为开发目的提供测试运行环境。
- External Control:TC1701 功能选项为外部应用程序提供了一个接口用以周期性地执行程序。这是由客户通过 API 创建的,用来从外部控制程序的执行。
- Fast As Possible:TC1702 功能选项为在硬件允许的范围内以最快的速度运行应用程序提供了一个接口。这同时也模拟了在不同的内核和时钟频率下程序的执行情况。
其中TC1700这个功能,可以给用户模式运行时提供了一种在操作系统的用户模式下运行在 TwinCAT 中编程的应用程序的方法。
按照官网下载了TwinCAT Package Manager (TwinCAT 3.1 Build 4026)
Twincat3 4026已于2024年5月第二个季度发布,与之前4024的版本不同,新的版本采用包管理器的方式进行安装、升级、卸载,且升级到了VS2022的界面。
下载并安装(安装新版本前需要彻底删除旧版本的软件)TwinCAT Package Manager之后可以看到界面,在设置界面添加源。
点击Close返回,在Avaliable中选中所需要的负载进行安装。
下图是笔者所安装的负载,当然最基本的Twincat Standard必须安装。
当“Usermode Runtime”负载安装完成之后,在电脑右侧任务栏中Twincat运行状态图标右键打开后,会发现多出一个UmRT菜单,点击Start启动用户模式,同样用户模式中与实时模式一样可以设置ADS路由地址。
在TwinCAT中用户模式运行时也可以通过AmsNetId 进行寻址找到,这里切换到用户模式这个地址。
经过测试,我们可以看到在用户模式下,同时开启Hyper-V也可以测试运行Twincat程序。