如何构建一个基于IEC61499 的“云化PLC“

article/2025/10/31 16:16:09

前不久,国内一些单位联合正式发布了全球首个广域云化PLC(可编程控制器)技术试验成果.一时间"云化PLC "又进入了人们的眼帘. 我不来评价云化PLC 具有的实际意义,只是有许多人想了解如何构建这种云化PLC .在本博文中,我介绍构建这种基于IEC61499 的云化PLC. 

   IEC 61499 是分布式控制和监控的系统,所以这个标准原生地支持分布式控制系统.而基于互联网技术的云服务也是一种分布式系统.因此在互联网上构建一个所谓的云化PLC 十分地简单.

两种IEC61499 技术平台

我推荐两种IEC61499 技术平台:

 开源4diac 技术构建云化PLC

4diac 是德国开发的著名的开源IEC61149 系统,它包括了开发环境4DIAC IDE和4DIAC Forte 运行时.官网上提供了可以在X86 windows 和linux 上运行的Forte 运行时.

   由于4DIAC 是一个开源的系统,在它的官网上有Forte 的源代码,可以编译出在Arm 平台上运行的Forte 运行时,所有Forte 几乎可以在任何linux 平台上运行,比如树莓PI 上运行

 施耐德EAE 2.1 和M251 PLC 

施耐德公司推出了产品化的IEC61499 平台 ,他们称为 EAE2.0.它包括了开发环境,在windows,linux 运行的运行时soft dPAC,也提供可一个Arm 版本的 soft dPAC ,能够在树莓PI 上运行.

除此以外,施耐德还提供了基于EAE 的硬件产品,例如M251 PLC.

云端的构建

     云平台的搭建与大多数云平台的搭建差不多,到阿里云,华为云或者电信云租用一个空间,运行ubuntu Linux 系统.当然用华为的欧拉也可以. 在Linux平台上安装一个容器管理系统docker.在docker 容器中可以安装各种应用.

   无论是开源4diac 或者施耐德EAE 2.1 ,都提供了软件化IEC61499运行时.4diac 称为Forte 而施耐德EAE 称为soft dPAC.它们无需编译,直接可以在X86 的容器中运行.

建立IEC61499 云化PLC 应用的方法.

4diac 的云化PLC

 施耐德EAE 的云化PLC

 具体的方法

确定 PLC,PC,以及云端服务器的IP 地址

在开发环境中开发一个功能块应用 , 下载到云端和PLC,树莓PI 中。

网络速度,时延等等都是电信网决定的。

结束语

构建一个云化PLC 没有太大问题,唯一的问题是神问题--干什么用呢?


http://chatgpt.dhexx.cn/article/pA0NpxVO.shtml

相关文章

云化Web IDE,在线开发新模式

目录 前言 一、初识云IDE 二、CSDN 云IDE 1、如何使用云IDE 2、使用云IDE 三、云IDE的使用感受 四、总结 前言 工欲善其事必先利其器,作为程序员,我们在编写代码的时候,一定会选用一款得心应手的工具。就像行走江湖的侠客,手…

企业全面云化的时代——云数据库的未来

云数据库 前言传统数据库的不足云原生数据库的优点1.动态可扩展性2.高可用性3.较低的建设成本4.轻松部署5.高可靠性 云原生数据库容器化什么是容器化?为什么需要使用容器?数据库适合容器化吗?1.数据安全性2.性能问题3.资源隔离 亚马逊云原生数…

SASE 本质探究(1):什么是云化

来源 | 好奇瞅瞅 责编 | 寇雪芹 头图 | 下载于视觉中国 为什么先务虚 说明一下,为什么要写这么“务虚”的一篇: SASE的本质是“面向边缘时代的网络和安全的综合云化”,这里有绕不开几个问题:什么是“云化”?什么是“网…

云化架构下,数据库架构的演进

如今,大型企业如金融企业和银行等,在下一代的微服务架构转型要求下,需要基础软件和数据平台能够实现原生的云化,以满足微服务架构的需求。 微服务,是一种面向服务的,有特定边界的松散耦合的架构。 主要特点…

全云化架构(一):概述

一、应用框架构特点 全云化应用平台是一个“聚合、开放”的基础架构平台,依托主流技术框架,高性能、可伸缩、高可用、可扩展,学习成本低,具有以下几个突出优点: 1、全云化架构 设计之初充分调研云原生应用特点&…

getString()和toString() 的区别

刚开始写代码的时候对这两个方法有混淆,现在咱们就来屡屡, getString() :这个适用取数据用的,前台传过来的和数据库查出来的都可以,要是单独的一个字符串就可以往里面赋值 比如前端传过来一个 ID,经过解析完成后&…

【字符串】gets函数详解

在前面从键盘输入字符串是使用 scanf 和 %s。其实还有更简单的方法&#xff0c;即使用 gets() 函数。该函数的原型为&#xff1a; 1 #include <stdio.h> 2 char *gets(char *str); 这个函数很简单&#xff0c;只有一个参数。参数类型为char*型&#xff0c;即str可以是一个…

C#-String.ToString()用法

常用格式举例&#xff1a; &#xff08;1&#xff09; int i12345; this.textBox1.Texti.ToString(); //结果 12345&#xff08;this指当前对象&#xff0c;或叫当前类的实例&#xff09; this.textBox2.Texti.ToString(“d8”); //结果 00012345 &#xff08;2&#xff09; in…

String和get

String和get 在ch4的作业中暴露出了我不懂的一些问题&#xff0c;主要是和String有关的定义和头文件以及和get有关的函数。 String 在C中如果想定义字符串型&#xff0c;即String a&#xff1b;则需要用到头文件<string>或<string.h> 有些人会问&#xff0c;这两个…

String类的getChars的用法

str.getChars(0,str.length(),ch,0); 参数1&#xff1a; 从0索引开始 参数2&#xff1a;复制指定的长度 参数3&#xff1a;目标数组 参数4&#xff1a;从目标数组的指定索引位置粘贴 进入看一下源码&#xff1a; public static void arraycopy(Object src, int srcPos, Obj…

关于Java里面的String.getBytes()方法

关于Java里面的String.getBytes()方法 Java里面的String类型的编码方式是Unicode&#xff0c;根据你项目字符串的编码方式无关&#xff0c;这是写死的。但是如果你jvm平台使用的是GBK编码方式&#xff0c;那么你通过string里面的getBytes()方式获取的字符的字节是2。如果使用的…

字符串输入函数gets()

在前面讲过键盘输入函数 scanf 和 %s.其实还有更简单的方法,就是使用 gets() 函数,该函数的原型为: #include<stdio.h> char *gets(char *str);这个函数很简单,只有一个参数,参数类型为char *型,即 str 可以是一个字符指针变量名,也可以是一个字符数组。 gets()…

getchar()和gets()

因为最近被getchar弄的很烦所以今天中午好好梳理一下 getchar() 从缓冲区读走一个字符&#xff0c;相当于清除缓冲区 前面的scanf()在读取输入时会在缓冲区中留下一个字符\n&#xff08;输入完s[i]的值后按回车键所致&#xff09;&#xff0c;所以如果不在此加一个 getcha…

getAsString()和toString()区别

getAsString源码 toString()返回的是JsonElement的字符串&#xff0c;所有是带双引号的&#xff0c;eg: “hello” getAsString()返回的是JsonElement的字符串值&#xff0c;所以不带双引号&#xff0c;eg:hello

String类中getBytes()方法的使用

String是我们常用到的字符串类&#xff0c;今天我学习的时候需要将字符串转换为一个一个字节储存起来&#xff0c;查看String类的API发现其中有一个getBytes()方法&#xff0c;那么这个具体是怎么使用的呢&#xff1f; 先上测试结果吧 。 这里我们首先声明了一个byte类型的数组…

Resources中getString方法解析

在Android开发中&#xff0c;我们的字符串一般都是统一写在项目的res/values/strings.xml中&#xff0c;如果我们需要得到指定的字符串&#xff0c;一般使用getString方法来得到。 其实getString特别的有用&#xff0c;而且用法也很灵活&#xff0c;下面我们就来说说这个方法。…

c语言 编写getString函数(运用malloc函数,不使用数组)

定义一个返回值为char*类型的函数 定义一个char类型字符&#xff08;传入&#xff09;用malloc函数在堆区开辟一个新的空间存字符串定义一个char*类型指针标记字符串首地址定义一个char*类型字符串为空定义一个int类型变量计数while循环&#xff0c;当传入字符c不等于‘\n’时…

JavaGUI开发实践:登录界面模拟(连接数据库)

文章目录 1. 实现功能概要2. 功能界面概览3. 代码详解&#xff08;1&#xff09;选择身份登录方法实现&#xff08;2&#xff09;登录按钮的响应 4. 全部代码示例5. 包的存放位置6. 项目全部代码下载地址&#xff1a;JavaGUI超市进销存管理系统 所有代码7. Java GUI其他相关博客…

JavaGUI设计-计算器

.利用GUI程序设计方法实现简单计算器的设计。运行效果可设计为如下界面&#xff0c;也可设计为windows系统中的计算器样式。 &#xff08;此程序为整数计算&#xff09; 1 基础页面设计 2 流布局器使用 3 单选按钮注册监听事件 4 文本框中内容获取&#xff0c;数据覆盖 除法 …

Java之GUI

&#xff08;本文为博主JAVA课程学习总结&#xff09; GUI —— 图形化用户界面 JFC&#xff08;Java Foundation Classed&#xff09;是开发GUI的API集 JFC包括&#xff1a;AWT&#xff08;Abstract Window Toolkit抽象窗口工具包&#xff09;、Swing组件&#xff08;建立在…