当前位置:首页 > 软件设计 > 正文内容

PLC结构化文本(ST)——结构函数(FB_init)

邻居的猫1个月前 (12-09)软件设计2098

PLC Structured Text Object Oriented Programming

PLC结构化文本(ST)——结构函数(FB_init)

结构函数的效果

简略来说,结构函数是一种办法,用来初始化类的实例也便是目标。类在创立时会有一个默许的结构函数,假如自定义一个结构函数,那么默许结构函数失效。

与高档言语的差异

高档言语C#、Java和C++都有结构函数这个概念,那么IEC61131-3有没有这个特别的办法呢?当然是有的,只不过ST的结构函数与高档言语稍有不同。

  • 1.高档言语比方C#Java,它们的结构函数办法名与类名相同,而在IEC61131-3 ST中所有PRGFB的结构函数名均为FB_init
  • 2.C#Java的默许结构函数是无参的,PLC ST中的默许结构函数有两个参数。
METHOD FB_init : BOOL
VAR_INPUT
	bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
	bInCopyCode : BOOL;  // if TRUE, the instance afterwards gets moved into the copy code (online change)
END_VAR

增加结构函数

CODESYS源生渠道或二次开发渠道为例:

  • 1.在PRG或许FB程序块上右键--->增加--->Method--->称号(右侧下拉框)--->挑选FB_init--->Open。
  • 2.在PRG或许FB程序块上右键--->增加--->Method--->称号--->直接输入FB_init--->Open。
    上述两种办法均能够,个人主张挑选榜首种办法较好,避免编译器抽风

运用结构函数

创立Dog类

FUNCTION_BLOCK FB_Dog
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
	name : STRING;
END_VAR

自定义结构函数

METHOD FB_init : BOOL
VAR_INPUT
	bInitRetains : BOOL; // if TRUE, the retain variables are initialized (warm start / cold start)
	bInCopyCode : BOOL;  // if TRUE, the instance afterwards gets moved into the copy code (online change)
	sname	: STRING; // 初始化姓名
END_VAR
----------------------------------------------
THIS^.name := sname;

主程序调用

PROGRAM MAIN
VAR
	dog : FB_Dog('laifu'); // 初始化dog name 来福
END_VAR

激活下载,程序初始化时主动调用(隐式调用)FB_init,无需手动调用(显式调用)。
自定义结构函数中增加了一个参数,所以在声明FB变量时有必要给出对应参数,不然编译不通过。
体系只要在每次初始化FB时主动调用一次,后续周期不再持续调用履行。

Tips : FB_init能够隐式调用也能够显式调用,但是在显式调用时需求补全输入参数。

dog.FB_init(bInCopyCode := TRUE,bInitRetains :=TRUE ,sname := 'laifu');

因而,一般在变量声明区初始化输入参数,很少直接调用结构函数。

总结

结构函数首要用来初始化目标,一般不会将它暴露在PLC扫描周期内循环履行,要是这样与一般Method有什么差异。主张运用之前先去学习高档言语C#Java的运用办法,宁可不必也不乱用

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=310

分享给朋友:

“PLC结构化文本(ST)——结构函数(FB_init)” 的相关文章

读软件设计的要素03概念的组合

读软件设计的要素03概念的组合

1. 概念的组合 1.1. 概念不像程序那样,能够用较大的包括较小的 1.1.1. 每个概念对用户来说都是相等的,软件或体系便是一组串联运转的概念组合 1.2. 概念是经过操作来同步组合的 1.2.1. 同步并不增加新的概念操作,但会束缚已有的操作,然后消除一些独立概念或许会呈现的操作序列 1.3...

面向对象特性

面向对象特性

面向对象编程(ObjectOriented Programming,简称OOP)是一种编程范式,它通过对象和类来组织代码。面向对象编程具有以下主要特性:1. 封装(Encapsulation): 封装是将数据(属性)和行为(方法)捆绑在一起,形成一个对象。这样可以隐藏对象的内部实现细节,只暴露...

面向对象特点,深入解析面向对象的特点

面向对象编程(ObjectOriented Programming,简称OOP)是一种编程范式,它通过对象和类来组织代码。面向对象编程具有以下主要特点:1. 封装(Encapsulation):封装是指将对象的属性(数据)和行为(方法)封装在一个单元内,通过接口与外部进行交互。这样可以隐藏对象的内部...

软件设计师视频教程,助你轻松掌握软件设计技能

软件设计师视频教程,助你轻松掌握软件设计技能

1. Bilibili: 2. 网易公开课: qwe2 3. 其他资源: 这些资源涵盖了从基础到高级的软件设计师考试内容,你可以根据自己的需求选择合适的视频进行学习。希望这些资源对你有所帮助!软件设计师视频教程:...

软件设计师考试真题,掌握核心考点,提升应试能力

软件设计师考试真题,掌握核心考点,提升应试能力

1. CSDN博客: 2021年上半年软考软件设计师真题完整版:包含2004~2011年以及2014~2016年的真题,并附有答案。 2023软件设计师上半年真题解析:涵盖上午和下午的试题及解析。2. 信管网: 提供从2003年至今的软件设计师考试真题,包括综合知识和案例分析两部分...

组合设计模式,什么是组合设计模式?

组合设计模式,什么是组合设计模式?

组合设计模式(Composite Design Pattern)是一种结构型设计模式,用于表示对象的部分整体层次结构。组合模式允许用户将对象组合成树形结构来表示“部分整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式的关键点包括:1. 组件抽象:定义了所有组件的公共接口,无论是...