Développer une application console PLCnext en C# : guide pour débutants
Ce tutoriel montre comment créer une simple application console « Hello World » pour un contrôleur PLCnext Control. L'application est écrite en C# et cible .NET Core.
Note : ce tutoriel concerne les applications C# s'exécutant entièrement en dehors du PLCnext Runtime. Pour les applications C# ciblant l'eCLR, consultez la section eCLR du PLCnext Info Center.
Le tutoriel d'installation montrait comment installer .NET Core sur un PLC. Dans ce cas, plusieurs applications .NET Core peuvent tourner sur le PLC, avec duplication minimale des DLL communes.
Alternative : exécuter une application .NET Core sur un PLC sans framework .NET Core installé. Toutes les dépendances .NET requises sont déployées avec l'application. Adapté aux projets ne nécessitant qu'une seule application .NET Core sur le PLC.
Ce tutoriel traite ce second type.
Utilisé :
- AXC F 2152 avec firmware 2021.0.3. .NET Core non requis.
- Visual Studio 2019. Aucun add-in ou SDK PLCnext spécifique requis.
Procédure
Dans Visual Studio, créer un nouveau projet avec le modèle C# Console App (.NET Core).
Ajouter un fichier
runtimeconfig.template.jsonà la racine du projet, contenant :{ "configProperties": { "System.Globalization.Invariant": true } }La raison de ce paramètre est expliquée dans la section « Background Information » du tutoriel d'installation.
Ajouter cette ligne dans la section
PropertyGroupdu fichier projet (.csproj) :<RuntimeIdentifiers>linux-arm</RuntimeIdentifiers>Cela indique au compilateur de cibler une plateforme Linux 32 bits. Le
.csprojdevrait ressembler à :<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <RuntimeIdentifiers>linux-arm</RuntimeIdentifiers> </PropertyGroup> </Project>Dans l'Explorateur de solutions, clic droit sur la solution > ouvrir un Terminal.
Dans le terminal, exécuter :
dotnet build ConsoleApp1.csproj dotnet publish -c RELEASE -r linux-arm ConsoleApp1.csproj -o MyAppConsoleApp1= nom de la solution,MyApp= répertoire de sortie. Publication possible en modeDEBUG.Copier le répertoire de sortie et son contenu sur le PLC (ex: WinSCP).
Ouvrir une session shell sur le PLC (ex: PuTTY ou ssh).
Vérifier le format de l'exécutable :
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, strippedCela confirme que l'application est compilée pour la bonne plateforme.
Donner les droits d'exécution :
chmod a+x /opt/plcnext/MyApp/ConsoleApp1Exécuter l'application :
/opt/plcnext/MyApp/ConsoleApp1 Hello World!
Questions / commentaires ?
Pour toute question ou commentaire, posez-les sur le forum PLCnext Community.
Technologie industrielle
- Créer des listes de chaînes en VHDL : Bonnes pratiques et exemple
- Comment construire un testbench auto-vérifiant en VHDL - Guide pratique
- Créer un tableau d'objets en Java : Guide étape par étape
- Maîtriser la Business Intelligence : élaborer une stratégie gagnante pour le succès data-driven
- Intégrer le connecteur Alibaba Cloud avec PLCnext : guide étape par étape
- Gestion de cluster sur PLCnext : exploiter Kubernetes pour l'automatisation industrielle
- Optimiser les applications Java 9 sur PLCnext Control avec Jlink
- Éviter les conflits : Comment les tolérances multiples impactent le coût et la qualité
- Exploiter le Cuivre-Tungstène pour le Soudage par Points par Résistance Avancé dans les Véhicules Électriques (BEV)