亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

开发 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 应用的项目。

本教程针对第二种应用类型。

本教程使用:

过程

  1. 在 Visual Studio 中,用模板 C# Console App (.NET Core) 创建新项目。

  2. 在项目根目录添加文件 runtimeconfig.template.json,内容:

    { "configProperties": { "System.Globalization.Invariant": true } } 

    此属性设置原因见安装教程 “Background Information” 章节。

  3. 在项目文件 (.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> 
  4. 在解决方案资源管理器中,右键点击解决方案打开终端。

  5. 在终端执行:

    dotnet build .ConsoleApp1.csproj dotnet publish -c RELEASE -r linux-arm .ConsoleApp1.csproj -o MyApp 

    ConsoleApp1 为解决方案名,MyApp 为发布输出目录。如需也可 DEBUG 模式发布。

  6. 用 (如) WinSCP 将输出目录及所有内容复制到 PLC。

  7. 用 (如) PuTTY 或 ssh 在 PLC 打开 Shell 会话。

  8. 检查可执行文件格式:

    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 

    确认应用为正确平台构建。

  9. 确保可执行文件有执行权限:

    chmod a+x /opt/plcnext/MyApp/ConsoleApp1 
  10. 运行应用:

    /opt/plcnext/MyApp/ConsoleApp1 Hello World! 

疑问/评论?

有任何问题或评论,请在 PLCnext Community 论坛提问。


工业技术

  1. 打造零摩擦用户体验:UX 设计蓝图与实战五原则
  2. 商业智能制胜策略:构建数据驱动成功的六大关键步骤
  3. 将阿里云连接器与 PLCnext 集成:分步指南
  4. PLCnext 集群管理:利用 Kubernetes 赋能工业自动化
  5. 利用 Jlink 优化 PLCnext Control 上的 Java 9+ 应用
  6. 避免冲突:多重公差如何影响成本与质量
  7. 利用铜钨推进纯电动汽车电阻点焊进阶应用
  8. VHDL 字符串列表创建:最佳实践与示例
  9. 构建VHDL自检测试平台实战指南
  10. 构建可靠VHDL计时器:从时钟周期计数到小时
  11. 构建VHDL时钟触发进程实战指南
  12. Java 对象数组创建:分步指南