开发 PLCnext 控制台应用 (C#):初学者指南
本教程展示如何为 PLCnext Control 设备创建简单的 “Hello World” 控制台应用。应用用 C# 编写,目标 .NET Core。
注意:本教程针对完全在 PLCnext Runtime 外部运行的 C# 应用。针对面向 eCLR 的 C# 应用,请参阅 PLCnext Info Center 的 eCLR 章节。
安装教程展示了如何在 PLC 上安装 .NET Core。那种情况下,多个目标 .NET Core 的应用可在 PLC 运行,最小化公共 .NET dll 重复。
另一种方式,可在未安装 .NET Core 框架的 PLC 上运行 .NET Core 应用。此时应用所需所有 .NET 依赖随应用部署。这可能适合 PLC 上仅需一个 .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” 章节。
在项目文件 (.csproj) PropertyGroup 部分添加:
<RuntimeIdentifiers>linux-arm</RuntimeIdentifiers>这指示编译器目标 Linux 32 位平台。.csproj 文件应类似:
<Project sdk=”Microsoft.NET.Sdk”> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <RuntimeIdentifiers>linux-arm</RuntimeIdentifiers> </PropertyGroup> </Project>在解决方案资源管理器中,右键点击解决方案打开终端。
在终端执行:
dotnet build .ConsoleApp1.csproj dotnet publish -c RELEASE -r linux-arm .ConsoleApp1.csproj -o MyAppConsoleApp1为解决方案名,MyApp为发布输出目录。如需也可DEBUG模式发布。用 (如) WinSCP 将输出目录及所有内容复制到 PLC。
用 (如) PuTTY 或 ssh 在 PLC 打开 Shell 会话。
检查可执行文件格式:
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 论坛提问。
工业技术