- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本文由liangchaock贡献
PLC的面向对象编程
圈子类别:系统集成 (未知) 2008-11-18 22:32:00
[我要评论] [加入收藏] [加入圈子]
面向对象编程是计算机高级语言的一种先进的编程模式,在工业控制系统的PLC
程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多优秀特点如 “继
承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程的基本概念
就是类和类的实例(即对象),我们只需要使用这种概念就可以了。在计算机编程中
我们需要把一些事物抽象和归纳,才能编写类,而在工业控制系统中,控制对象如:
电机,阀等等是很明显的控制类别,不需要抽象就可以很明显的针对它 们编写类,以
下将会用到西门子的Step7编程语言和施奈德的Unity 编程语言来讲解PLC的面向对象
编程。
一、 实现方式
在Step7中使用功能块(即FB)编程,一谈到此大家就会想到西门子提出的模块
化编程,不错,就是这个模块化编程,但西门子提出的模块化、背景数据块、多重背
景等名词并不能让大家很明白的理解和使用这种优秀的设计理念。如果大家从面向对
象编程的角度去理解,则可以很好的理解这种设计模式。“FB块”被看 成“类”,它
可以被看成是对相似的控制对象的代码归纳,如对MM440的变频器可以编写FB块:MtrM
M440,这在面向对象编程中称为“类”,当需要 编程控制具体的电机时,可以给它分
配一个背景DB块,在面向对象编程中称为类的实现(即创建类的实例:对象),当需
要控制多个电机时,可以分配不同的背景 DB到这个FB块,即创建类的多个实例。Ste
p7中有另外一种程序块,即FC块,以FC块为主的编程在西门子中称为结构化编程,这
也可以类比于计算机编程中的面向过程编程,即纯粹以函数为主体的编程。
施奈德的Unity软件编程可以更好的理解面向对象编程。它的DFB定义中包含输入
/输出参数,私有/共有变量,以及代码实现,而这正是计算机的面向对象 编程中“类
”的基本元素,而创建类的实例(对象)就像创建普通的“布尔”变量一样,只需在
“Function Blocks”中定义这种“类”的变量即可。
Step7和Unity都可以采用面向过程和面向对象编程方式,这两种编程方式的区别
类似于计算机高级语言中的C语言和C++语言编程的区别。
以下的讲解将会把Step7中的FB和Unity中的DFB称为“类”,Step7中的FB+背景
DB以及Unity中DFB的实例称为“对象”。
二、 面向对象编程架构
以上讲解的是实现细节,而编程思想是建立在程序架构上的,不是某个局部使用
了面向对象方式,则可以称之为这种编程就是面向对象编程。这种编程需要从以下方
面着手:
1、 电路设计的结构化。
这里主要以自动线为主介绍,对于单机机床可以是它的简化结构,
1、自动线层:这是最高层次,它拥有一个主PLC,对属于它下面的各区域控制
2、工程层:拥有独立的配送电系统,但没有PLC,只有分布式模块,由自动线
控制。顾名思义,它有着较大的独立性,可以作为一个单独的工程项目设计和制造,
当自动线比较小时,可以省略该层次。
3、功能组层:根据工艺划分,将实现某一个工艺功能的区段设备划分为一个
功能组,它隶属于工程层,当工程层被省略时,隶属于自动线层。
面向对象编程并不一定要求使用以上的结构,但好的电气结构更利于面向对象编
程。
2、 任何控制对象逻辑都在“类”中实现。
为了做到这点,必须分析与控制对象相关的信息,譬如,对于一个电机,有以下
相关的信息需要考虑:
输入信息:
1、电路保护信息,如电机的空气开关,热继电器等。
2、功能保护信息,如运动电机的限位开关,风机的风压开关,油泵的油位开
page 1
关等。
3、启动和终止条件,以上的电路保护和功能保护都可能导致电机运转终止,
复位也可能导致重启动,但这里的条件指的是正常运行的启动和终止条件,譬如顺序
控制的流程步。
4、控制模式:如手动和自动等。
5、故障复位:通过复位信息,重新启动。
输出信息:
1、控制输出,如控制电机的主接触器。
2、状态信息输出
您可能关注的文档
- Java实战之STRUTS第二章Struts 入门案例.doc
- JAVA实验五多态性.doc
- java程序员考试套题.doc
- java获取文件夹下所有文件的名称.doc
- java课后习题及答案.pdf
- java课后答案(整理).doc
- Java调用Delphi开发的Dll小结.doc
- Keepalived HA配置和测试过程for linux.doc
- Kingdom Rush Frontiers 2.3全成就攻略含新增海岛万圣节6个关卡.doc
- Kruskal算法的一种改进-二分Kruskal算法.pdf
- PoC手册 - 1 基础环境 - Lab 05 XenApp安装与配置1.0.pdf
- PowerPoint 2013幻灯片中动画效果的设置方法.doc
- PowerPoint 入门到精通(系列课程三).pdf
- Proteus 7 Professional 仿真51 单片机入门教程.pdf
- PSSC0109ILTT - EQL PS系列存储阵列配置操作维护.doc
- PTN网络承载LTE的演进之路.doc
- python第三方模块安装指南.pdf
- QQ物联产品配置方法V1.0.pdf
- RedHat6.3 安装oracle11GR2 详细整理(针对初学linux者).doc
- REFPROP 永久嵌入EXCEL运行安装步骤.pdf
原创力文档


文档评论(0)