So erstellen Sie eine einfache PLCnext-Konsolenanwendung in C#
Dieses Tutorial zeigt, wie Sie eine einfache „Hello World“-Konsolenanwendung für ein PLCnext Control-Gerät erstellen. Die Anwendung ist in C# geschrieben und zielt auf .NET Core ab.
Beachten Sie, dass dieses Tutorial für C#-Anwendungen gedacht ist, die vollständig außerhalb der PLCnext Runtime ausgeführt werden. Informationen zu C#-Anwendungen, die auf eCLR abzielen, finden Sie im eCLR-Abschnitt des PLCnext Info Center.
Das Installations-Tutorial hat gezeigt, wie .NET Core auf einer SPS installiert wird. In diesem Fall können mehrere Anwendungen, die auf .NET Core abzielen, auf der SPS ausgeführt werden, mit minimaler Duplizierung gängiger .NET-DLLs.
Alternativ ist es möglich, eine .NET Core-Anwendung auf einer SPS auszuführen, auf der das .NET Core-Framework nicht installiert ist. In diesem Fall werden alle für die Anwendung erforderlichen .NET-Abhängigkeiten mit der Anwendung bereitgestellt. Dies kann für Projekte geeignet sein, die nur eine .NET Core-Anwendung auf der SPS benötigen.
Dieses Tutorial behandelt den zweiten Anwendungstyp.
Dieses Tutorial verwendet:
- AXC F 2152 mit Firmware 2021.0.3. .NET Core muss nicht installiert werden.
- Visual Studio 2019. In diesem Fall sind keine PLCnext-spezifischen Add-Ins oder SDKs erforderlich.
Verfahren
-
Erstellen Sie in Visual Studio ein neues Projekt mit der C#-Konsolen-App-Vorlage (.NET Core).
-
Fügen Sie dem Projektstammverzeichnis eine Datei mit dem Namen
runtimeconfig.template.json
hinzu , die Folgendes enthält:{ "configProperties": { "System.Globalization.Invariant": true } }
Der Grund für diese Eigenschaftseinstellung wird im Abschnitt „Hintergrundinformationen“ des Installations-Tutorials beschrieben.
-
Fügen Sie die folgende Zeile zum Abschnitt PropertyGroup der Projektdatei (.csproj) hinzu:
<RuntimeIdentifiers>linux-arm</RuntimeIdentifiers>
Dies weist den Compiler an, auf eine 32-Bit-Linux-Plattform abzuzielen. Die .csproj-Datei sollte dann etwa so aussehen:
<Project sdk=”Microsoft.NET.Sdk”> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <RuntimeIdentifiers>linux-arm</RuntimeIdentifiers> </PropertyGroup> </Project>
-
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe und öffnen Sie ein Terminal.
-
Führen Sie im Terminal die folgenden Befehle aus:
dotnet build .ConsoleApp1.csproj dotnet publish -c RELEASE -r linux-arm .ConsoleApp1.csproj -o MyApp
Wobei
ConsoleApp1
der Name der Lösung ist undMyApp
ist der Name des Ausgabeverzeichnisses, in dem die Anwendung veröffentlicht wird. Die Anwendung kann auch inDEBUG
veröffentlicht werden Modus, falls erforderlich. -
Kopieren Sie das Ausgabeverzeichnis und seinen gesamten Inhalt mit (z. B.) WinSCP in die SPS.
-
Öffnen Sie eine Shell-Session auf der SPS mit (zum Beispiel) PuTTY oder ssh.
-
Überprüfen Sie das Format der ausführbaren Datei:
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
Dies bestätigt, dass die Anwendung für die richtige Plattform erstellt wurde.
-
Stellen Sie sicher, dass die ausführbare Datei über Ausführungsrechte verfügt:
chmod a+x /opt/plcnext/MyApp/ConsoleApp1
-
Führen Sie die Anwendung aus:
/opt/plcnext/MyApp/ConsoleApp1 Hello World!
Fragen/Kommentare?
Wenn Sie Fragen oder Kommentare haben, stellen Sie diese bitte im PLCnext Community Forum.
Industrietechnik
- Wie man reibungslose UX erstellt
- So erstellen Sie eine Liste von Zeichenfolgen in VHDL
- So erstellen Sie eine selbstüberprüfende Testbench
- So erstellen Sie ein Array von Objekten in Java
- So erstellen Sie eine erfolgreiche Business Intelligence-Strategie
- So verwenden Sie den Alibaba Cloud Connector
- Clusterverwaltung auf PLCnext?
- Java-Anwendung auf PLCnext Control
- Wie mehrere Toleranzen zu Konflikten führen können
- Verwendung von Wolfram in einer Automobilanwendung