【发布时间】:2022-12-06 23:42:41
【问题描述】:
我正在尝试通过 Python Pyads 包装器来控制我的 Beckhoff 设备。
如果 TwinCAT 在我的目标设备上处于 Config 模式,是否可以使用 Python 命令启动它?
【问题讨论】:
标签: python twincat twincat-ads
我正在尝试通过 Python Pyads 包装器来控制我的 Beckhoff 设备。
如果 TwinCAT 在我的目标设备上处于 Config 模式,是否可以使用 Python 命令启动它?
【问题讨论】:
标签: python twincat twincat-ads
是的,可以使用 Python 命令在 Beckhoff 设备上启动 TwinCAT。但是,具体使用 Pyads 包装器是否可行取决于该包装器的功能。也有可能 TwinCAT 根本无法通过 Python 命令以 Config 模式启动,在这种情况下,您需要使用不同的方法在目标设备上以 Config 模式启动 TwinCAT。
请务必记住,TwinCAT 是一种专有软件,因此仅支持某些方法和库与其交互。
【讨论】:
我认为 pyads 不可能做到这一点。使用 TwinCAT 自动化接口可以做到这一点。参见示例代码from InfoSys:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EnvDTE100;
using System.IO;
using TCatSysManagerLib;
namespace ActivatePreviousConfiguration
{
class Program
{
static void Main(string[] args)
{
Type t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
EnvDTE.DTE dte = (EnvDTE.DTE)System.Activator.CreateInstance(t);
dte.SuppressUI = false;
dte.MainWindow.Visible = true;
EnvDTE.Solution sol = dte.Solution;
sol.Open(@"C:TempSolutionFolderMySolution1MySolution1.sln");
EnvDTE.Project pro = sol.Projects.Item(1);
ITcSysManager sysMan = pro.Object;
sysMan.ActivateConfiguration();
sysMan.StartRestartTwinCAT();
}
}
}
然后你可以使用 PythonNET 从 Python 调用这个程序。
【讨论】: