|
一、TwinCAT软件介绍 1. TwinCAT软件简介
TwinCAT(The Windows Control and Automation Technology)是德国倍福(Beckhoff)公司开发的一款基于PC的自动化控制软件平台。其核心理念为“软件定义控制”,即通过软件替代传统专用硬件控制器,将PLC(逻辑控制)、运动控制(轴控)、CNC(数控)、机器人技术、IoT(物联网)以及安全控制等多种功能集成于同一开发环境中,无需依赖多套不同软件。 2. TwinCAT软件在客户侧的主要使用场景
TwinCAT软件主要应用于半导体企业的电气开发岗位和软件开发岗位,具体场景如下: 软件开发岗位:主要使用TwinCAT软件的仿真功能,并通过Visual Studio编程软件调用TwinCAT的服务接口。 电气开发岗位:主要用于连接PLC设备进行现场调试。 3.TwinCAT软件运行仿真功能的两种模式 Shared(共享核)模式:CPU同时运行Windows应用程序和TwinCAT任务,两者共享计算资源。 Isolated(隔离核)模式:指定CPU核心完全隔离,不运行Windows应用程序,所有资源专供TwinCAT任务使用。 两种模式在使用场景和最终效果上一致,但在3D虚拟机环境中,必须仅勾选Isolated,而不勾选Shared,才能确保TwinCAT仿真功能正常运行。 二、问题背景 1.客户侧软件岗位用户需要在3D虚拟机中用到TwinCAT软件里面的仿真功能,但是在运行仿真功能时TwinCAT会出现4118报错。 2.TwinCAT软件的4118问题解决后,又出现运行仿真功能时Twin CAT软件卡死,虚拟机无响应触发HA。 三、排查思路 1. TwinCAT软件出现4118报错 TwinCAT软件在VMware虚拟机中可正常运行,将VMware与aDesk的底层CPU调度机制进行了对比分析,具体差异如下: VMware环境:采用专属短路径调度,即 Guest VM → VMkernel→ 物理CPU(pCPU),路径较短,性能损耗小。 aDesk(KVM)环境:调度路径较长,为 Guest → vCPU线程 → Linux CFS(完全公平调度器)→ 物理CPU(pCPU),中间层级较多,导致TwinCAT对实时性要求较高的仿真任务无法获得预期资源。 开启嵌套虚拟化功能后,可有效缩短上述调度路径,实现直通物理CPU(pCPU)的效果,从而满足TwinCAT软件对CPU隔离和实时性的要求,解决4118错误。 关闭Host CPU开启嵌套虚拟化功能是因为这两个功能冲突。 2.虚拟机触发HA问题 勾选“Shared”模式导致虚拟机无响应并触发HA,该模式与嵌套虚拟化功能存在冲突。 四、解决方案 1. TwinCAT软件出现4118报错 在HCI控制台中编辑虚拟机配置,取消勾选“Host CPU”选项;同时在VDC控制台中找到该虚拟机,并开启“嵌套虚拟化”功能。 2.虚拟机触发HA问题 在此界面进行配置,配置多少个Isolated核就勾选多少个Isolated,只勾选Isolated不勾选shared。 五、总结 在3D虚拟机运行TwinCAT仿真需三步: 六、注意事项 1.开启嵌套虚拟化可能会导致虚拟机出现不可预知的运行问题,请谨慎评估后操作。 2.在TwinCAT软件运行仿真功能时,不要勾选“Shared”模式,以避免系统卡死和触发HA风险。 |