首页 > 其他分享 >OpenPLC官方文档简单翻译(一)Get Started

OpenPLC官方文档简单翻译(一)Get Started

时间:2023-12-23 20:55:53浏览次数:47  
标签:Arduino OpenPLC Get Windows Started PLC Linux runtime

参考网址:https://autonomylogic.com/docs/openplc-overview/

网站更新时间:2022-10-05

1.1  OpenPLC Overview

OpenPLC是一个开源的基于软件的可编程逻辑控制器。OpenPLC是基于IEC 61131-3标准(PLCs的基本软件架构和编程语言的标准)。

(这里有个视频简单介绍OpenPLC的使用和功能。视频是说OpenPLC是一套生态,能够支持用户将一块小小的嵌入式开发板当作真的大块的PLC来用

OpenPLC项目由两个部分组成:Runtime和Editor。Runtime是一种适应性广泛的软件,可以运行小到微控制器(如Arduino)、达到云服务器的计算设备上。具体来说,Runtime负责执行Editor编辑完成的PLC程序。具体来说,OpenPLC的Runtime可以在以下平台运行:

  • Arduino Uno / Nano / Leonardo / Micro
  • Arduino Mega / Due
  • Arduino Nano Every / IoT / BLE
  • Arduino RB2040 Connect
  • Arduino Mkr / Zero / WiFi
  • Arduino Pro (Machine Control and EDGE)
  • Controllino Maxi / Automation / Mega / Mini
  •  Productivity Open P1AM
  • ESP8266 (nodemcu)
  • ESP32
  • Raspberry Pi 2 / 3 / 4
  • PiXtend
  • UniPi Industrial Platform
  • Neuron PLC
  • FreeWave Zumlink
  • FreeWave ZumIQ
  • Windows (generic target as a soft-PLC)
  • Linux (generic target as a soft-PLC)

OpenPLC的Editor是一个运行在自己的PC的软件,用来创建你自己的PLC程序。Editor能够支持定义在IEC61131-3标准的5种语言:Ladder Logic (LD), Function Block Diagram (FBD), Instruction List (IL), Structured Text (ST), and Sequential Function Chart (SFC).

1.2  Installing OpenPLC Editor

OpenPLC Editor能够运行在任何支持Python的平台上。目前有以下平台的官方安装器:

  • Windows
  • Linux(Debian, Ubuntu, Fedora and variants)

注:Linux是类Unix操作系统,包含很多发行版本,如Ubuntu等。不同发行版本都是基于Linux kernel的版本,但各个发行版本都会做相应的包装、优化和简化,但基本上内核版本不会有太大的差异。有关Linux的知识可以参见具体介绍Linux的书籍。

  • MacOS (currently in beta)

对于Editor官方支持的平台,可以直接从官网下载有关的安装包:

https://autonomylogic.com/

具体的安装方法见原文,在此省略。

1.3  在Windows上安装OpenPLC的runtime

OpenPLC的runtime是基于POSIX的。因此,OpenPLC的runtime在Windows上运行需要一个特殊的软件——Cygwin。Cygwin包含一个DLL (cygwin1.dll),它能够提供大量Windows支持的POSIX API。Cygwin还有大量的 GNU 和开源工具,这些工具提供的功能与 Linux 发行版类似。

注1:Cygwin是一个在windows平台上运行的类UNIX模拟环境,提供一个UNIX 模拟 DLL 以及在其上层构建的多种可以在 Linux 系统中找到的软件包,在 Windows XP SP3 以上的版本提供良好的支持。Cygwin主要由Red Hat及其下属社区负责维护。

注2:DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件。

注3:可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX)是IEEE为要在各种UNIX操作系统上运行软件而定义API的一系列互相关联的标准的总称。

注4:GNU是⼀类Unix操作系统,它是由多个应⽤程序、系统库、开发⼯具乃⾄游戏构成的程序集合。

       具体安装方式见原文,在此省略。

 

1.4  在Linux上安装OpenPLC的runtime

OpenPLC Runtime 可在各种 Linux 系统上运行,但在 Ubuntu 和 Raspbian 等基于 Debian 的发行版上运行效果更好。

注:Debian也被称为 Debian GNU/Linux,是一个由免费和开源软件组成的 Linux 发行版,由社区支持的 Debian 项目开发。它是最稳定、通用和流行的非商业 Linux 发行版之一。

具体安装方式见原文,在此省略。原文推荐使用git安装runtime。

 

1.5  在微控制器上安装OpenPLC的runtime

OpenPLC runtime的设计考虑到了可移植性,runtime的内核是用C语言编写的,因此可以移植到许多不同的硬件平台上。

  • 如果硬件平台安装了最常见的操作系统,如 Windows 和 Linux,有相应的现成的安装程序(见1.3,1.4),可将runtime当作应用程序部署
  • 对于没有完整操作系统的嵌入式系统,runtime必须作为 PLC 程序的一部分进行部署,即在editor上编译时就要把runtime也设置好。对于所有官方支持的板卡,OpenPLC的editor都能轻松完成这项任务。一旦准备好在兼容 Arduino 的板上部署 PLC 程序,只需点击顶部工具栏上的 Arduino 图标即可。

具体参见原文。

标签:Arduino,OpenPLC,Get,Windows,Started,PLC,Linux,runtime
From: https://www.cnblogs.com/Daemon17/p/17923601.html

相关文章

  • Java登陆第二十九天——Servlet继承关系,service和doGet的区别
    Servlet继承关系树:Servlet接口查看Servlet源码publicinterfaceServlet{voidinit(ServletConfigvar1)throwsServletException;ServletConfiggetServletConfig();voidservice(ServletRequestvar1,ServletResponsevar2)throwsServletException,I......
  • Three光源Target位置改变光照方向不变的问题及解决方法
    0x00楔子在Three.js中,光源的目标(target)是一种用于指定光源方向的重要元素。在聚光灯中和定向光(DirectionalLight)中都有用到。有时我们可能会遇到光源目标位置更新后,但光照方向未正确更新的问题。这个问题并不复杂,但是有时候出现了,往往会想不到原因。0x01原因出现这个问题......
  • getx路由动画
    getx默认动画配置GetMaterialApp(enableLog:true,defaultTransition:Transition.fade,//修改这里opaqueRoute:Get.isOpaqueRouteDefault,popGesture:Get.isPopGestureEnable,transitionDuration:Get.defaultDurationTransition,defaultGlobalState:Get.d......
  • nodejs-练手项目中get post需求
    这段时间查看微信小程序,看着上面的好多的接口不能用,就想着弄个小接口先用这,顺便复习一下node首先我们要有必要的npm,node,等基本环境条件基本的代码书写:/*express是node中的服务器软件通过express可以快速的在node中搭建一个web服务器-使用步骤:1.......
  • QTreeWidget使用小案例
    一、概述使用QTreeWidget制作一个树形菜单。示例图: 二、代码示例#include"TreeWidgetExampleWindow.h"TreeWidgetExampleWindow::TreeWidgetExampleWindow(QWidget*parent):QWidget(parent){this->setWindowTitle("TreeWidget组件");QVBoxLayout*......
  • QTabWidget小案例
    一、概述编写一个QTabWidget小案例,示例图:  二、代码示例#include"TabWidgetExampleWindow.h"TabWidgetExampleWindow::TabWidgetExampleWindow(QWidget*parent):QWidget(parent){this->setWindowTitle("TabLayout布局");QVBoxLayout*vLayo......
  • .NETCore Nuget 发布包含静态文件 content file
    .NETCore在.csproj引用资源中标记pack配置<pack>true</pack>1例如 <ItemGroup> <ContentInclude="dotnetty.linux.pfx"> <pack>true</pack> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <......
  • winget install cuda (Nvidia.CUDA)
    PSC:\Users\Administrator>wingetsearchcuda名称ID版本匹配源------------------------------------------------------------CudaLaunch9NBLGGH40FCJUnknownmsstoreMCXStudiocoti.mcxstudi......
  • 242-InetAddress.getLocalHost().getHostName() took 20021 milliseconds to respond
    一台windows服务器,要部署jar,启动成功,却无法正常请求。会报错:InetAddress.getLocalHost().getHostName()took20021millisecondstorespond.Pleaseverifyyournetworkconfiguration.经查,该服务器启动了一个其他服务,该服务占用了所有的网络请求带宽,导致网络不通。找到服......
  • Python接口测试get请求过程详解
    python做接口测试用到的是requests模块,首先要导入requests库,pipinstallrequests1、get直接请求方式以豆瓣网为例:url='https://read.douban.com/'respose=requests.get(url=url)#status_code为返回的状态码print(respose.status_code)#text为返回的数据print(res......