全国服务热线 15221406036

咸阳西门子S7-200代理商

发布:2023-08-31 16:52,更新:2024-05-08 07:10

咸阳西门子S7-200代理商

面向对象编程是计算机语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程的基本概念就是类和类的实例(即对象),我们只需要使用这种概念就可以了。在计算机编程中我们需要把一些事物抽象和归纳,才能编写类,而在工业控制系统中,控制对象如:电机,阀等等是很明显的控制类别,不需要抽象就可以很明显的针对它们编写类,以下将会用到西门子的Step7编程语言和施奈德的Unity 编程语言来讲解PLC的面向对象编程。

一、 实现方式
在Step7中使用功能块(即FB)编程,一谈到此大家就会想到西门子提出的模块化编程,不错,就是这个模块化编程,但西门子提出的模块化、背景数据块、多重背景等名词并不能让大家很明白的理解和使用这种的设计理念。如果大家从面向对象编程的角度去理解,则可以很好的理解这种设计模式。“FB块”被看成“类”,它可以被看成是对相似的控制对象的代码归纳,如对MM440的变频器可以编写FB块:MtrMM440,这在面向对象编程中称为“类”,当需要编程控制具体的电机时,可以给它分配一个背景DB块,在面向对象编程中称为类的实现(即创建类的实例:对象),当需要控制多个电机时,可以分配不同的背景DB到这个FB块,即创建类的多个实例。Step7中有另外一种程序块,即FC块,以FC块为主的编程在西门子中称为结构化编程,这也可以类比于计算机编程中的面向过程编程,即纯粹以函数为主体的编程。
施奈德的Unity软件编程可以更好的理解面向对象编程。它的DFB定义中包含输入/输出参数,私有/共有变量,以及代码实现,而这正是计算机的面向对象编程中“类”的基本元素,而创建类的实例(对象)就像创建普通的“布尔”变量一样,只需在“Function Blocks”中定义这种“类”的变量即可。
Step7和Unity都可以采用面向过程和面向对象编程方式,这两种编程方式的区别类似于计算机语言中的C语言和C++语言编程的区别。
以下的讲解将会把Step7中的FB和Unity中的DFB称为“类”,Step7中的FB+背景DB以及Unity中DFB的实例称为“对象”。

二、 面向对象编程架构
以上讲解的是实现细节,而编程思想是建立在程序架构上的,不是某个局部使用了面向对象方式,则可以称之为这种编程就是面向对象编程。这种编程需要从以下方面着手:
1、 电路设计的结构化。
这里主要以自动线为主介绍,对于单机机床可以是它的简化结构,



面向对象编程并不一定要求使用以上的结构,但好的电气结构更利于面向对象编程。
2、 任何控制对象逻辑都在“类”中实现。
为了做到这点,必须分析与控制对象相关的信息,譬如,对于一个电机,有以下相关的信息需要考虑:
输入信息:





输出信息:



。。。
状态储存信息:
用于代码实现的中间变量以及可以被人机界面读出的状态变量等
把以上信息都整合到一个类中,并尽量使类的参数标准化。不过,同编程语言还是曾在一些差别,针对Step7,应该遵循的标准是:程序结构由FC实现,对象控制由FB实现,如下的一种结构体系(其电气结构来自上面的介绍):







这只不过是一个粗略的PLC程序架构体系,好的架构应该更完善和科学。

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

三、 优越性
1、 标准化
使用这种设计模式,可以将程序设计分为两个阶段,即标准库、基本架构开发,以及实际应用层面设计。其中标准库、基本架构是制定程序标准化的基础,而应用层设计是针对具体的控制工程编程,这样可以把程序设计人员分成两类,一类是标准开发,由程序员负责,一类是应用设计(其中程序调试规划到应用设计),由经过标准化培训的一般程序员完成,通过这种分配就可以解决中国工业自动化中面临的尴尬局面。传统的中国控制工业,一个程序设计由一个人完成,这样他还必须负责现场调试,而拥有丰富经验的程序员一般是三十岁后,这时他已经成家,而显然长期出差对家庭不利,很多的程序员为了家庭考虑不得不改行,要么转到管理岗位,要么去制造工厂搞设备维护,这是资源的严重流失。毫无疑问,使用以上的设计流程,我么可以让经验丰富的程序员搞标准库和架构的设计,而让刚踏入这个行业的年轻人搞应用设计和调试,这不仅可以让老程序员继续他自己的工作,而不影响家庭,也可以让年轻的程序员参入现场调试,培养自己的经验,提高自己的收入。
这可能让某些人士担心,认为年轻的程序员可以参加现场的调试吗?可以肯定的是没有标准化支撑的程序不仅年轻的程序员编不出来,而且现场调试会问题多多。但有了好的标准化后,一年半以上工作经验的程序员就应该能够独立面对自动线。
PLC中的面向对象编程的核心就是黑匣子编程,针对Step7,我们使用FB去实现每一个对象的控制,控制逻辑、报警处理、信号交换全在FB中,对于应用设计人员,不需要明白里面的代码实现,只需要了解该FB的功能以及如何使用好它就行,这样对于应用程序人员的编程能力要求大大降低,对于编程只不过是遵循架构,拷贝代码,改变输入输出条件而已。
那么调试呢?很多人认为使用FB编程的dama烦就是FB的多次调用后,根本无法诊断这些代码,从技术层面上讲确实如此,我们除了从背景DB上查看信息外,是无法在它多次被调用后监控代码的,但我已说过,这是黑匣子编程,我们不需要诊断这些代码,只需要知道什么样的输入、什么样的参数设定导致什么样的输出就行,代码的逻辑与功能好坏是由标准库开发人员负责的,这就要求标准开发人员需要对他设计的功能块在不同条件下进行不同的测试,保证无误,还需要编写完整、详尽的功能说明文档,以便于应用设计人员了解这些块,标准架构并不是制定出来就一劳永逸的,针对千变万化的工程,它是需要不断完善和修订的,这也是一个工程公司可以实实在在进行知识积累的地方。
程序不仅需要给调试人员使用,而且用户(设备维护人员)也需要了解,如果把完整的标准库文档给用户,可能曾在技术外泄的可能,若不给,对他们诊断设备可能曾在困难,这就需要标准制定人员制作另外一分文档,即设备维护文档,其知识的透漏以用户能够使用程序进行诊断为限。
2、 重用性和易管理型
计算机面向对象编程的优点也有重用性和易管理型,在PLC中也曾在,以Step7为例,需要讨论FC和FB的差异。观察数据类型,FB比FC只不过多一个“STAT”类型,在使用上FB需要背景DB,FC不需要,但就这个差别导致FB拥有自己独立的数据储存空间,而FC的数据储存却必须借助公有变量(如中间变量M或者共享DB),有这样一种准则,程序块的独立性越强,其重用性也越好,产生数据访问冲突的可能性也更少,则更易于管理。有些公司生产的PLC,其程序语言没有类似FB 的这种特性,这时可以采用类似“FC+共享DB”的替代方案解决,但它的独立性已经大大降低。
同样的代码的独立性是标准制定的一个重要环节,很难想象一个与其他功能块之间有着千丝万缕联系的功能块能够被作为标准块在不同工程中有效的重复使用。
纵观计算机语言的发展,开始的编程都是令人恐怖的,而当今的编程让人们得到很大的解脱,有很多现成的标准类库实用,人们可以把更多的编程精力放在实现功能本身上,PLC编程也应该朝这种方向发展,应该让更多的人从事应用层面的设计,那些标准功能块不应该重复的被不同人员开发,虽然各大PLC厂开发了大量的程序库,但工业控制对象各式各样,不同行业都应该拥有自己的程序库,而代码的可重用性是评价这些功能块好坏的关键。
3、 设计思想的先进性
在电路图设计中我们早已经在使用针对控制对象的绘图方式,即把基本的主配送电路和PLC配置完成后,我们会针对每一个现场控制对象如:电机、阀、气缸等控制对象绘制电路图,他们的电源来自主配送电路,控制和反馈与PLC建立连接,硬件连锁根据实际情况调整,一个个控制对象就象搭建积木一样有组织的堆积起来,同样的,编程也是针对一个个控制对象使用相应的标准控制块实现就可以,把程序控制细节实现了有效的封装,使程序看起来简洁和易于维护,而好的设计可以把原理图和程序进行很好的关联,甚至于做到一对一的关系,如原理图中的一个控制对象可以在程序中找到相应的FB调用与之对应,真正做到面向控制对象编程。

可能有人疑虑,PLC编程大部分是步进编程,这一个个标准块都是针对控制对象的,那控制顺序如何实现呢?这就要求编写专门的顺序控制FB块,或者使用Siemens现成的Graph7来实现,这点与一般编程没什么差别。

结束语:现在的工业控制领域有很多程序高手,他们很精通算法,也有着自己的编程理念,当我和一些人探讨标准化时,他们认识到标准化的高效性,但认为这样无法体现自己的编程水准,是的,如上所述作为应用层面的程序设计是不要很高的编程水平,但要想想,一个人难道能一辈子去搞现场调试吗?若想体现自己的价值,可以从事标准编程。我更希望他们能花一点时间研究程序架构,各行各业,真正的大师是系统架构设计者,编程小技巧只不过是为好的架构锦上添花。

1 引 言
当前PLC控制系统应用十分普遍,已经成为实现工业自动化的主要手段。目前,PLC实验平台装置在各大专院校、研究所的自动化相关里得到普遍应用。这些实验平台装置大多用硬件整合了常用的实验模型,基本上可以满足高校的一般的实验要求。但是,现在所能够购买到的PLC实验平台装置基本上都是以硬件为主体构建而成的硕大的实验台,这些装置的体积、重量大,成本高,难以维护和检修。而更重要的是:现在得到普遍应用的实验台的适应面太窄,大部分只能够满足单一厂家,个别型号的要求,对其他厂商的PLC产品则无能为力;由于硬件实验模型是整合的,若要扩充模型,需要重新设计。这将大大限制了这些实验台的应用范围。
本文的目的就是要针对以上提出的现今PLC实验装置的缺点,试图开发出具有便携性,适应面宽和易于检修、维护的满足多种PLC的智能实验平台装置。
2 系统设计
2.1 设计目标
作为PLC实验平台,首先应可以对PLC的输出进行监视,并能通过相应的运算输出至PLC作为PLC的输入。
能适应不同厂家、不同型号的PLC及其扩展模块,提供相应的接口方式供选择。
对PLC数据进行统计,建立数据库,并生成各种报表。
根据PLC控制对象,能按实际要求模拟现场环境,以动画等方式显示。
2.2 系统结构框图
系统结构主要由PLC接口装置和基于微型计算机的基本系统组成。如图1所示:



3 硬件设计
PLC实验平台的硬件部分主要作用为采集信号和输出信号,是PLC与PC之间的接口。硬件部分采用MCS51芯片,对PLC信号做初步处理,再通过串口与PC相连。为使系统满足多种型号 PLC及其扩展需要,硬件设计采用扩展模块方式。
PLC的信号初步处理包括:
(1)根据PLC的信号规范采用相应的接口方式。
(2)获取PLC输出端口数据,转换成机器码存储在主模块的RAM内。
(3)用串口通讯与微型计算机进行数据交换。
(4)将RAM内数据按接口方式转换并输出到 PLC输入端口。



硬件部分的设计是实现多种PLC实验平台的关键。不同厂家、不同型号PLC的输入输出信号都有各自的规范,还有数字信号和模拟信号之分,硬件部分首先要解决的问题是如何将这些不同规范的信号转换成统一的信号,以便与PC进行数据交换。此外,PLC的点数会因为工程需要而增加或减少,硬件部分采用扩展模块方式以适应PLC点数的变化。芯片采用MCS51系列产品,具有64KB的存储器寻址范围,采用地址编码后足以应付大多数情况下的PLC使用点数。
PLC实验平台硬件部分的主模块功能图如图
2所示。除了主模块采用的芯片MCS - 51和模块接口(采用25针数据线连接)外,可以分成三部分:初始化、读写控制、输入输出通道。实验平台启动时,初始化部分为每一个模块分配相应的模块号,并读取各模块的信息。输入输出通道可以将不同厂家、型号PLC的输入信号转换成统一的MCS - 51信号,或者将MCS - 51信号按照模块的设定输出到相应的PLC。读写控制读取MCS - 51(或者上一级模块)的控制信号和模块号,判断数据传输的内容和方向以及是否对本模块进行读写操作。例如PLC信号的读写、模块信息的读写。
4 软件设计



软件部分的设计根据PLC实验平台的设计目标可分为两部分:一是PLC监控,二是现场环境的模拟。
采集PLC输出数据和输出指定数据至PLC是通过串口通讯与硬件部分做数据交换,再通过硬件部分实现实验平台对PLC的监控。记录PLC输入输出数据以及建立数据库链接,为数据的进一步处理做好准备。
工程设计为操作者提供编写模拟现场的人机对话界面。为缩短工程设计的周期,该界面以将工业控制中常用的设备封装,如流水线、电机、泵等等。当然,设计人员可以将自己常用的工业设备封装,建立自己的设备库,减少重复劳动,提高工程设计效率。
联机运行及动画显示是一个互动的人机接口。操作者在软件平台内给出或改变PLC的输入给定信号;PLC程序的输出结果则通过PC软件平台的内部算法转换成数据报表和图象信息,呈现在操作者面前。操作者通过对给定输入的预测结果和实际数据的比较,就可以判断PLC程序的编写正确与否。软件平台对应多厂商的PLC产品,操作者只需在运行画面修改PLC设定即可将当前工程与指定PLC联机运行。
现场环境模拟和PLC监控的数据都是由数据库进行管理。建立数据库,可以使编程简化,并方便以后本实验平台的功能扩展、后续开发。



报警系统主要包括变量报警和操作报警。通过这些报警,操作者可以方便地监视和查看系统的变量和操作。当报警发生时,实验平台将这些报警存于内存中的缓冲区中,报警在缓冲区中是以先进先出的队列形式存储,所以只有近的报警在内存中。当缓冲区达到一定数目或记录定时时间到时,系统自动将报警信息写到报警存储文件、打印机或数据库中并在报警窗中会按照设置的过滤条件实时显示出来。
5 结束语
满足多种PLC的智能实验平台普遍应用于大专院校、研究所的自动化相关实验室。本实验平台所附带的几个范例已能取代各院校实验室内现有的PLC实验装置,并让学生了解到PLC在工业控制中所起到的作用;本实验平台由于其便携性和宽适应性,为研究所在工程项目的设计上提供了便利。

、 系统介绍:
利港电厂化学水处理系统由净化水系统、过滤水系统、化学除盐系统、饮用水系统四部分组成。
1.1、净化水系统:



1.2、过滤水系统:



1.3、化学除盐系统(包括除盐加药系统):
三台除盐给泵→两套活性碳过滤器→两套阳床→两套脱碳器(中间水箱)→两套中间水
泵→两套阴床→两套混床→两只除盐水箱→除盐水泵→送至机组供发电用水。
除盐再生中用酸液对阳床或混床中的失效阳离子交换树脂进行再生。对阴床或混床中的失效阴离子交换树脂进行再生。
1.4、饮用水系统:
两台饮用给泵→两套活性炭过滤器→饮用水贮水箱→稳压罐→饮用水用户。
2、 原控制系统和存在缺点
利港电厂一期水处理原控制系统采用模拟屏显示系统状态及门和泵的运行状态,模拟量的显示和控制通过单独的回路构成,利用调节器和显示器实现。显示表显示实时参数,记录仪记录过程参数。反洗部分实行按钮触发程序控制,在程序控制面板的操作方式下,采用PLC实现部分自动运行方式。该套控制系统已经使用十年时间,老化严重,已经影响生产。主要存在以下缺点:
2.1、原系统的Square D PLC已经使用十年时间,电子元件老化严重,经常出现死机现象,
该品牌的PLC属美标产品在国内使用较少,备品备件难以购置。
2.2、原系统的较多的采用了输入输出继电器设备和硬接线,故障发生率高。
2.3、原系统的控制按钮、模拟显示灯故障发生率高,经常更换维护费用较高。
2.4、原系统采用较多数显表和记录仪表,故障发生率高、维护工作量和费用高。
2.5、原系统采用较多单回路调节器、报警窗,故障发生率高、维护工作量和费用高。
2.6、原系统采用的是单路供电方式,影响系统的安全运行。
3、 改造设计思想:
3.1、拆除原有Square D PLC系统,拆除输入输出等继电器设备,拆除原有的程序控制板部分设备,拆除原有的多个调节器设备。按要求重新配置、组态一套除盐控制系统。
3.2、可编程控制器(PLC)品牌的选用PLC采用guojipinpaiPLC。采用与公司其它系统的控制系统相同的可编程控制器(PLC)品牌,便于以后的备品备件和技术共享。
3.3、用上位机平台控制方式,在CRT上直接进行对系统运行的监视和操作系统设备。上位机的配置,采用价比较高的通用型PC机。通过两台操作员站对化学水处理系统和进行监视控制,即通过LCD画面和键盘对整个工艺系统进行监视和控制,控制室不再设常规控制仪表盘。
3.4、二台操作员站既能同时使用又能互为备用,两台操作员站相对独立,均与现场各个控制站进行通讯,因此能同时使用。两台操作员站中一台兼工程师站,可以对PLC进行在线编程,修改,可以对人机界面软件进行设置和修改。
3.5、化学补给水程控系统主干网采用以太网络,PLC和两台操作员站均接到以太网上构成一个以太网,易于组态、易于使用、易于扩展。留有将化学水处理信息送入电厂SIS(厂级实时监控)系统的接口。利用操作系统bbbbbbS NT的权限管理、事件跟踪、事件记录等功能提高系统的安全性。
4、 设计方案
本控制系统PLC设计采用施耐德公司的QUANTUM 系列产品。系统结合两台上位计算机操作员站的控制方式,在操作控制室通过上位计算机系统对整个水处理流程进行集中运行监示、报警与控制。PLC系统结构见图4-1。



4.1、新的控制系统要求实现系统的大程度的自动化功能。
4.1.1、系统的程序控制:本自动化系统中,程序的任务主要是针对于预处理系统、重力砂滤池系统、除盐系统、饮用水系统及其他辅助系统程序控制,水泵与液位的联锁及加药系统加药量调节控制。根据工艺运行要求,以完成对预处理系统、重力砂滤池系统、除盐系统、饮用水系统及其他辅助系统的启动、停运及保护等控制功能。泵与液位的联锁及参与各系统的调整控,尽可能的实现系统的全自动运行。

5、改造后系统功能比较:
5.1、过程监视和控制
通过各种可选择的画面(如运行画面、摘要画面、事件管理画面、报表画面等)对系统进行监视控制,以实现生产过程的自动化。传统方法是设备平台的操作通过控制室的面板进行,而自动化重要目标之一是更有效地利用设备资源,iFIX可以增强或取代这些传统控制室功能,主要包括:监视、监控和控制。监视具有采集和显示实时工厂数据给所有相关人员的能力。丰富的数字、文字和图形格式使实时数据更容易的被读取和理解。监控具有监视实时数据的能力,同时由计算机直接改变设定点和关键值的能力。通过使用iFIX,可以很方便地控制访问这个数据和可被改变数据点的权限。控制是自动提供算法调整过程数值并使这些数值保持在设定的限度之内的能力。
在本系统中为实现对生产过程的监控共设计了六幅运行画面,分别是:预处理系统、预处理加药、除盐水系统、再生酸碱系统、饮用水系统、系统总图,由于各幅运行画面的操作过程完全类似,因篇幅所限只对系统总图做详细阐述:如下图5-1



操作员在屏幕上可以看到如图5-1所示的内容,分别是:
5.1.1 工具条
工具条是位于画面上顶端一组按钮,在工具条中包括了画面选择栏、系统日期和时间、参数显示区、菜单。在系统运行过程中,操作人员可以通过工具条实现画面的切换、对重要参数的浏览等功能。(如图5-1中箭头1所示)
5.1.2 画面选择栏
画面选择栏由一组画面切换按钮组成,在正常情况下每个按钮对应着一幅画面,通过单击该按钮可以转到相应的运行画面。(如图5-1中箭头2所示)
5.1.3 菜单
由于画面长度限制,无法将所有的画面切换功能放在画面选择栏,因此将具有相同类型的画面切换操作整合在画面选择栏的一个按钮当中,但点击该按钮时就会出现若干个待选对象,单击菜单可以转到相应的运行画面,其效果同画面选择栏中的按钮是一样,这样可以节约大量的屏幕空间。(如图5-1中箭头2所示)
5.1.4 系统日期及时间
工具栏中日期和时间显示块在运行时可以调用系统的当前日期和时间,便于操作人员掌握时间。(如图5-1中箭头4所示)
5.1.5 重要参数显示区
工具栏中参数显示区可以用来显示生产过程中的重要数据指标,便于操作人员依据这些实时参数对相关生产过程进行适当调整。(如图5-1中箭头5所示)
5.1.6 报警栏
报警条位于画面的下方,用于显示新的几条报警。(如图5-1中箭头6所示)
5.1.7 主显示区
重要参数显示区和工具条之下的部分为主显示区。生产过程中所涉及到的各种设备、管线、泵、阀等都在该区域显示,通过该区域可以实现数值修改、设备的操作等功能。(如图5-1中箭头7所示)
5.2 安全配置:为使系统不因非法操作而发生意外,必须启用iFIX安全,通过系统安全文件可以制访问iFix的应用程序和文件,并保护数据文件不被非法修改。
5.3 数据归档:系统中的任何数据点都可根据操作员指定的速率采样存储。这些已归档的数据是进行系统优化和调整的强有力工具。
5.4报表:详尽的报表是回顾过程性能的重要工具。它允许快速掌握生产过程数据之间的关系,并快速作出决定。
5.5 趋势曲线:历史趋势记录提供了生产过程数据的采集、存储和显示的功能。
5.6 报警实现:报警是整个系统运行中非常重要的环节,它可以分为系统实时报警和报警历史查询两部分。
5.7直观的 PID调节:面板中将一个模拟量输入与一个用户定义的设定点相比较,并发送递增的调节以使过程变量更接近设定点。
5.8 顺控操作
顺控是整个化水程控中非常重要的一项功能,可以使系统以预先设定的模式运行,从而减少操作人员对系统的干预,有效提高生产的效率。在顺控部分里共有三种模式:自动模式、半自动模式、手动模式,缺省的为手动模式。
5.9 PLC编程软件采用Concept V2.5版本的专用编程软件,该软件提供了简单友好的用户界面,可重复使用的程序、强劲的搜索功能、自由格式的图形编辑器、完善的在线帮助。很方便的进行程序编写、软件调试、系统维护。如图5-4所示。



6、总结
通过系统的改造,提高了运行操作手段的灵活性、方便性及故障分析手段已经彻底解决原系统的PLC设备老化导致经常死机而影响制水生产的问题;取消原系统中模拟屏显示和系统中控制盘上的操作按钮,改在上位机上显示和在画面上进行操作,大大的方便了运行人员的操作。并且减少因反馈显示和操作按钮引起的故障缺陷。对输入回路的电压由原系统中的110V AC 降为24V DC,并取消原系统中的全部输入继电器,信号直接接至输入模件。既节省大量中间继电器设备,又给现场检修人员对输入设备检修时提供了。设计了双回路自动切换装置,保证供电的可靠性。特别在运行人员切换马控一、二端供电时,无需对控制系统进行采取安全措施,实现了无扰动切换。从改造后的使用效果来看,本次改造是成功的。
改造后的化学水处理PLC控制系统保证各控制系统的硬件统一,解决了原控制系统存在的问题,控制方案设计更加合理,提高了控制系统的可靠性,值得其它系统和兄弟厂家旧设备改造时学习和借鉴。


联系方式

  • 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 联系电话:未提供
  • 经理:聂航
  • 手机:15221406036
  • 微信:15221406036
  • QQ:3064686604
  • Email:3064686604@qq.com