【发布时间】:2020-10-19 05:59:21
【问题描述】:
如何从控制台或 C# 应用程序启动/重新启动/关闭 TwinCAT 系统运行时?我需要一个与右下角的 TwinCAT 工具栏按钮 System Start/Restart 等效的功能。 谢谢。
【问题讨论】:
如何从控制台或 C# 应用程序启动/重新启动/关闭 TwinCAT 系统运行时?我需要一个与右下角的 TwinCAT 工具栏按钮 System Start/Restart 等效的功能。 谢谢。
【问题讨论】:
这可以使用 C# .net ADS 库来完成。要在 Config 和 Run 之间更改 TwinCAT 运行时,请连接到 System Service ADS 端口(端口 10000)并将状态设置为 AdsState.Run 或 AdsState.Config。
所有有效的状态值都可以在here 中找到。所有端口值都可以在here找到。
static void Main(string[] args)
{
//Create a new instance of class TcAdsClient
TcAdsClient tcClient = new TcAdsClient();
try
{
// Connect to TwinCAT System Service port 10000
tcClient.Connect(AmsPort.SystemService);
// Send desired state
tcClient.WriteControl(new StateInfo(AdsState.Config, tcClient.ReadState().DeviceState));
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadKey();
}
finally
{
tcClient.Dispose();
}
}
【讨论】:
您可以使用TwinCAT automation interface,linking the automation interface DLL 可以从 C#/.NET 程序访问它。
具体来说,要启动/重新启动 TwinCAT,您使用 ITcSysManager::StartRestartTwinCAT - 方法
【讨论】:
systemManager = new TcSysManager(); 时,如 TwnCAT 文档中所示,它会抛出一个运行时错误 missing method exception: no constructor without parameters为对象定义。但是我既不能放置带参数的构造函数,因为它说它不存在并给我一个编译错误。
TcXaeMgmt 需要安装到 PS v4.0+ https://www.powershellgallery.com/packages/TcXaeMgmt/3.2.21
比在 Powershell 类型中: 设置 AdsState 停止 或者 Set-AdsState 开始
【讨论】: