查看: 3439|回复: 30
收起左侧

[资料分享] 标准程序架构说明1主程序及程序分类

dianqizai 2022-8-20 13:41:29 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
[color=rgba(0, 0, 0, 0.3)]以下文章来源于壶琰棠[color=rgba(0, 0, 0, 0.3)] [color=rgba(0, 0, 0, 0.3)],作者壶琰棠主

[color=rgba(0, 0, 0, 0.3)]
壶琰棠.
致力于推动标准化进程!



    主程序,也称主函数,在许多命令式程序设计语言里,主函数(main function)是程序开始运行的地方,通常来说一个PLC系统只有一个主程序。
    Main主程序是整个设备的系统程序,是设备控制的入口,在Portal中,可以建立多个OB主程序,PLC运行的时候,将按照这些主程序的编号由小到大依次执行。

1.1.   主程序(OB1)说明
1660967602020.png
图1‑1: PLC控制程序组成示意图
    整个标准框架如上图所示,作为设备程序的主入口OB1主要包括3个部分:系统信息处理、Event处理程序、设备系统控制程序。
    l 系统信息处理程序IDB_SystemInfo
    系统信息处理程序IDB_SystemInfo是功能块FB_SyetemInfo的实例化背景数据块。该功能块主要用于收集CPU的时钟信息,包括CPU的时钟脉冲、CPU的时间信息以及OB1的当前循环时间等。
    该程序的信息是整个PLC运行的常用数据,用于其他程序和算法的逻辑处理。
        该内容即西门子PLC系统功能程序说明的内容,在标准架构中的程序块名字为FB_SystemInfo,实例化数据块的名字为IDB_SystemInfo。
lEvent处理程序FC_Event
    设备过程信息分为警告(Warning)和报警(Alarm),将设备的状态(Status)信息和过程信息统称为事件(Event)。FC_Event主要功能就是对所有设备的事件(Event)进行集中管理和输出,该函数没有数据接口,其详细内容后面Event管理篇章中会详细介绍。
l设备系统控制程序IDB_System
    设备系统控制程序IDB_System是功能块FB_Syetem的实例化背景数据块,是所有设备控制程序的入口,该功能块中的内容包括以下几个部分:
Ø FC_Electrical
    电气设计程序FC_Electrical,用于监视所有电气设备的程序。
Ø FB_UNXXMain
    实际设备程序FB_UNXXMain,实例化数据块为IDB_UNXXMain。基于工艺需求,此处有至少一个UN的程序。FB_UNXXMain下一级的程序就都是EM层级的设备程序的调用,每一台设备对应一种类型的FB块,其对应的实例化数据块的名称为IDB_UNXX_EMXX,其中EMXX中的XX就是EM的编号。
Ø FC_Command
    控制指令程序FC_Command,是将所有按钮的信号和HMI的信号集中处理然后输出到需要的数据块中。
模式状态机的标准架构中的输出数据块为LPMLV30_GlobalData中的Control的变量中。
1660967686417.png
图1‑2: 模式状态机的控制指令输出示意图
    模式控制机的标准架构中的输出数据块为Command中的变量。
1660967799258.png
图1‑3 : 模式控制机的控制指令输出示意图
    这些不同就是由于模式状态和模式控制的两种不同方式,这也是标准架构程序中唯一不同的地方,除此之外,两种标准架构的程序都是一样的,详细细节描述后续的Operation的部分会详细描述。
Ø 控制管理程序
    模式状态机机的标准架构中的控制程序为FB_ModeStateManager,实例化数据块为IDB_ModeStateManager。
    FB_ModeStateManager即程序块LPMLV30_UnitModeStateManager,是PackML中的模式状态管理程序,在标准架构中将名字更改为FB_ModeStateManager,目的是使所有FB块的名字的规则是一致的。
    模式控制机的标准架构中的控制程序为FB_ModeControlManager,实例化数据块为IDB_ModeControlManager。

1.2.   程序归类
1660967993867.png
图1‑4 :程序文件夹示意图
    程序按照不同类别,分别放在5个文件夹中:Equipment、Function、FunctionBlock、GlobalDataBlock、SystemInfo。

1.2.1.      Equipment文件夹
1660968023460.png
图1‑5: Equipment文件夹示意图
    放置在该文件夹中的程序都是和设备相关的实例化数据块(背景数据块),文件夹中包括4个子文件夹,分别为Cabinet(控制柜)、Control(控制)、System(系统)、UNXX(UNXX的设备程序)。
Ø Cabinet子文件夹
    该文件夹中的程序是电气控制柜的程序(FB_CabinetXXX)的实例化数据块(IDB_CabinetXXX)。
所有UN05中的EM设备程序的实例化背景数据块也都被归类在该子文件夹。
Ø Control子文件夹
    该文件夹中的程序为模式和控制管理程序的实例化数据块。
    模式状态机的标准架构中的程序为模式状态管理程序(FB_ModeStateManager)的实例化数据块(IDB_ModeStateManager)。
    模式控制机的标准架构中的程序为模式控制管理程序(FB_ModeControlManager)的实例化数据块(IDB_ModeControlManager)。
1660973590154.png
图1‑6: 模式控制机实例化数据块示意图
Ø System子文件夹
    该文件夹中的程序为系统控制程序(FB_System)的实例化数据块(IDB_System)。
Ø UNXX子文件夹
    该文件夹中的程序有UN01设备主程序(FB_UN01Main)的实例化数据块(IDB_ UN01Main)。
    所有UNXX中的EM设备程序的实例化背景数据块也都被归类在该子文件夹,既然UNXX就意味着可以有多个UN,这主要基于工艺以及设备分层后的UN的数量。

1.2.2.      Function文件夹
1660973618586.png
图1‑7: Function文件夹示意图
    放置在该文件夹中的程序都是一些算法函数,主要是频率输出算法(FC_Frequency)、控制指令程序(FC_Command)。文件夹中包括2个子文件夹Electrical和Event。
Ø Electrical
    该文件夹中的程序为电气设备程序,后续电气设计程序章节会说明,主要用于检查设备是否准备好,是设备运行的前提条件。
Ø Event子文件夹
    该文件夹中的程序为Event处理程序的算法,后续Event章节会说明,和设备程序无关,也可以理解为只需要明白Event的算法过程而不需要细看每一个函数程序。

1.2.3.        FunctionBlock文件夹
1660973785189.png
图1‑8: FunctionBlock文件夹示意图
    所有设备类的程序都归类在该文件夹,由于子文件夹都只有一个FB块,所以下面依次描述。
    Cabinet子文件夹中归类的程序FB_CabinetXXX是电气控制柜的程序,其中XXX是电气控制柜的编码,后续电气设计程序章节会说明,主要用于检查设备是否准备好,是设备运行的前提条件。
    CM子文件夹中归类的程序都是CM类设备程序,图中的FB_CM_DigitalSensor是一个CM级别的程序案例,是指数字量传感器的程序。
    EM子文件夹中归类的程序都是EM类设备程序,FB_EM_Mode是面向对象的模型程序,该FB块的程序除了工艺的程序外,其他部分(如下图中的部分)的程序都已经是测试成熟的,UN/EM层级的程序块,都是基于该程序块再加上相关工艺而来。
1660973829813.png
图1‑9: 设备程序模型示意图
    CM和EM是设备的分层,每一个设备或者一个行业中,CM和EM都可以按照原则分门别类,然后用FB_CM_XXX和FB_EM_XXX在PLC中表达出来。
    EM程序中可以调用CM程序,这是基于二者的层级关系决定的,所以必然存在CM是不可能调用EM程序,这也是二者层级关系决定的。
    这样EM和CM的程序形成后,每一台设备就可以对应一个EM程序的类型,程序中对应设备的程序就是该FB块的实例化过程而已。
    下图即使某个样机中的CM和EM的程序示例,后续关于EM程序模型的内容(包括CM)会详细说明。
1660973868339.png
图1‑10: EM/CM实际案例应用示意图

1.2.4.      GlobalDataBlock文件夹
1660973900480.png
图1‑11: GlobalDataBlock文件夹(模式状态标准架构)示意图
    放置在该文件夹中的程序都是全局数据块,文件夹中包括2个子文件夹,分别为Configuration、Index。
    GlobalDataBlock文件夹中所有的数据块包括图1‑9设备程序模型中的各个部分,LPMLV30_GlobalData是模式状态机标准架构中的Operation,而模式控制机标准架构中的Operation是Command(如下图)。
1660973925435.png
图1‑12: GlobalDataBlock文件夹(模式控制标准架构)示意图
    其他部分在两种标准架构中的内容都是一样的,具体的程序说明见后续对应的章节。

1.2.5.      SystemInfo文件夹
1660974063688.png
图1‑13: SystemInfo文件夹示意图
    放置在该文件夹中是系统信息处理程序,详细说明如公众号发布的文章西门子PLC系统功能程序说明,在标准架构中的程序块名字为FB_SystemInfo,实例化数据块的名字为IDB_SystemInfo。

    看到这,读者是不是会产生一个疑问,一个设备或项目编程,若要按照该架构实施,应该怎么做呢?
    这也是本系列说明想要表达清晰的内容,请各位阅读者若有心学习,则请耐心跟随本系列文章好好阅读参考,内容会有点多,是因为一个合格的标准化架构,它思考的内容肯定必须齐全但又要做的低代码。
    所谓低代码,不是说程序的总的容量小,若这样的化不需要按照面向对象编程,直接按照过程实现即可。低代码是指,基于该标准化架构,后续的编程工作可以做的不需要编程,或者编程量非常少,但又能做出符合工艺及控制需求的标准化程序。







上一篇:电气工程师必看的建议,帮你扫清迷茫
下一篇:汇川中型PLC程序框架

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

单简 2022-8-20 19:50:51 | 显示全部楼层
学习了。楼主发的是博途,也要赞一下。。
回复 送花

使用道具 举报

finiiy 2022-8-20 21:03:28 | 显示全部楼层
感谢分享, 内容丰富。
回复 送花

使用道具 举报

ZYHHY 2022-8-21 00:45:48 | 显示全部楼层
满满的干货!dingding
回复 送花

使用道具 举报

91521 2022-8-21 08:35:20 | 显示全部楼层
谢谢分享,楼主辛苦了
回复 送花

使用道具 举报

Patrical 2022-8-21 08:53:17 | 显示全部楼层
感谢分享, 内容丰富------
回复 送花

使用道具 举报

weizuqiang 2022-8-21 08:57:19 | 显示全部楼层

感谢分享, 内容丰富--
回复 送花

使用道具 举报

阿亮学长 2022-8-21 09:00:20 | 显示全部楼层
内容详细,感谢分享
回复 送花

使用道具 举报

LiyuLi 2022-8-21 09:06:28 | 显示全部楼层

感谢分享, 内容丰富
回复 送花

使用道具 举报

一万九5 2022-8-21 13:24:39 | 显示全部楼层
需要仔细研读的文章
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部