Разработка консольного приложения PLCnext на C#: Руководство для начинающих
Это руководство показывает, как создать простое консольное приложение «Hello World» для устройства PLCnext Control. Приложение написано на C# и ориентировано на .NET Core.
Обратите внимание, что это руководство предназначено для C# приложений, которые полностью запускаются вне PLCnext Runtime. Для C# приложений, ориентированных на eCLR, обратитесь к разделу eCLR в PLCnext Info Center.
Руководство по установке показывало, как установить .NET Core на ПЛК. В этом случае несколько приложений, ориентированных на .NET Core, могут запускаться на ПЛК с минимальным дублированием общих .NET dll.
Как альтернатива, можно запустить .NET Core приложение на ПЛК, где .NET Core фреймворк не установлен. В этом случае все .NET зависимости, необходимые для приложения, развертываются вместе с приложением. Это может подойти для проектов, требующих только одно .NET Core приложение на ПЛК.
Это руководство касается второго типа приложения.
В этом руководстве используются:
- AXC F 2152 с прошивкой 2021.0.3. .NET Core не нужно устанавливать.
- Visual Studio 2019. В этом случае не требуются специфичные для PLCnext дополнения или SDK.
Процедура
-
В Visual Studio создайте новый проект с использованием шаблона C# Console App (.NET Core).
-
Добавьте файл в корневую директорию проекта с именем
runtimeconfig.template.json, содержащий следующее:{ "configProperties": { "System.Globalization.Invariant": true } }Причина этого настройки свойства описана в разделе «Background Information» руководства по установке.
-
Добавьте следующую строку в секцию PropertyGroup файла проекта (.csproj):
<RuntimeIdentifiers>linux-arm</RuntimeIdentifiers>Это говорит компилятору ориентироваться на 32-битную Linux-платформу. Файл .csproj должен выглядеть примерно так:
<Project sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <RuntimeIdentifiers>linux-arm</RuntimeIdentifiers> </PropertyGroup> </Project> -
В Solution Explorer нажмите правой кнопкой на Solution и откройте Terminal.
-
В терминале выполните следующие команды:
dotnet build ConsoleApp1.csproj dotnet publish -c RELEASE -r linux-arm ConsoleApp1.csproj -o MyAppГде
ConsoleApp1— имя решения, аMyApp— имя выходной директории, куда будет опубликовано приложение. Приложение также можно публиковать в режимеDEBUGпри необходимости. -
Скопируйте выходную директорию со всем содержимым на ПЛК с помощью (например) WinSCP.
-
Откройте сессию оболочки на ПЛК с помощью (например) PuTTY или ssh.
-
Проверьте формат исполняемого файла:
file /opt/plcnext/MyApp/ConsoleApp1 ConsoleApp1: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=887a06cd9735de5da4b686517f69d68779571cec, strippedЭто подтверждает, что приложение собрано для правильной платформы.
-
Убедитесь, что у исполняемого файла есть права на выполнение:
chmod a+x /opt/plcnext/MyApp/ConsoleApp1 -
Запустите приложение:
/opt/plcnext/MyApp/ConsoleApp1 Hello World!
Вопросы/комментарии?
Если у вас есть вопросы или комментарии, пожалуйста, задайте их на форуме PLCnext Community.
Промышленные технологии
- Создание бесшовного пользовательского опыта: чертеж UX-дизайна
- Создание списков строк в VHDL: лучшие практики и пример
- Как создать самопроверяющийся тестбенч в VHDL — практическое руководство
- Создание массива объектов в Java: пошаговое руководство
- Овладение бизнес-интеллектом: создание выигрышной стратегии для успеха, основанного на данных
- Интеграция Alibaba Cloud Connector с PLCnext: Пошаговое руководство
- Управление кластерами на PLCnext: Использование Kubernetes для промышленной автоматизации
- Оптимизация Java 9 приложений на PLCnext Control с помощью jlink
- Избегание конфликтов: как множественные допуски влияют на стоимость и качество
- Использование меди-вольфрама для передовых точечных контактных сварок в BEV