PLC结构化文本(ST)——类(Class)

PLC Structured Text Object Oriented Programming

PLC结构化文本(ST)——类(Class)

一、什么是类

百度百科释义:

类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。
---类(编程术语)_百度百科

面向对象的基础概念同时也应用于结构化文本(ST):

  • 类:定义对象的蓝图,包括属性和方法。
  • 对象:类的实例。

二、ST类与C#或Java的区别

其它高级语言如C#或Java中的类采用Class来定义类,而在PLC ST中与之相对应的则是我们习以为常的 Function Block(FB) 中文简称:功能块

  • C#代码示例
using System;
namespace BoxApplication
{
    class Box
    {
       public double length;   // 长度
       public double breadth;  // 宽度
       public double height;   // 高度
    }
}
  • Java代码示例
public class MathUtils {
    public int add(int a, int b) {
        return a + b;
    }

    public double add(double a, double b) {
        return a + b;
    }
}
  • PLC ST 代码示例
FUNCTION_BLOCK Dog
VAR_INPUT 
END_VAR
VAR_OUTPUT
END_VAR
VAR
	size : INT;
	age : INT;
    colour : STRING;
END_VAR
--------
METHOD PUBLIC name
METHOD PUBLIC eat

明显可以看出PLC ST编程语言和高级语言写法上的区别。目前市面上大多PLC ST都遵循IEC61131标准,所以这很大程度上是使用不同平台标准造成的结果。但它们的编程核心以及基础语法上还是有很多相似的地方,所以在学习ST或者C#或者Java编程,一定要学会触类旁通

Tips:个人建议在使用结构化文本面向对象编程的时候,创建Function Block(FB)通常不需要在变量声明区VAR_INPUTVAR_OUTPUT下面声明变量,也可以直接删除VAR_INPUTVAR_OUTPUT

FUNCTION_BLOCK Dog
VAR
	size : INT;
	age : INT;
    colour : STRING;
END_VAR

三、类的实例(对象)

PLC ST中创建类的实例(对象)

  • 在PROGRAM(PRG)中创建对象
PROGRAM Animal
VAR
    dog:Dog;
END_VAR
---------
dog.eat(); // Dog 在吃食物
  • 在FUNCTION_BLOCK(FB)中创建对象
FUNCTION_BLOCK Animal
VAR
    dog:Dog;
END_VAR
---------
dog.eat(); // Dog 在吃食物

当然还有很多其它的地方都是可以创建对象(实例化),这里不再一一举例,重要的是能明白PLC ST OOP中类是什么?对象是什么?这些概念可能在工作学习中经常遇到只是在PLC中有自己常见的叫法,和高级语言不统一而已。

四、概念统一

学习结构化文本OOP最好与高级语言中的某些概念/叫法统一,那样更方便交流学习。

以上述PLC程序为例,VAR...END_VAR中间声明的变量习惯叫法:本地变量/局部变量,在高级语言中称为:字段。所以在之后的文章中作者会更加详细介绍以下几个概念:

  • 1.字段
  • 2.属性
  • 3.方法
  • 4.函数
  • 5.程序
  • 6.接口
  • 7.其它

五、总结

PLC ST中FB就是,实例化FB就是对象,FB是引用类型(以后会介绍),FB中Var...End_var区域声明的变量称为字段

posted @ 2024-09-02 17:42  J_Sheng  阅读(1826)  评论(0)    收藏  举报