PLC编程语言的设计与应用

发布者:RadiantEyes最新更新时间:2012-09-29 来源: 21ic 关键字:PLC  集散控制系统  计时器  计数器  继电器 手机看文章 扫描二维码
随时随地手机看文章
    1  引言
    在PLC中有多种程序设计语言,如梯形图语言、布尔助记符语言、功能表图语言、功能模块图语言及结构化语句描述语言等。梯形图语言和布尔助记符语言是基本程序设计语言,它通常由一系列指令组成,用这些指令可以完成大多数简单的控制功能,例如,代替继电器、计数器、计时器完成顺序控制和逻辑控制等。通过扩展或增强指令集,它们也能执行其它的基本操作。功能表图语言和语句描述语言是高级的程序设计语言,它可根据需要去执行更有效的操作,例如,模拟量的控制,数据的操纵,报表的报印和其他基本程序设计语言无法完成的功能。功能模块图语言采用功能模块图的形式,通过软连接的方式完成所要求的控制功能,它不仅在PLC中得到了广泛的应用,在集散控制系统的编程和组态时也常常被采用。由于它具有连接方便、操作简单、易于掌握等特点,为广大工程设计和应用人员所喜爱。
    2  常用的程序设计语言分类
    根据PLC应用范围,程序设计语言可以组合使用,常用的程序设计语言有以下几种: 
    (1) 梯形图(Ladder Diagram)程序设计语言
    梯形图程序设计语言是用梯形图的图形符号来描述程序的一种程序设计语言。采用梯形图程序设计语言,这种程序设计语言采用因果关系来描述事件发生的条件和结果,每个梯级是一个因果关系。在梯级中,描述事件发生的条件表示在左面,事件发生的结果表示在右面。
    梯形图程序设计语言是最常用的一种程序设计语言,它来源于继电器逻辑控制系统的描述。在工业过程控制领域,电气技术人员对继电器逻辑控制技术较为熟悉。因此,由这种逻辑控制技术发展而来的梯形图受到欢迎,并得到广泛的应用。
    梯形图程序设计语言的特点是:
    ·与电气操作原理图相对应,具有直观性和对应性;
    ·与原有继电器逻辑控制技术相一致,易于撑握和学习;
    ·与原有的继电器逻辑控制技术的不同点是:梯形图中的能流(Power FLow)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此应用时需与原有继电器逻辑控制技术的有关概念区别对待;
    ·与布尔助记符程序设计语言有一一对应关系,便于相互转换和程序检查。
    (2) 布尔助记符(Boolean Mnemonic)程序设计语言
    布尔助记符程序设计语言是用布尔助记符来描述程序的一种程序设计语言。布尔助记符程序设计语言与计算机中的汇编语言非常相似,采用布尔助记符来表示操作功能。
    布尔助记符程序设计语言具有下列特点:
    ·采用助记符来表示操作功能,具有容易记忆,便于撑握的特点;
    ·在编程器的键盘上采用助记符表示控制工程网版权所有,具有便于操作的特点,可在无计算机的场合进行编程设计;
    ·与梯形图有一一对应关系,其特点与梯形图语言基本类同。
    (3) 功能表图(Sepuential Function Chart)程序设计语言
    功能表图程序设计语言是用功能表图来描述程序的一种程序设计语言。它是近年来发展起来的一种程序设计语言。采用功能表图的描述,控制系统被分为若干个子系统,从功能入手,使系统的操作具有明确的含义,便于设计人员和操作人员设计思想的沟通,便于程序的分工设计和检查调试。功能表图程序设计语言的特点是:
    ·以功能为主线,条理清楚,便于对程序操作的理解和沟通;
    ·对大型的程序www.cechina.cn,可分工设计,采用较为灵活的程序结构,可节省程序设计、调试时间;
    ·常用于系统规模校大、程序关系较复杂的场合;
    ·只有在活动步的命令和操作被执行,对活动步后的转换进行扫描,因此整个程序的扫描时间较其他程序编制的程序扫描时间要短得多。
    功能表图来源于佩特利(Petri)网,由于它具有图形表达方式,能比较简单清楚地描述并发系统和复杂系统的所有现象,并能对系统中存在的象死锁、不安全等反常现象进行分析和建模,在模型的基础上可以直接编程,因此得到了广泛的应用。近几年推出的可编程控制器和小型集散控制系统中也已提供了采用功能表图描述语言进行编程的软件。
    (4) 功能模块图(Function Block)程序设计语言
    功能模块图程序设计语言是采用功能模块来表示模块所具有的功能,不同的功能模块有不同的功能。它有若干个输入端和输出端www.cechina.cn,通过软连接的方式,分别连接到所需的其它端子,完成所需的控制运算或控制功能。功能模块可
    以分为不同的类型,在同一种类型中,也可能因功能参数的不同而使功能或应用范围有所差别,例如,输入端的数量、输入信号的类型等的不同使它的使用范围不同。由于采用软连接的方式进行功能模块之间及功能模块与外部端子的连接,因此控制方案的更改、信号连接的替换等操作可以很方便实现。功能模块图程序设计语言的特点是:
    ·以功能模块为单位,从控制功能入手,使控制方案的分析和理解变得容易;
    ·功能模块是用图形化的方法描述功能,它的直观性大大方便了设计人员的编程和组态,有较好的易操作性;
    ·对控制规模较大、控制关系较复录的系统,由于控制功能的关系可以较清楚地表达出来,因此,编程和组态时间可以缩短,调试时间也能减少;
    ·由于每种功能模块需要占用一定的程序内存,对功能模块的执行需要一定的执行时间,因此,这种设计语言在大中型PLC和集散控制系统的编程和组态中才被采用。
    (5) 结构化语句(Structured Text)描述程序设计语言
    结构化语句描述程序设计语言是用结构化的描述语句来描述程序的一种程序设计语言。它是一种类似于高级语言的程序设计语言。在大中型的可编程序控制器系统中,常采用结构化语句描述程序设计语言来描述控制系统中各个变量的关系。它也被用于集散控制系统的编程和组态。
    结构化语句描述程序设计语言采用计算机的描述语句来描述系统中各种变量之间的运算关系,完成所需的功能或操作。大多数制造厂商采用的语句描述程序设计语言与BASIC语言、PASCAL语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。
    结构化程序设计语言具有下列特点:
    ·采用高级语言进行编程,可以完成较复杂的控制运算;
    ·需要有一定的计算机高级程序设计语言的知识和编程技巧,对编程人员的技能要求较高,普通电气人员难以完成。
    ·直观性和易操作性等较差;
    ·常被用于采用功能模块等其他语言较难实现的一些控制功能的实施。
    部分PLC的制造厂商为用户提供了简单的结构化程序设计语言,它与助记符程序设计语言相似,对程序的步数有一定的限制。同时,提供了与PLC间的接口或通信连接程序的编制方式,为用户的应用程序提供了扩展余地。
    3  PLC程序设计语言应用实例
    温度控制是许多机器的重要的构成部分。它的功能是将温度控制在所需要的温度范围内,然后进行工件的加工与处理。PID控制系统是得到广泛应用的控制方法之一,下面较为详尽地介绍了PID温度控制的PLC程序设计实例。
     (1) 系统组成
    本套系统采用Omron的PLC与其温控单元以及Pro-face的触摸屏所组成。系统包括CQM1H-51、扩展单元TC-101、GP577R以及探温器、加热/制冷单元。
    (2) 触摸屏参数设置
    设002代表现在的温度CONTROL ENGINEERING China版权所有,而102表示输出的温度。如按下开始设置就可设置参数。需要设置的参数有6个,分别是比例带、积分时间、微分时间、滞后值、控制周期、偏移量。它们在PLC的地址与一些开关的地址如下:
    比例带 : DM51  积分时间 : DM52
    微分时间 : DM53  滞后值 : DM54
    控制周期 : DM55  偏移量 : DM56
    数据刷新 : 22905[page]
    (3) PLC程序
        002:PID的输入字
        102:PID的输出字
        [NETWORK]
        Name="Action Check"  //常规检查
        [STATEMENTLIST]
        LD 253.13      //常ON
        OUT TR0
        CMP 002 #FFFF     
        //确定温控单元是否完成初始化
        AND NOT 255.06     //等于
        OUT 041.15   //初始化完成
        LD TR0
        AND 041.15
        OUT TR1
        AND NOT 040.10    
        //不在参数设置状态
        MOV DM0050 102    
        //将设置温度DM50传送给PID输出字
        LD TR1
        MOV 002 DM0057    
        //将002传送到DM57
        [NETWORK]
        Name="Setting Start"  //设置开始
        [STATEMENTLIST]
        LD 253.13
        OUT TR0
        AND 229.05  
        //触摸屏上的开始设置开关
        DIFU 080.05  //设置微分
        LD TR0
        AND 041.15
        AND 080.05
        SET 040.01   //开始设置标志位1
        SET 040.10   //开始设置标志位2
        [NETWORK]
        Name="Poportion"   //比例带设置
        [STATEMENTLIST]
        LD 040.01
        OUT TR0
        AND NOT 042.01
        MOV #C110 102
        //读输出边与输入边的比例带
        CMP 002 #C110
        //比较输入字是否变成C110
        AND 255.06 //等于
        SET 042.01 //设置比例带标志
        LD TR0
        AND 042.01
        MOV DM0051 102
        //将比例带的设定值写入输出字
        CMP 002 DM0051 //是否写入
        AND 255.06
        SET 040.01      //复位标志1
        RSET 042.01    //复位比例带标志
        SET 040.02     //向下继续设置标志
        [NETWORK]
        Name="Integral"//积分时间设置
        [STATEMENTLIST]
        LD 040.02
        OUT TR0
        AND NOT 042.02
        MOV #C220 102 
        //读输出边与输入边的积分
        CMP 002 #C220 
        //比较输入字是否变成C220
        AND 255.06
        SET 042.02      //设置积分标志
        LD TR0
        AND 042.02
        MOV DM0052 102
        //将积分的设定值写入输出字
        CMP 002 DM0052 //是否写入
        AND 255.06
        RSET 040.02
        RSET 042.02
        SET 040.03      //向下继续设置标志
        [NETWORK]
        Name="differential"//微分时间设置
        [STATEMENTLIST]
        LD 040.03
        OUT TR0
        AND NOT 042.03
        MOV #C330 102
        //读输出边与输入边的微分
        CMP 002 #C330
        //比较输入字是否变成C330
        AND 255.06
        SET 042.03      //设置微分标志
        LD TR0
        AND 042.03
        MOV DM0053 102
        //将微分的设定值写入输出字
        CMP 002 DM0053 //是否写入
        AND 255.06
        RSET 040.03
        RSET 042.03
        SET 040.04      //向下继续设置标志
        [NETWORK]
        Name="Hysteresis"//滞后值设置
        [STATEMENTLIST]
        LD 040.04
        OUT TR0
        AND NOT 042.04
        MOV #C440 102
        //读输出边与输入边的滞后值
        CMP 002 #C440
        //比较输入字是否变成C440
        AND 255.06
        SET 042.04 //设置滞后值标志
        LD TR0
        AND 042.04
        MOV DM0054 102
        //将滞后值的设定值写入输出字
        CMP 002 DM0054 //是否写入
        AND 255.06
        RSET 040.04
        RSET 042.04
        SET 040.05      //向下继续设置标志
        [NETWORK]
        Name="Period"  //控制周期设置
        [STATEMENTLIST]
        LD 040.05
        OUT TR0
        AND NOT
        042.05
        MOV #C550 102
        //读输出边与输入边的控制周期
        CMP 002 #C550
        //比较输入字是否变成C550
        AND 255.06
        SET 042.05    //设置控制周期标志
        LD TR0
        AND 042.05
        MOV DM0055 102
        //将控制周期的设定值写入输出字
        CMP 002 DM0055 //是否写入
        AND 255.06
        RSET 040.05
        RSET 042.05
        SET 040.06    //向下继续设置标志
        [NETWORK]
        Name="Shift"  //偏移量设置
        [STATEMENTLIST]
        LD 040.06
        OUT TR0
        AND NOT 042.06
        MOV #C660 102
        //读输出边与输入边的偏移量
        CMP 002 #C660
        //比较输入字是否变成C660
        AND 255.06
        SET 042.06    //设置偏移量标志
        LD TR0
        AND 042.06
        MOV DM0056 102
        //将偏移量的设定值写入输出字
        CMP 002 DM0056 //是否写入
        AND 255.06
        RSET 040.06
        RSET 042.06
        SET 040.00
        [NETWORK]
        Name="Return"   //返回
        [STATEMENTLIST]
        OUT TR0
        AND NOT 042.00
        MOV #C070 102 //读输入边的处理值
        CMP 002 #C070 //比较输入字变成C070
        AND 255.06
        SET 042.00      //返回标志
        LD TR0
        AND 042.00
        MOV DM0050 102
        //将设定温度值写入输出字
        RSET 040.00
        RSET 042.00
        RSET 040.10
    4  结束语
    以上是PID温度控制的PLC程序设计实例,经过反复试验,该系统可以维持温度在1℃之间变化,保证了好的生产状况CONTROL ENGINEERING China版权所有,减少了不合格品发生的几率。
关键字:PLC  集散控制系统  计时器  计数器  继电器 引用地址:PLC编程语言的设计与应用

上一篇:双电机驱动的电动螺旋压力机PLC控制系统
下一篇:Si1143 红外接近传感器的优势简介

推荐阅读最新更新时间:2024-05-02 22:21

配合智能电表趋势的PLC技术及解决方案
当今很多国家都已采用或即将部署智能电表系统,并采用自动远程集抄方式。目前备受关注的是法国ERDF的Linky电表项目。欧盟最大的电力配电网运营商、法国电力集团(EDF)的子公司——法国电网输送公司(ERDF)已经启动了一个涉及总数目3,500万只电表的项目。从2012年至2017年,该项目将把法国国内的传统电表统一更换成新型的Linky智能电表。这类智能电表通信采用了扩频的频移键控(S-FSK)电力线载波(PLC)技术。 安森美半导体在电表领域积累了十多年的丰富经验,为这一重要且快速增长的智能电表市场提供通用及稳定的方案,包括最新推出的PLC调制解调器系统级芯片(SoC),可广泛用于智能电表、远程控制/家居显示屏(IHD)、太阳能
[嵌入式]
PLC在北京地铁配电变压器远程监控系统中的应用
       1、前言   随着我国经济的高速发展,用电量的日益增加,配电的安全可靠性日益重要。配电网络由配电变压器、配线柜及配电线路构成,配电变压器的安全可靠决定了配电网运行的安全可靠。由于配电变压器分布分散,干扰大,配电变压器之间通讯比较困难,用常规的自动化监测手段难以实现大量配电变压器参数的集中监测。当配电变压器出现故障或者遭到人为破坏的时候,例如出现超负荷运行等情况时,无法及时反映到监控中心,容易造成巨大的损失。本文所述的配电变压器智能化远程监控系统为解决上述问题提供了一套可行的方案。   2、系统功能   (1)保护监测功能:变压器电流差动保护、变压器差流速断保护、变压器过流后备保护、过电压保护、电流测量、电
[嵌入式]
三菱PLC单相双计数输入高速计数器图解
    三菱PLC单相双计数输入高速计数器(C246-C250):这类高速计数器具有两个输入端,一个为增计数输入端,另一个为减计数输入端。利用M8246~M8250的ON/OFF动作可监控C246~C250的增计数/减计数动作。 单相双计数输入高速计数器     如上图所示,X010为复位信号,其有效ON则C248复位。可利用X005对其复位。当X011接通时,选中C248,输入来自X003和X0040。
[嵌入式]
5个例子一步步带你入门PLC
PLC和变频器都是工业控制中最常用的设备,二者可以单独使用,也可以密切配合,都能够达到自动化控制的目的,应用非常的广泛,今天就举一个具体的例子:双恒压无塔供水系统,这个系统是由变频器和PLC密切配合才能完成的,一般都在大的项目上使用。
[嵌入式]
5个例子一步步带你入门<font color='red'>PLC</font>
S7-1200系列PLC全套接线图详解
导读 西门子S7-1200是一款紧凑型、模块化的PLC,可完成简单逻辑控制、高级逻辑控制、HMI 和网络通信等任务。对于需要网络通信功能和单屏或多屏HMI的自动化系统,易于设计和实施。具有支持小型运动控制系统、过程控制系统的高级应用功能。SIMATIC S7-1200 具有用于进行计算和测量、闭环回路控制和运动控制的集成技术,是一个功能非常强大的系统,可以实现多种类型的自动化任务。下面分享S7-1200系列PLC全套接线图给大家,收藏起来慢慢看! 01 S7-1200输入输出接线图 CPU 1211C 接线图 CPU 1211C AC/DC/继电器 (6ES7 211-1BE40-0XB0) ① 24 VDC 传
[嵌入式]
S7-1200系列<font color='red'>PLC</font>全套接线图详解
单片机定时器/计数器内部结构
MCS-51单片计算机内部的定时器/计数器逻辑结构如图1所示。 图1 定时器/计数器逻辑结构图
[单片机]
单片机定时器/<font color='red'>计数器</font>内部结构
安全PLC和普通PLC的区别在哪里
西门子V90伺服驱动系统作为SINAMICS驱动系列家族的新成员,与SIMOTICS S-1FL6 结合,组成优秀的伺服驱动系统,实现位置控制、速度控制和扭矩控制。通过优化的设计,SINAMICS V90确保了的伺服控制性能,经济实用、稳定可靠。 概述 国内的企业越来越重视设备的安全防护,可事故却频频发生,这是为什么呢?主要还是源自于大家对于安全防护知识上存在的诸多误区,比如很多人认为,稳定性高、性能强的PLC即可替代安全控制器的作用,其实这就是误区,往往投入了不少,却依然换不回真正的安全。其实安全型PLC具有独特的“冗余+比较”的工作方式,全面细致的检测与诊断,能够构建真正安全的控制回路。 作为安全家族的最重要环节,安全PL
[嵌入式]
安全<font color='red'>PLC</font>和普通<font color='red'>PLC</font>的区别在哪里
S7-1500引发PLC故障的外部因素有哪些?
  一般PLC的故障主要是由外部故障或内部错误造成。外部故障是由外部传感器或执行机构故障等引发PLC产生故障,可能会使整个系统停机,甚至烧坏PLC。   而内部错误是PLC内部的功能性错误或编程错误造成的,可以使系统停机。S7-1500 PLC具有很强的错误(或称故障)检测和处理能力,CPU检测到某种错误后,操作系统调用对应的组织块,用户可以在组织块中编程,对发生的错误采取相应的措施。对于大多数错误,如果没有给组织块编程,出现错误时CPU将进入STOP模式。   1.1 引发PLC故障的外部因素   (1)外部电磁感应干扰   PLC外部存在干扰源,通过辐射或者电源线侵入PLC内部,引发PLC误动作,或者造成PLC不能正常
[嵌入式]
S7-1500引发<font color='red'>PLC</font>故障的外部因素有哪些?
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved