• 忻州西门子专业授权代理商
  • 忻州西门子专业授权代理商
  • 忻州西门子专业授权代理商

    忻州西门子专业授权代理商

  • 2023-05-09 04:14 42
  • 产品价格:面议
  • 发货地址:上海市松江区包装说明:全新
  • 产品数量:不限产品规格:模块式
  • 信息编号:104705183公司编号:4273974
  • 浔之漫智控技术(上海)有限公司 销售经理
    15221406036 (联系我请说明是在阿德采购网看到的信息)
  • 进入店铺 在线咨询 QQ咨询
  • 信息举报
    产品描述

    忻州西门子专业授权代理商


     随着计算机技术的发展, 面向对象编程思想及方法日趋成熟。在介绍面向对象编程和PLC 编程的一些基本内容的同时,重点阐述了面向对象编程思想在PLC 编程中的应用。面向对象的程序设计方法相比于传统的线性化编程方法具有使程序较加简练,较加模块化,易于理解并且能大大提高系统的可扩展性,是大型复杂系统编程的理想设计方法。



    1 引言


    近年来,可编程逻辑控制器(PLC)广泛应用于工业控制中。在工业控制系统中大多数系统采用结构化的方法进行分析和设计使得编写出来的PLC 程序可读性差、个人色彩重、不利于团队精神的发挥、系统维护扩展不方便、系统结构不健壮。随着计算机技术的发展,面向对象的技术不断成熟,在各个领域都得到了应用。本文以某钢厂综合泵站水处理系统为例,把面向对象技术引入,克服结构化方法带来的弊端,从而保证系统的安全性。


    2 面向对象概述


    所谓面向对象(bbbbbb-oriented,简称OO)的方法,就使人们分析、设计一个系统的方法尽可能接近人们认识一个系统的方法。其基本思想是,对问题进行自然分割,以较接近人类思维的方式建立问题域模型, 从而使设计出的软件可能直接地描述现实世界,构造出模块化的、可重用的、可维护性好的软件,并能控制软件的复杂性和降低开发维护费。人们认识世界是以一种“面向对象”的方式进行的。


    客观世界的问题都是由客观世界的实体及客观实体间的相互关系构成的。我们把客观世界的实体称为问题空间(问题域)的对象, 而复杂的对象可以由相对比较简单的对象以某种方式组成。面向对象编程思想方法的产生,是计算机科学发展的要求。20 世纪80 年代,特别是90 年代以来,软件的规模进一步扩大,对软件的可靠性和代码的可重用性的要求也进一步提高。就是在这样的背景下,面向对象的编程设计思想应运而生。和传统的设计思想方法相比,面向对象编程思想具有抽象性、封装性、继承性、多态性等特征。


    封装是指把对象的属性和行为打包起来, 是一种信息隐蔽技术,用户只能见到对象封装界面上的信息,对象内部对用户是隐蔽的, 访问或改变对象属性的一方式是通过对象所规定的行为。封装是面向对象方法的一个重要的原则, 它具有两个涵义:一为把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位,二为尽可能隐蔽对象的内部细节,只保留有限的对外接口使之与外部发生联系。


    继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生, 这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之较适合特殊的需要。


    多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。


    面向对象的系统包含了3 个要素,即对象、类、继承。这3 个要素反应了面向对象的传统观念。从概念上讲,对象代表正在创建的系统中的一个实体; 而从实现形式上讲对象是一个状态和操作(方法)的封装体。其中状态是由对象的数据结构的内容和值定义的, 方法是一系列的实现步骤, 它是由若干个操作组成的。类是以接口和实现来定义对象行为的样板。对象是由类来创建的,由一个特定的类所创建的对象成为这个类的实例。因此类是对象的抽象和描述,也是抽象数据类型的实现。所谓继承简单的讲就是对已存在的类建立子类的功能,进而建立类的层次。


    3 PLC 简介


    PLC 即可编程序控制器,在自动控制领域,PLC 是一种重要的数据采集与控制设备,**代PLC 产生于1968 年,上世纪80年代至90 年代中期,李天平: 硕士生导师研究员PLC 得到了迅速的发展, 大大提高了PLC模拟量的处理能力、数字运算的能力和网络通讯的能力。PLC主要由四部分组成,即*处理器、存储器、输入输出模块、电源。如图1 所示:




    4 面向对象编程思想在PLC 编程中的应用


    PLC 的程序设计整个过程可以分为需求分析、功能设置、程序实现、调试运行和系统维护及功能扩展这些阶段。通用的程序设计语言是梯形图,偏重于逻辑设计。由于每个人设计的习惯不同,使程序的可读性差,这为以后的系统维护和功能扩展带来很大困难。因此,可以借鉴已经成功应用于其它程序设计语言中的面向对象的方法,使程序设计在提高质量的同时,能够向工业化的设计方法靠拢。“面向对象的编程思想方法”,把控制系统的设计与设备属性的设计分割开来,独立进行。该方法设计的程序具有可读性好、易于扩展、便于设计、调试和维护的特点,尤其适合多人分工协作。下面以某钢厂综合泵站水处理系统为例,简析面向对象编程设计思想在PLC 编程设计中的应用。


    4.1 某钢厂综合泵站水处理系统简介


    某钢厂综合泵站炼钢区域水处理控制系统是炼钢区域中的一个子系统, 它和其它一些子系统比如厚板区域控制系统、RH 沉淀池区域控制系统等构成了一个大的系统。此系统主要控制设备是泵和阀。本控制系统分为连铸LF 软环水池、氧RH 软环水池、RH 浊环冷水池、RH 浊环热水池、净环冷水池、连铸浊环冷水池、通风机潜污泵七个部分。泵组及电动阀有自动和手动两种控制方式,程序中对泵及电动阀实行联合控制。手动模式启动条件为:主回路断路器辅点准备好、主回路接触器辅点准备好、控制回路接触器准备好、控制回路电源上电、转换开关打到集中位置。


    上位机采用bbbbbbs XP SP3 操作系统,编程平台为CitectSA V7.0。在上位画面通过点击鼠标来启动或者停止水泵、开阀、关阀。自动模式下启动条件为:主回路断路器辅点准备好、主回路接触器辅点准备好、控制回路接触器准备好、控制回路电源上电、转换开关打到集中位置。上位机设置供水泵组启动停止按扭, 点击后泵组按系统设置的条件自动启停水泵及电动阀。下位机采用施耐德公司开发的Unity Pro 软件进行控制程序编制。


    面向对象的PLC 程序设计的基本原理如下:把设备设计为具有各自属性的智能化对象; 把工艺流程设计为设备之间的逻辑关系,控制设备之间的启动与停止顺序。在该思想指导下程序设计可以划分为两个独立的部分:**部分设备描述,又可称为对象设计,*二部分为控制系统的设计,即在单个设备的基础上描述设备之间的逻辑关系,以满足工艺流程的要求。这一部分是针对自动工艺流程的设计,因为启动单个设备,设备之间没有逻辑关系,因此只要有了“智能”设备,就可以接收命令运行,并判断自身状态,独立运行。


    4.2 对象设计


    某钢厂综合泵站系统相对来说是一个比较复杂的系统,主控制PLC 采用施耐德Quantum 系列。该PLC 控制的对象设备很多,但这些设备相同或相似的比较多。如果为每一个设备都编写程序模块,容易产生混淆,不利于维护。如果将相同设备或相似设备的控制功能抽象出来,编写一个通用程序模块,在具体应用时设置不同的参数即可,这样利于代码重用。某钢厂综合泵站炼钢区域水处理系统需要控制的设备很多, 设备之间的连锁关系比较复杂,相同或相似的设备很多。为此,本系统采用面向对象的设计方法, 把控制工艺相同设备作为一个组来进行程序编制,编写出一个通用的程序模块,在具体应用调用时这个模块,为其设置不同的参数调用即可。例如板换冷煤泵组包括4 个泵,每个泵的控制过程是一致的。这样我们可以编出一个统一的程序模块,这四个泵都调用这个模块,所不同的就是模块内的参数设置不同。不仅如此,此水处理控制系统控制对象主要为高低压泵36 个,阀36 个,还有部分潜污泵,通风机等设备。对于泵我们可以抽象出一个泵类, 高压泵继承泵类, 然后扩展自己特有的属性。


    低压泵类也继承泵类,扩展自己特有的属性。对于具体的某个泵,分清属于哪类泵,调用该类泵即可。对于阀我们可以抽象出一个阀类,具体实现方法和泵类相似。以此类推,系统中的相关联的设备,被抽象为一个个的类,而这些类组成了一个集合即类库。这样,各对象的控制可以通过类的调用来实现。类与类之间有相同属性和方法的还可以进一步抽象,比如上述的电机类、泵类、阀门类它们有启动、停止等相同的属性,有手动切换到自动、检测运行情况等相同的方法。可以抽象一个设备类作为基类,电机类、泵类、阀门类作为派生类继承基类的属性和方法,在继承基类的属性和方法的同时, 派生类可以定义自己的属性和方法。本例中对象继承和实例化过程如图2所示。通过面向对象的编程方法,使得系统设备连锁关系复杂的控制变得容易,各个子系统之间通过控制接口反馈各子系统的状态, 子系统根据接口,实现对自己的控制。这样,各个子系统之间并不需要考虑对方的控制过程,使得编程和调试变的非常方便和容易。




    在Unity Pro 中使用功能块(即FB)编程,编写功能块FB 就是创建类,FB 中的参数和操作就是类的属性和方法。如对MM440 的变频器可以编写FB 块:MtrMM440,这在面向对象编程中称为“类”,当需要编程控制具体的电机时,可以给它分配一个背景DB 块,在面向对象编程中称为类的实现(即创建类的实例:对象),当需要控制多个电机时,可以分配不同的背景DB 到这个FB 块,即创建类的多个实例。 

     


    Unity Pro 中有另外一种程序块,即FC 块,以FC 块为主的编程在西门子中称为结构化编程,这也可以类比于计算机编程中的面向过程编程, 即纯粹以函数为主体的编程。PLC 中的面向对象编程的**就是黑匣子编程,针对Unity Pro,使用FB 去实现每一个对象的控制,控制逻辑、报警处理、信号交换全在FB 中,对于应用设计人员,不需要明白里面的代码实现, 只需要了解该FB 的功能以及如何使用好它就行,这样对于应用程序人员的编程能力要求大大降低, 对于编程只不过是遵循架构,拷贝代码,改变输入输出条件而已。


    4.3 控制系统设计


    控制系统要满足工艺流程的要求, 则设备之间必须要发生逻辑关系,也是对象之间必须通过消息进行协作或交互。在PLC的程序设计中, 引起设备象状态变化的可能是一个开关状态信号,比如液位报普信号,也可能是一个模拟量,这些信号其实也是被封装在其它对象模型中。因此在PLC 中,对象模之间的交互通过某个条件信息触发的。使用面向对象技术中交互图是一种详细表示对象之间以及系统外部信号对象交互情况的图形文档,而在PLC 程序设计中具体情况具体应用,可以根不同的控制工艺采取较适合的图解方式。在本系统中,要求提供各对象之间交互的条件,以及如何交互。


    5 结语


    采用面向对象的编程方法,使得主控制PLC 的编程控制变的容易,同时,采用该方法后,减少了大量的调试时间,也给以后的系统维护带来方便。系统从投产至今,性能良好,无安全隐患.面向对象方法在自动化行业的运用值得推广。

    202210281445058730574.png202210281445058358754.jpg


    通过本方法优化可以较大的减少程序语句数,使程序较简洁、可读性较好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。


        缺点是要多占用两字节的内存,以后程序中不能使用VW0。但S7-200的RAM空间很大,一般是用不完的,以226为例,有多达10K的RAM,偶从来没有**过1K。这些RAM都是花钱买来的,不用白不用,不用也是浪费了。


        同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换。具体步骤如下:


        1:根据工程实际需求,进行功能块规划,编写子程序


        在PLC中子程序是为一些特定的控制目的编制的相对独立的程序。执行子程序调用指令CALL等,如果条件不满足子程序调用时,程序的扫描就仅在主程序中进行,不再去扫描这段子程序,这样就减少不必要的扫描时间。


        2:用字或双字数据传送给DO点方法来控制输出


        在PLC的应用中通常都会有大量的输出控制,用字或双字数据传送给DO点方法来控制输出可以提高速度,只要根据实际应用的要求,合理分配输出,变换控制输出控制字,可以大大减少PLC程序执行的步数,从而加快PLC的程序运行速度。


        3:脉冲触发SET、RESET


        PLC中,使用SET指令只执行一次即可,不必每次扫描都执行这个指令,很适合与脉冲输出(PLS/PLF)指令配合使用。有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间.


    4:避免了类型转换,方法如下:


     


        以S7-200为例,它的内存格式与我们常用的PC机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。


        如我们定义符号时将字变量定义在VW2,同时保持VW0的值为零。则程序中可以用VW2以字型访问该变量,同时也可以VD0以双字型访问,避免了类型转换。


        为了避免使用时混淆,较好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀:b————字节型变量(byte)


        w————字型变量(word)


        d————双字变量(double)


        r————实型变量(real)


        f————位变量(flag)


        btn——-自复位按钮式输入(button)


        sw————切换开关或自锁按钮输入(switch)


        sig——-传感器、编码等电平信号输入(**)


        rly——-输出继电器位(relay)


        ……


        当然,这个根据个人习惯来,没有定则,主要是利于自己区分。 

        

        如有一个字类型变量名为VarName,为使用的转换技巧,我们可以这样定义:


        wVarName————VW2


        dVarName————VD0


        在程序初始化时将VW0清零(如果是不需要记忆的变量,直接将dVarName清零也可)或者在数据块中将VW0设置为零。


        则以后需要以字类型访问变量时就用wVarName,需要以双字类型访问变量时就用dVarName。完全不需要类型转换。


    关于*3点"使用SET指令只执行一次即可,不必每次扫描都执行这个指令,有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间"不是很理解,能不能说得细一点。



        1:如果在ob里编写子程序段,是扫描的,但是如果您编写为FC调用,那么在FC的调用条件没有满足时,FC中的程序暂时不执行。这也是我所说节省时间的意思。


        2:PLC的执行步数根据程序长短会不同,扫描时间会根据执行步数的不同而不同,如果用一个mov指令完成8个数字量输出的控制,当然比用8个mov指令完成8个数字量输出的控制所需要的程序步数少。


        3:避免了类型转换,方法如下:


        以S7-200为例,它的内存格式与我们常用的PC机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。


        如我们定义符号时将字变量定义在VW2,同时保持VW0的值为零。则程序中可以用VW2以字型访问该变量,同时也可以VD0以双字型访问,避免了类型转换。


        为了避免使用时混淆,较好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀:b————字节型变量(byte)


        w————字型变量(word)


        d————双字变量(double)


        r————实型变量(real)


        f————位变量(flag)


        btn——-自复位按钮式输入(button)


        sw————切换开关或自锁按钮输入(switch)


        sig——-传感器、编码等电平信号输入(**)


        rly——-输出继电器位(relay)


    当然,这个根据个人习惯来,没有定则,主要是利于自己区分。



        如有一个字类型变量名为VarName,为使用的转换技巧,我们可以这样定义:


        wVarName————VW2


        dVarName————VD0


        在程序初始化时将VW0清零(如果是不需要记忆的变量,直接将dVarName清零也可)或者在数据块中将VW0设置为零。则以后需要以字类型访问变量时就用wVarName,需要以双字类型访问变量时就用dVarName。完全不需要类型转换。


        本方法可以较大的减少程序语句数,使程序较简洁、可读性较好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。


        缺点是要多占用两字节的内存,以后程序中不能使用VW0。但S7-200的RAM空间很大,一般是用不完的,以226为例,有多达10K的RAM,偶从来没有**过1K。这些RAM都是花钱买来的,不用白不用,不用也是浪费了。


        同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换




    SIEMENS浔之漫智控技术有限公司
    本公司长期销售大量*西门子.保证原装**工厂直销.售后有保证本公司可签订:原装**- -罚十
    本公司库存优势产品:西门子SMART200、ET200、S7-200、 S7-200CN、 S7 -300、S7. -400、S7-1200S7-1500PLC、 6XV触摸屏、 6EP电
    源、DP电缆、接头、网线、6FC、6SN、 S120、 V20、 V90、G110、 G120、 G120X. 6RA、6GK、6GT、 低压系列、软启动器、伺服数控
    备件、NCU. MM420、MM430、MM440系列、 LOGO系列,欢迎选购!


    欢迎来到浔之漫智控技术(上海)有限公司网站,我公司位于历史文化悠久,近代城市文化底蕴深厚,历史古迹众多,有“东方巴黎”美称的上海市。 具体地址是上海松江公司街道地址,联系人是聂经理。
    主要经营浔之漫智控技术(上海)有限公司主要经营:西门子PLC代理商、西门子PLC模块代理商、西门子中国一级代理商、西门子低压电器总代理商、西门子DP通讯电缆代理商、西门子中国总代理商等;欢迎大家来电咨询。。
    本公司主营:浔之漫智控技术(上海)有限公司主要经营:西门子PLC代理商、西门子PLC模块代理商、西门子中国一级代理商、西门子低压电器总代理商、西门子DP通讯电缆代理商、西门子中国总代理商等;欢迎大家来电咨询。等产品,是优秀的电子产品公司,拥有最优秀的高中层管理队伍,他们在技术开发、市场营销、金融财务分析等方面拥有丰富的管理经验,选择我们,值得你信赖!

    本页链接:http://www.cg160.cn/vgy-104705183.html
    以上信息由企业自行发布,该企业负责信息内容的完整性、真实性、准确性和合法性。阿德采购网对此不承担任何责任。 马上查看收录情况: 百度 360搜索 搜狗
SIEMENS浔之漫智控技术有限公司
本公司长期销售大量*西门子.保证原装**工厂直销.售后有保证本公司可签订:原装**- -罚十
本公司库存优势产品:西门子SMART200、ET200、S7-200、 S7-200CN、 S7 -300、S7. -400、S7-1200S7-1500PLC、 6XV触摸屏、 6EP电
源、DP电缆、接头、网线、6FC、6SN、 S120、 V20、 V90、G110、..
相关分类
附近产地