typescript多态实例-TIA Portal 面向对象编程入门

软件工程从面向过程编程到面向对象编程(OOP:Object-OrientedProgramming)的发展被认为是编程方法论的一次实质性革命,是编程方法论的一个重要里程碑。 虽然今天仍有少数人批评面向对象的编程思想,但我们看到的是面向对象的技术越来越好,无论是前端语言(JAVA、C#)还是后端语言​​(JavaScript、TypeScript),没有一个不是完全支持面向对象技术的。

1、传统PLC编程方法

高校的PLC教材基本采用50、60年前的编程理念,将PLC定位为传统熔丝控制的替代者typescript多态实例,用软器件、寄存器等古老落后的概念来教授这个日新月异的现代工业。 控制编程技术。 因此typescript多态实例,今天大多数自动化工程师仍然使用右侧所示的编程技术。

图1 传统PLC编程

随意滥用全局变量和规划不周的程序设计导致程序复用性差、开发周期长、bug多、调试困难。

2、面向过程是必要的过程吗?

相信很多人都会有疑问。 PLC编程不就是从这里开始的吗? 其实初学者没有必要用电气思维来编写PLC程序。 虽然我们以前都经历过这个过程,但这并不意味着有必要。 我们完全可以跳过这个过程,直接用面向对象的思想来编译PLC程序。 一旦您熟悉了面向对象编程,我相信您将永远不会乐意回到面向过程的方法。

3、PLC支持面向对象编程吗?

面向对象编程的三大特点是封装性、继承性和多态性。 以TIA Portal为例,虽然对这三个特性的支持并不彻底(例如很难严格禁止访问实例的私有变量),但这并不妨碍我们在S7-1200中使用面向对象编程/1500。

简而言之,S7-1200/1500中的面向对象编程就是我们将控制对象抽象出来,然后封装成FB。 当我们调用这个FB时,我们会要求分配一个后台数据块,这个过程就是对象的实例化。 后台数据块的英文是Instance Data Block,其中Instance是实例的意思。

typescript多态实例

4.如何进行面向对象编程

在PLC中,面向对象编程最重要的一点就是对控制对象进行抽象。 一个好的控制对象(FB)需要不断的打磨和建立。 千里之行,始于足下。 首先我们从最基本的控制功能的实现开始。 那么首先要弄清楚我们的FB需要什么信号? 会输出什么命令? 下图是我们设计的一个简单电机控制对象的socket。 其中,HMI插座采用状态控制字的形式,一方面简化了HMI的配置,另一方面增加了对点数的需求,节省了软件授权的成本。

然后我们将图 1 中的全局变量替换为套接字变量。

typescript多态实例

如果你熟悉SCL,也可以使用下面的写法。 虽然我们建议使用 SCL,但这并不意味着直方图不好。 对于逻辑控制来说,梯形图具有无可比拟的优势。 面向对象的核心在于它的三个特性,而语言只是一种方式。

设备对象在整个过程中往往需要与其他设备进行联动,所以我们要向外界提供设备状态,这实际上就是对象的属性。

对象属性不仅需要向外输出,还需要通过状态控制字SCW提供给上位机。

我们可以在程序中实例化这个对象。 联动时,可以直接访问对象属性,无需使用I/O点,其优点是不言而喻的。

5. 高级编程

面向组件编程是基于面向对象编程技术的,但它也指向分布式。 在中级编程语言中,面向对象和面向组件是截然不同的。 在PLC中,它们并没有太大的区别,我们倾向于将其称为面向组件的编程。 面向接口编程多用于前端分离的开发。 对于一个比较大的自动化项目,有时PLC程序和上位机是由不同的团队开发的。 过去,PLC团队通常将变量表提供给上位机团队,但这些方法效率很低,调试工作量大,项目成本不高。 而且,现在大多数主机都支持面板技术,HMI也需要封装设备对象。 只有面向接口的编程才能利用当今的 HMI 技术。

HwLib(惠兰博)技术团队专注于高端自动化技术。 如果您对我们的技术教程感兴趣,可以在Xbao上搜索商店“hwlib”或“慧兰博”

更多关于HwLib(惠兰博)技术团队的信息:

HwLib(惠兰博)技术团队技术信息:

提取码:63rt

——————————————

版权声明:本文为CSDN博主“HwLib慧兰博”原创文章,遵循CC 4.0 BY-SA版权合同。 转载请附上原文出处链接及本声明。

原文链接: