Как запустить / выключить TwinCAT System из консоли / программы C#?

Как я могу запустить / перезапустить / завершить работу системы TwinCAT из консоли или приложения C#? Мне нужна функциональность, эквивалентная кнопкам панели инструментов TwinCAT Система запуска / перезагрузки в правом нижнем углу. Благодарю.

2 ответа

Решение

Этого можно достичь с помощью библиотеки ADS C# .net. Чтобы изменить время выполнения TwinCAT между Config и Run, подключитесь к порту ADS системной службы (порт 10000) и установите для него состояние AdsState.Run или же AdsState.Config,

Все действительные значения состояния можно найти здесь. Все значения портов можно найти здесь.

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, доступ к которому можно получить, связав DLL интерфейса автоматизации из C#/.NET-программы.

В частности, для запуска / перезапуска TwinCAT вы используете ITcSysManager:: StartRestartTwinCAT - метод

TcXaeMgmt необходимо установить на PS v4.0+https://www.powershellgallery.com/packages/TcXaeMgmt/3.2.21

Чем в Powershell введите: Set-AdsState Stop или Set-AdsState Start

Подробности здесь:https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_ads_ps_tcxaemgmt/4130762891.html&id=4912948515382920501

Другие вопросы по тегам