查看: 623|回复: 4
收起左侧

[资料分享] 标准程序架构说明2控制对象说明

dianqizai 2022-8-23 15:58:40 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

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

x
本帖最后由 dianqizai 于 2022-8-23 16:00 编辑

以下文章来源于壶琰棠 ,作者壶琰棠主


在您开启阅读前,当然希望您已经阅读了以下内容:
             【重磅】标准程序架构的发布(基于ISA88的CPG库)
              标准程序架构说明1:主程序及程序分类
对于整个程序架构,希望能用文字真正让大家熟悉并能理解。
1661241383047.png
图2‑1 : 单个(组)设备控制程序框架
    上图是前文中描述的设备程序模型,该模型是基于西门子的CPG库(基于ISA88)的程序整理而来,也是我们整个标准程序架构中EM层级设备的标准程序模型。
    利用该模型程序对设备编程,需要将我们面对的设备当成一个物理对象,再将控制活动中该对象的所有活动,把对象的属性和活动归纳整理,按照图示的结构将归纳整理的信息对号入座,通过整个程序架构来实现对象化的编程。
    而这个模型,程序中对应的就是我们EM的程序块,即我们程序中FunctionBlock文件夹中EM子文件夹中的程序FB_EM_Mode,该程序的模式即是上图。
1661241411955.png
图2‑2: 标准架构中的EM程序FB_EM_Model
    所以,在详细描述程序之前,我觉得先得将控制设备的一些共性的内容,需要有规律的整理出来,让我们对我们的控制对象能有更多的了解。
2.1.   单个(组)控制对象的硬件组成
    要实现工艺控制需求,对于任意的单个设备无外乎是由驱动(电机或阀门)、传感器(依据工艺配置)、测量仪表(比如编码器,水务的各种仪表)、本地电气柜、按钮面板(HMI)等组成。
    有的单个(组)设备可能只是上述的一部分组成,也可能包括所有的部分;所以,我们不妨分析下单个(组)设备的组成部分;
2.1.1.      驱动
    驱动主要是设备的执行元件,一般的执行元件是电机或者阀类(气缸、液压缸等)。对于驱动的属性,我们大致可以按照以下内容总结:
    电源类型为3相还是单相、电机是单向运动还是双向运动(单向阀还是双向阀)、驱动方式是变频(伺服)还是工频、单段速还是多段速(变频控制)、位置控制还是同步控制(伺服控制)等等
2.1.2.      传感器
    根据工艺的需求,每一个单个设备上可以布置的传感器数量和种类都不一样,但不管多少种类,传感器的功能都可以大体分为两种类型:
    功能类传感器:该类传感器具有控制调节功能,参与工艺流程的控制节奏,不同规律的变化能改变或者更新工艺流程的节奏或状态,比如参与PID调节的传感器,具有跟踪作用的光电开关等;
    这类传感器依据功能不同在标准库中必须编写不同的功能块(FB);
    记录保护类传感器:该类传感器在工艺流程中只作为记录、保护等功能,只会影响工艺流程的进度却不会改变工艺流程的结果输出,比如提升机的极限位置保护开关,产品尺寸超限检测光电等传感器;
    这类传感器一般情况下不需要编写功能块(FB),只是作为单个控制对象的接口将信号引入程序即可;
2.1.3.      测量仪表
    过程工业中仪表更多,一般仪表就是监视过程中的状态和数据,根据数据状态控制驱动执行不同状态;这类仪表一般情况下不需要编写功能块(FB),只是作为单个控制对象的接口将信号引入程序即可;
    离散工业中一般的测量仪表包括编码器、称重仪等影响工艺状态或流程的设备,这类和功能类传感器一样,依据功能不同在标准库中必须编写不同的功能块(FB);
2.1.4.      本地控制柜-可选
    根据设备的硬件组成,本地控制柜主要为单个设备提供电源以及通信连接等功能;对于一般的OEM设备很可能没有本地控制柜,这些硬件接口都是来自主控制柜;对于大型设备或者项目,一个本地控制柜可能为某个范围内的多个设备提供硬件接口;也有小型化的本地控制柜形式,那种高度集成的电气设备一般也叫做本地控制器,这种的一台本地控制器对应一个设备;
    本地控制柜的编程和控制柜程序的标准化的内容一致,这些柜内信号主要是设备运行的前提条件;
2.1.5.      按钮面板(HMI-可选
    该面板的操作只对该单个设备有作用;
    生产过程中经常有工艺设备需要人为干涉,比如产品在某个过程中需要人工抽检或其他操作,此时就需要设置按钮面板。或关键工艺设备出现问题时候,需要人工将设备故障排除等;
    依据工艺和客户需求,按钮面板可以设置工艺按钮、手自动按钮、相关状态指示灯或者三色塔灯等;
1661241436731.png
图2‑3 : 单组设备组成示意图
    在设备组成中,有的工艺部件是由多台电机共同组成,比如上图所示的部件,分别由M1执行升降功能,由M2执行输送功能。
    对于该类的硬件组成的分析,除了像单个设备硬件一样以外,我们还需要注意以下几个方面:
  • 1.     两个电机分别执行不同功能,但两个电机都同属于一个部件,即我们需要将两台电机组成的机构看成一台设备。
  • 2.      传感器或者测量仪表需要分清楚归属,是属于整个部件功能还是属于某个电机的功能;


    通过上述描述,我们可以总结出一个基本的控制对象的属性归纳为如下表格:
1661241472317.png
表 2-1 : 基本控制对象设备组成表
    在面向对象的编程方法中,由以上内容组成的设备即是我们的控制对象,在程序中可以归类为一个功能块(FB),即在程序框架中对应一个FB。
    需要注意的是,对象中有超过两个以上的执行单元且有多个传感器的设备,在分析工艺的时候,需要注意不同传感器的功能是属于某个执行器,还是属于整个设备的功能。
    程序中,执行器是FB的输出管脚;按钮面板中的启停按钮是该设备的控制指令外,其他的按钮(比如正反转和手自动)都是FB的输入管脚;本地控制柜的正常运行是该设备运行的前提条件,传感器和仪表等都是FB的输入管脚;
    当我们把设备(项目)中的所有类型的设备都分析出来了后,那整个设备和项目在程序库中就相当于积木化了,即每一个设备和项目都是不同设备类型按照积木的方式一样组合而成;
2.2.   单个(组)控制对象的程序的说明
    需要把控制对象在程序中用FB块表达出来的时候,我们就会遇到这样的一个问题:假如我们有三种皮带输送机,第一种是工频单方向的设备,第二种是变频且只有一个输送方向的设备,第三种是变频但输送方向可变的设备,此时我们的程序中应该怎么实现?
    像此类问题,虽然都是输送机,甚至输送机上的电机、传感器的数量都是一样的,但他们的工艺要求却截然不同,此时在程序中一般有如下两种处理方式:
    第一种方式,类似于PSC7中的程序块,将上述的皮带输送机的功能全部在一个FB块中处理,FB块的名字取名为FB_BeltCtrl(Ctrl是英文Control的惯用缩写),FB块中将上述不同的工艺要求的功能都写好,通过FB程序引脚选择相应的功能。比如当前是第一种工频单向输送机,此时调用该功能块后,通过引脚选择当前的输送机类型,程序运行的时候,相当于只运行配置好的那一部分的程序,其他的程序不执行。
    这种方式的好处是FB的程序不多,但坏处是该FB块的引脚可能会非常多,要是功能太多了,在配置设备类型的时候可能也会不是很容易。若对程序块实现的功能不是很熟悉,程序编辑和调试的时间和效率反而不会太高。

    第二种方式,就是根据不同的功能要求,在程序中用不同的功能块实现。比如工频单向皮带输送机的程序块为FB_Belt1Dir(Belt是皮带,1为阿拉伯数字1,Dir是方向的英文缩写),变频单向皮带输送机的程序块为FB_FrequencyBelt1Dir(Frequency是指变频,其他同FB_Belt1Dir),变频且输送方向可变的皮带输送机的程序块为FB_FrenquencyBelt2Dir,这样不同设备在程序实例化的时候,只要选择相对应的程序块即可。
    这种方式的好处是FB的程序精简,程序和具体的工艺的配对关系更紧密,通过调用的程序块,就能一眼看出设备的工艺属性,程序运行的时候不用浪费不需要的资源。这种方式的坏处就是FB块比较多,需要更强的工艺设备的归纳总结能力。
    在实际标准化编程中,我建议在尽可能的将对象的属性理解更透彻后,用灵活的第二种方式处理,这样可以节省我们的CPU的运行时候的判断程序。
    案例1:
    比如某个企业的设备为两种输送机,一种不需要变换方向,一种需要人工触发的条件下变换方向,那按照上述第二种方式,我需要两个FB块来实现这两种输送机的功能。
    但此时我们可以明显感觉到,仅仅是由于一个手动的方向变化而导致了我们多一个FB块,这显然是不合理的。所以,我们只需要在FB块的引脚上增加一个输入引脚i_Reverse,不需要变换方向的设备此引脚的实参(实际参数,即实际的IO变量)不用填写,需要人工触发条件下变换方向的设备此引脚的实参为人工触发的I变量,程序中当此变量为TRUE的情况下即变换电机的运行方向。
    案例2:
    比如客户有个设备是电机和气缸组成,通过对客户需求的分析发现,电机的正反转和气缸的伸缩原理是一样的,都是相对正反两个方向的运动。此时对于电机和气缸程序我们都可以用一个程序块实现,比如我们可以称呼为通用类的设备控制,则程序中的FB块可以命名为FB_GeneralCtrl:
    当然,以上的讨论只是举例说明,因为真正涉及到变向的话,需要注意控制电机的正反向的能量转化。
    此例子主要表达的内容是,我们需要对控制对象的工艺更加的熟悉总结后,再去规划我们的程序的类别和方式。
2.3.   单个(组)控制对象的程序框架
    通过上面两个小节的描述,我们单个(组)设备的控制程序的框架大致有个雏形,如下图所示;
    根据程序框架图(图2-1),我们可以将这些框架的内容分门别类,将这些数据事先定义在功能(FB)的接口;
image.png
表 2-2 : 单个(组)设备框架程序的接口定义表
    至于这些数据怎么定义,为什么数据类型是这样的,详请参考后续相关联内容的描述;






上一篇:库缺失,报错
下一篇:AM402强制DO输出

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

LiyuLi 2022-8-24 09:22:37 | 显示全部楼层

很好的资料,感谢,,,
回复 送花

使用道具 举报

Patrical 2022-8-24 09:43:13 | 显示全部楼层
很好的资料,感谢,,,
回复 送花

使用道具 举报

zwqiu 2022-8-24 10:48:27 | 显示全部楼层
很好的资料,感谢,,,
回复 送花

使用道具 举报

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

本版积分规则

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

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

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

4000-300124

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

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

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