网站首页 > 开源技术 正文
我常想,为什么二十多年来,我还要坚持编程?从最开始的PLC,到HMI,再到SCADA和MES?我就是想把面向管理的IT和面向控制的OT融合贯通,以浅显易懂的语言来诠释什么是编程之道。就好像李小龙在他的著作《截拳道之道》中总结的攻击五法一样。从事编程二十多年来,我接触过不少行业,看到过很多项目,了解过很多控制需求。我把我自己的经验、感悟汇总起来,再结合ISA88标准总结了PLC-HMI编程的三种框架。这三种框架可以说几乎涵盖了目前工业控制领域中99.99%的场景。李小龙说格斗的灵魂就是近身与发力。一样地,PLC编程的灵魂就是封装与调度。明白了这一点,你做任何项目都不会感到迷茫。
DPS框架
封装是在对控制对象进行抽象的基础上,使用面向对象的思想将其涉及到的数据和行为组合到一起。在C#中它是一个Class。在PLC中它是个FunctionBlock(西门子系列)。封装的目的是隐藏对象的逻辑实现细节,并限制对这些内部数据的直接访问,只通过公共接口暴露必要的操作。不过在西门子PLC中,它的FB还不支持对内部数据的访问控制,不过这并不妨碍我们用面向对象的思想来进行封装,并实现我们需要的功能。封装好的模块就好比一块块积木,我们可以用它们来搭建我们想要的各种建筑物。
DPS框架是DCM+SEQ的缩写。DCM是我们框架体系中比较底层的封装。DCM全称Device Control Module。它是对工业生产中最基本的单体设备的抽象和封装,比如气缸、变送器、阀门这些。
SEQ是顺序控制器,它的功能是根据工艺要求将DCM按照既定的顺序进行动作,比如开闭、启停和调节等。以满足工业生产的控制要求。
DPS框架是最基础,同时也是最为常用的框架。对于大部分工业生产来说,DPS框架就可以满足其要求。
EPS框架
EPS框架是ECM+SEQ或者ECM+SMC(状态机)的缩写,它有两种调度方式,顺控和状态机。ECM是我们框架体系中比较高级一点的封装。ECM全称Equipment Control Module。它是对工业生产中具备独立功能的工序单元的抽象和封装。比如一个简单的压力调节单元。这个单元一般包含有一个压力变送器,一台或者更多的泵或者阀等。它们组成了具有独立功能的工序单元。这些工序单元的动作由SEQ/SMC或者按照工艺要求来进行调度。
和DPS框架相比,EPS框架是比较高级一点的框架。但是它的应用场景没有DPS那么广泛。
FCS柔性控制框架
柔性控制框架是三种框架中最复杂的框架。它专门针对那些在生产中需要自由调整控制工艺的场景。柔性控制框架的核心是配方,框架的动作是由配方来驱动的。生产人员可以通过修改配方来实现不同的控制逻辑。柔性控制框架用到了DCM和ECM两级封装,以及Step和Unit两级调度。
在柔性控制框架中,各个独立工序单元ECM是最小控制单元。按照ISA88标准它是被包裹在Phase中,当然你也可以把Phase封装成ECM。这些Phase由Step进行调度。一个Step中可能包含多个Phase。同样地,一个Phase也可能被不同的Step调用。这种自由灵活的组合就是为了满足柔性的生产控制。大致可以用下面这张图来表示它们之间的关系。
FCS框架的使用场景很少,只在个别行业有需求。
总结
上述三种框架应该可以说涵盖了绝大部分工业控制领域中的应用场景。了解每种框架的优缺点和应用场景你在面向任何控制需求时都能游刃有余。如前所述,PLC-HMI编程的灵魂就是封装与调度。从这三种框架也能看出,它们其实就是建立在封装和调度之上的。明白这一点,你就明白了PLC-HMI编程之道。
猜你喜欢
- 2025-08-05 玩转西门子PLC?老王给你划重点!
- 2025-08-05 为什么学 ST?从 PLC 编程语言体系看懂 ST 的价值
- 2025-08-05 学习plc没设备咋入门?
- 2025-08-05 工业机器人想玩得6,就要懂些编程基础:介绍信号输入和输出
- 2025-08-05 炸裂!字节Coze开源,普通人5分钟变身AI大神?保姆级教程来了!
- 2025-08-05 C语言编程入门
- 2025-08-05 虚幻引擎入行,从零基础到上手需要几步?
- 2025-08-05 还没明白单片机的原理就去学编程肯定不行,31页内容介绍单片机
- 2025-08-05 C#编程基础(看这一篇就够了)
- 2025-08-05 仓颉编程语言基础-面向对象编程-类
你 发表评论:
欢迎- 08-05玩转西门子PLC?老王给你划重点!
- 08-05为什么学 ST?从 PLC 编程语言体系看懂 ST 的价值
- 08-05学习plc没设备咋入门?
- 08-05工业机器人想玩得6,就要懂些编程基础:介绍信号输入和输出
- 08-05炸裂!字节Coze开源,普通人5分钟变身AI大神?保姆级教程来了!
- 08-05C语言编程入门
- 08-05虚幻引擎入行,从零基础到上手需要几步?
- 08-05PLC-HMI编程之道
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)