首页 > 其他分享 >PLC结构化文本(ST)——继承(inheritance)

PLC结构化文本(ST)——继承(inheritance)

时间:2024-09-03 17:18:03浏览次数:12  
标签:END inheritance 继承 子类 ST FB PLC VAR

PLC Structured Text Object Oriented Programming

PLC结构化文本(ST)——继承(inheritance)

继承的概念

继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。
当创建一个类时,程序员不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类,这个新的类被称为派生类。---C#继承|菜鸟教程

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。---Java继承|菜鸟教程

继承特点

  • 1.不支持多重继承,但一个类可以实现多个接口。
  • 2.可以继承类的三大成员(字段、属性、方法等),除非这些成员被标记为Private(私有)。只能继承非私有成员。

Tips : 同样在结构化文本编程中,若属性(Property)方法(Method) 被标记为Private那么子类也将无法继承私有成员,该规则与C#和Java一致。

继承的格式

IEC61131-3增加了对面向对象编程的支持,继承关键字为EXTENDS

  • 1.类(FB)继承
    // 父类FB_Animal
    FUNCTION_BLOCK FB_Animal
    VAR_INPUT
    END_VAR
    VAR_OUTPUT
    END_VAR
    VAR
    END_VAR
    -------------------------
    // 子类FB_Dog
    FUNCTION_BLOCK FB_Dog EXTENDS FB_Animal
    VAR_INPUT
    END_VAR
    VAR_OUTPUT
    END_VAR
    VAR
    END_VAR
    
  • 2.接口继承
    // 父类接口“汽车”
    INTERFACE I_Car
    // 子类接口“比亚迪”
    INTERFACE I_BYD EXTENDS I_Car
    
  • 3.结构体继承
    TYPE ST_Fruits :
    STRUCT
        colour : STRING; // 颜色
        weight : REAL; // 重量
    END_STRUCT
    END_TYPE
    -------------------------
    // ST_Apple 继承 ST_Fruits,子类拥有三个成员:colour,weight,price
    TYPE ST_Apple EXTENDS ST_Fruits :
    STRUCT
        price : REAL; // 价格
    END_STRUCT
    END_TYPE
    

在C#或Java高级语言中,父类类型变量可以接收子类类型对象,此特性也适用于PLC ST。

PROGRAM MAIN
VAR
    animal : FB_Animal;
    dog : FB_Dog;
END_VAR
----------------------
	animal := dog;

Tips : 虽然编译没有错误也能正常运行,但是在程序初始化的时候已经创建了两个不同的对象 animaldog ,通过赋值“:=”只是将 animal 对象数据拷贝到 dog 对象,并没有将内存地址拷贝过去。

实际PLC OOP编程中,并不会采用此种方式接收子类对象,较为常见的作法是使用接口(INTERFACE)

总结

PLC ST OOP的继承与 C#Java 在定义和特点上基本一致,只是某些特性用法不同。在实际项目使用中需多加注意。

标签:END,inheritance,继承,子类,ST,FB,PLC,VAR
From: https://www.cnblogs.com/JSheng/p/18394974

相关文章

  • wireshark 过滤source和destination wireshark常用过滤 转载
    Wireshark常用过滤使用方法tcp.port==80&&(ip.dst==122.114.5.11||ip.src==122.114.5.11) 过滤源ip、目的ip。在wireshark的过滤规则框Filter中输入过滤条件。如查找目的地址为192.168.101.8的包,ip.dst==192.168.101.8;查找源地址为ip.src==1.1.1.1 端口过滤。如过滤80......
  • Stable Diffusion进阶篇,ComfyUI文字生成视频的一条龙服务(附完整工作流)
    有些小伙伴发现了一个问题,那就是根据图片生成出来的视频看着怪怪的:前半段看着好像还可以,但是后面部分的面部就开始崩坏了。而今天这篇笔记则是要简单了解一下一些进阶参数以及一些文生图生视频的内容,不然的话我担心内容太少字数都凑不够。我这里准备了ComfyUI文字生成......
  • Stable Diffusion教程,直接一键安装使用!(附SD整合包)
    ▼今天给大家分享的是**开源免费StableDiffusion教程无需魔法一键安装使用!**下载包里面有安装教程,大家如果有需要自行下载就可以了。StableDiffusion是基于LatentDiffusionModel(LDM)的,LDM是一款顶尖的文转图合成技术。在了解LDM的工作原理之前,让我们先看看什么是......
  • Unity面向对象补全计划 之 List<T>与class(非基础)
    C#&Unity面向对象补全计划泛型-CSDN博客关于List,其本质就是C#封装好的一个数组,是一个很好用的轮子,所以并不需要什么特别说明问题描述假设我们有一个表示学生的类 Student,每个学生有姓名和年龄两个属性。我们需要创建一个学生列表,并实现以下功能:添加学生到列表中打印......
  • 基于Vue的低代码,6K star的可视化表单设计器工具,多端适配
    FormCreate 是一款基于Vue的低代码可视化表单设计器工具,它通过数据驱动的方式实现了表单的动态渲染。用户仅需通过直观的界面即可快速构建出功能完备的表单。FormCreate 的主要特性包括:多端适配:支持PC和移动设备,内置丰富的插件和强大的功能。国际化:提供中文、英文、......
  • TapData 信创数据源 | 国产信创数据库 Vastbase 数据同步指南,加速国产化进程,推进自主
    随着国家对自主可控的日益重视,目前在各个行业和区域中面临越来越多的国产化,采用有自主知识产权的国产数据库正在成为主流。长期以来,作为拥有纯国产自研背景的TapData,自是非常重视对于更多国产信创数据库的数据连接器支持,旗下产品已陆续与阿里云、华为云、麒麟软件、优炫数据库、A......
  • 【北京迅为】《stm32mp157开发板嵌入式linux开发指南》第五章 Ubuntu使用apt-get下载
         iTOP-STM32MP157开发板是基于意法半导体STARM双Cortex-A7核加单Cortex-M4核的一款多核异构处理器。Cortex-A7内核提供对开源操作系统Linux的支持,借助Linux系统庞大而丰富的软件组件处理复杂应用。M4内核上运行对于实时性要求严格的应用。         开......
  • TS4+Vite+Vitest+Vitepress Vue3.3 自主打造媲美ElementPlus的组件库
    TS4+Vite+Vitest+VitepressVue3.3自主打造媲美ElementPlus的组件库这个问题看起来是想要创建一个类似ElementPlus的Vue组件库,并且使用TypeScript、Vite、Vitest和Vitepress进行开发。以下是一个简化的指南,用于创建一个自己的Vue组件库项目框架。安装必要的工具:npm......
  • WebStorm2024.2安装
    一、先进入官网进行下载:​​​​​​https://www.jetbrains.com/webstorm/download/#section=windows下载完成后进行安装,选择好安装位置,全部都勾选上,最后选择否,不重新启动即可。二、增加使用期限https://pan.baidu.com/s/1YdlD8tgSpw-kW_johk_ViA?pwd=e7pe进入到解压......
  • Adobe Illustrator (AI)2024完整版WIN/MAC中文软件免费下载安装和快捷键的使用
    目录一、软件概述1.1定义与用途1.2矢量与位图的区别1.3主要功能特点二、安装步骤2.1准备工作2.2安装过程2.3安装后设置三、常用快捷键3.1文件与视图3.2选择与编辑3.3绘图与变换一、软件概述1.1定义与用途AdobeAI是一款由AdobeSystems开发的专业......