Desarrollar una aplicación de consola PLCnext usando C#: Guía para principiantes
Este tutorial muestra cómo crear una simple aplicación de consola "Hola Mundo" para un dispositivo PLCnext Control. La aplicación está escrita en C# y apunta a .NET Core.
Tenga en cuenta que este tutorial está destinado a aplicaciones C# que se ejecutan completamente fuera del PLCnext Runtime. Para aplicaciones C# que apuntan al eCLR, por favor consulte la sección eCLR del PLCnext Info Center.
El tutorial de instalación mostró cómo instalar .NET Core en un PLC. En ese caso, múltiples aplicaciones apuntando a .NET Core pueden ejecutarse en el PLC, con mínima duplicación de DLLs comunes de .NET.
Como alternativa, es posible ejecutar una aplicación .NET Core en un PLC que no tenga el framework .NET Core instalado. En este caso, todas las dependencias .NET requeridas para la aplicación se despliegan con la aplicación. Esto puede ser adecuado para proyectos que requieren solo una aplicación .NET Core en el PLC.
Este tutorial aborda el segundo tipo de aplicación.
Este tutorial usa:
- AXC F 2152 con firmware 2021.0.3. .NET Core no necesita estar instalado.
- Visual Studio 2019. No se requieren complementos o SDKs específicos de PLCnext en este caso.
Procedimiento
-
En Visual Studio, cree un nuevo proyecto usando la plantilla Aplicación de consola C# (.NET Core).
-
Añada un archivo al directorio raíz del proyecto llamado
runtimeconfig.template.json, que contenga lo siguiente:{ "configProperties": { "System.Globalization.Invariant": true } }La razón de esta configuración de propiedad se describe en la sección "Información de fondo" del tutorial de instalación.
-
Añada la siguiente línea a la sección PropertyGroup del archivo del proyecto (.csproj):
<RuntimeIdentifiers>linux-arm</RuntimeIdentifiers>Esto le dice al compilador que apunte a una plataforma Linux de 32 bits. El archivo .csproj debería verse algo así:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <RuntimeIdentifiers>linux-arm</RuntimeIdentifiers> </PropertyGroup> </Project> -
En el Explorador de soluciones, haga clic derecho en la Solución y abra un Terminal.
-
En el terminal, ejecute los siguientes comandos:
dotnet build ConsoleApp1.csproj dotnet publish -c RELEASE -r linux-arm ConsoleApp1.csproj -o MyAppDonde
ConsoleApp1es el nombre de la solución, yMyAppes el nombre del directorio de salida donde se publicará la aplicación. La aplicación también puede publicarse en modoDEBUGsi se requiere. -
Copie el directorio de salida y todo su contenido al PLC usando (por ejemplo) WinSCP.
-
Abra una sesión de shell en el PLC usando (por ejemplo) PuTTY o ssh.
-
Verifique el formato del ejecutable:
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, strippedEsto confirma que la aplicación se ha compilado para la plataforma correcta.
-
Asegúrese de que el ejecutable tenga privilegios de ejecución:
chmod a+x /opt/plcnext/MyApp/ConsoleApp1 -
Ejecute la aplicación:
/opt/plcnext/MyApp/ConsoleApp1 Hello World!
¿Preguntas/comentarios?
Si tiene alguna pregunta o comentario, por favor pregúntelos en el Foro de la Comunidad PLCnext.
Tecnología Industrial
- Creación de experiencias de usuario sin fricción: una guía de diseño UX
- Dominar la inteligencia de negocio: Crear una estrategia ganadora para el éxito basado en datos
- Integrar Alibaba Cloud Connector con PLCnext: Guía paso a paso
- Gestión de clústeres en PLCnext: Aprovechando Kubernetes para automatización industrial
- Optimiza aplicaciones Java 9 en PLCnext Control usando Jlink
- Evitar conflictos: cómo las tolerancias múltiples impactan en coste y calidad
- Aprovechando el Cobre-Tungsteno para Soldadura por Puntos por Resistencia Avanzada en BEV
- Creación de listas de cadenas en VHDL: Buenas prácticas y ejemplo
- Cómo construir un testbench de auto-comprobación en VHDL: Guía práctica
- Construya un temporizador fiable en VHDL: Contar ciclos de reloj hasta horas
- Crear un array de objetos en Java: Guía paso a paso