佛山西门子S7-1500PLC模块代理服务-西门子PLC代理

发布时间:2020-05-14

佛山西门子S7-1500PLC模块代理(服务-西门子PLC代理  佛山西门子S7-1500PLC模块代理(服务-西门子PLC代理  佛山西门子S7-1500PLC模块代理(服务-西门子PLC代理

佛山西门子S7-1500PLC模块代理(服务-西门子PLC代理

西门子PLC面向对象编程

一、 实现方式

    面向对象编程在Step7中使用功能块(即FB)编程,一谈到此大家就会想到西门子提出的模块化编程,不错,就是这个模块化编程,但西门子提出的模块化、背景数据块、多重背景等名词并不能让大家很明白的理解和使用这种*的设计理念。如果大家从面向对象编程的角度去理解,则可以很好的理解这种设计模式。“FB块”被看 成“类”,它可以被看成是对相似的控制对象的代码归纳,如对MM440的变频器可以编写FB块:MtrMM440,这在面向对象编程中称为“类”,当需要 编程控制具体的电机时,可以给它分配一个背景DB块,在面向对象编程中称为类的实现(即创建类的实例:对象),当需要控制多个电机时,可以分配不同的背景 DB到这个FB块,即创建类的多个实例。Step7中有另外一种程序块,即FC块,以FC块为主的编程在西门子中称为结构化编程,这也可以类比于计算机编程中的面向过程编程,即纯粹以函数为主体的编程。

    Step7和Unity都可以采用面向过程和面向对象编程方式,这两种编程方式的区别类似于计算机高级语言中的C语言和C++语言编程的区别。

    以下的讲解将会把Step7中的FB和Unity中的DFB称为“类”,Step7中的FB+背景DB以及Unity中DFB的实例称为“对象”。

二、 面向对象编程架构

    以上讲解的是实现细节,而编程思想是建立在程序架构上的,不是某个局部使用了面向对象方式,则可以称之为这种编程就是面向对象编程。这种编程需要从以下方面着手:

1、 电路设计的结构化。

    这里主要以自动线为主介绍,对于单机机床可以是它的简化结构,

    <1>、自动线层:这是*层次,它拥有一个主PLC,对属于它下面的各区域控制

    <2>、工程层:拥有独立的配送电系统,但没有PLC,只有分布式模块,由自动线控制。顾名思义,它有着较大的独立性,可以作为一个单独的工程项目设计和制造,当自动线比较小时,可以省略该层次。

    <3>、功能组层:根据工艺划分,将实现某一个工艺功能的区段设备划分为一个功能组,它隶属于工程层,当工程层被省略时,隶属于自动线层。

    面向对象编程并不一定要求使用以上的结构,但好的电气结构更利于面向对象编程。

2、 任何控制对象逻辑都在“类”中实现。

    为了做到这点,必须分析与控制对象相关的信息,譬如,对于一个电机,有以下相关的信息需要考虑:

    输入信息:

佛山西门子S7-1500PLC模块代理(服务-西门子PLC代理

    <1>、电路保护信息,如电机的空气开关,热继电器等。

    <2>、功能保护信息,如运动电机的限位开关,风机的风压开关,油泵的油位开关等。

    <3>、启动和终止条件,以上的电路保护和功能保护都可能导致电机运转终止,复位也可能导致重启动,但这里的条件指的是正常运行的启动和终止条件,譬如顺序控制的流程步。

    <4>、控制模式:如手动和自动等。

    <5>、故障复位:通过复位信息,重新启动。

    输出信息:

    <1>、控制输出,如控制电机的主接触器。

    <2>、状态信息输出

    <3>、故障输出

    .........

    状态储存信息:

    用于代码实现的中间变量以及可以被人机界面读出的状态变量等

    把以上信息都整合到一个类中,并尽量使类的参数标准化。不过,同高级编程语言还是曾在一些差别,针对Step7,应该遵循的标准是:程序结构由FC实现,对象控制由FB实现,如下的一种结构体系(其电气结构来自上面的介绍):这只不过是一个粗略的PLC程序架构体系,好的架构应该更完善和科学。

3、 规划好数据结构

    数据结构的定义相当重要,并尽量统一这些结构,不要顾虑存储空间,当今的PLC内存足以容纳大量的数据。说明一点的是在Step7中尽量不要在类的外部定义数据结构(UDT),而是在类里面定义,虽然会造成不同类中同一结构的重复性定义,但却提高了类的独立性。


西门子S7-1500 PLC关于DB块启动值,过程值和快照值的简单理解

测试环境: STEP7 V14 SP1

6ES7 518-4AP00-0AB0 V2.0

过程值即实际值,是程序*执行后产生的数据。

启动值也称为起始值,什么时候起作用?

佛山西门子S7-1500PLC模块代理(服务-西门子PLC代理

1。*次下载DB块的时候,启动值会装载到过程值(实际值)。

2。对于DB块里的非保持性性数据,在CPU从STOP到RUN的过程中,起始值会加载到过程值。

对于保持性的数据则不论断电上电还是从STOP到RUN,过程值不变。

3。存储器复位MRES之后,过程值变为启动值。

4。修改了变量名称或者添加删除了变量,再次下载DB,则软件会提示需要将DB块初始化,

这时候起始值会加载到过程值。只要下载时提示DB初始化,则过程值会被启动值覆盖。

快照*的作用就是将过程值放到离线DB的启动值,这样调好的数据可以通过再次下载DB,( 下载的时候,不

会初始化DB,也就是说过程值不变)将*终的实际值存到SMC卡中,来保证即使更换CPU或者执行了存储器复

位,数据也不会丢失。

DB块里还有-个功能按钮叫下载但不重新初始化",该功能只适合在优化的DB中,新添加变量时使用。来保持数

据块中原有数据的过程值不变。在优化DB的块属性里,默认预留100个字节,用于非保持变量,如果新添加的变

量想设为保持性变量,则需要在DB块属性里勾选"启用下载,但不重新初始化保持性变量”变量的数量可以设置。

激活“下载但不重新初始化",添加变量,下载, 不会提示块需要初始化。下载后,在线离线D B块是一致的。

但是,如果取消该功能,则会提示在线离线不-致。再下载D B,则会要求初始化。

所以,使用该功能后,如果想要再取消该功能,需要在合适的时机。

佛山西门子S7-1500PLC模块代理(服务-西门子PLC代理

西门子S7-1500 PLC关于DB块启动值,过程值和快照值的简单理解

测试环境: STEP7 V14 SP1

6ES7 518-4AP00-0AB0 V2.0

过程值即实际值,是程序*执行后产生的数据。

启动值也称为起始值,什么时候起作用?

佛山西门子S7-1500PLC模块代理(服务-西门子PLC代理

1。*次下载DB块的时候,启动值会装载到过程值(实际值)。

2。对于DB块里的非保持性性数据,在CPU从STOP到RUN的过程中,起始值会加载到过程值。

对于保持性的数据则不论断电上电还是从STOP到RUN,过程值不变。

3。存储器复位MRES之后,过程值变为启动值。

4。修改了变量名称或者添加删除了变量,再次下载DB,则软件会提示需要将DB块初始化,

这时候起始值会加载到过程值。只要下载时提示DB初始化,则过程值会被启动值覆盖。

快照*的作用就是将过程值放到离线DB的启动值,这样调好的数据可以通过再次下载DB,( 下载的时候,不

会初始化DB,也就是说过程值不变)将*终的实际值存到SMC卡中,来保证即使更换CPU或者执行了存储器复

位,数据也不会丢失。

DB块里还有-个功能按钮叫下载但不重新初始化",该功能只适合在优化的DB中,新添加变量时使用。来保持数

据块中原有数据的过程值不变。在优化DB的块属性里,默认预留100个字节,用于非保持变量,如果新添加的变

量想设为保持性变量,则需要在DB块属性里勾选"启用下载,但不重新初始化保持性变量”变量的数量可以设置。

激活“下载但不重新初始化",添加变量,下载, 不会提示块需要初始化。下载后,在线离线D B块是一致的。

但是,如果取消该功能,则会提示在线离线不-致。再下载D B,则会要求初始化。

所以,使用该功能后,如果想要再取消该功能,需要在合适的时机。

佛山西门子S7-1500PLC模块代理(服务-西门子PLC代理

上一篇:老河口市水下打捞——在线咨询
下一篇:天津钢纤维生产行业*在线为您服务