如何从控制台/C# 程序启动/关闭 TwinCAT 系统?

How to startup / shutdown TwinCAT System from console / C# program?

如何从控制台或 C# 应用程序 start/restart/shutdoown TwinCAT 系统运行时?我需要一个与右下角的 TwinCAT 工具栏按钮 System Start/Restart 等效的功能。 谢谢。

您可以在 C#/.NET 程序中使用 TwinCAT automation interface, which is accessible by linking the automation interface DLL

具体来说,对于 start/restart TwinCAT,您使用 ITcSysManager::StartRestartTwinCAT - 方法

这可以通过使用 C# .net ADS 库来完成。要在 Config 和 运行 之间更改 TwinCAT 运行时,请连接到系统服务 ADS 端口(端口 10000)并将状态设置为 AdsState.RunAdsState.Config.

可以找到所有有效状态值 here. All the port values can be found 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();
        }
    }

TcXaeMgmt 需要安装到 PS v4.0+ https://www.powershellgallery.com/packages/TcXaeMgmt/3.2.21

比在 Powershell 中输入: Set-AdsState 停止 要么 Set-AdsState开始

详情在这里: https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_ads_ps_tcxaemgmt/4130762891.html&id=4912948515382920501