PLC编程入门基础技术知识学习

2016-06-27  xjp7879  摘自 电工技术知...
 
 

第一章  可编程控制器简介

可编程序控制器,英文称Programmable Controller,简称PC。但由于PC容易和个人计算机(Personal Computer)混淆,故人们仍习惯地用PLC作为可编程序控制器的缩写。它是一个以微处理器为核心的数字运算操作的电子系统装置,专为在工业现场应用而设计,它采用可编程序的存储器,用以在其内部存储执行逻辑运算、顺序控制、定时/计数和算术运算等操作指令,并通过数字式或模拟式的输入、输出接口,控制各种类型的机械或生产过程。PLC是微机技术与传统的继电接触控制技术相结合的产物,它克服了继电接触控制系统中的机械触点的接线复杂、可靠性低、功耗高、通用性和灵活性差的缺点,充分利用了微处理器的优点,又照顾到现场电气操作维修人员的技能与习惯,特别是PLC的程序编制,不需要专门的计算机编程语言知识,而是采用了一套以继电器梯形图为基础的简单指令形式,使用户程序编制形象、直观、方便易学;调试与查错也都很方便。用户在购到所需的PLC后,只需按说明书的提示,做少量的接线和简易的用户程序编制工作,就可灵活方便地将PLC应用于生产实践。

一、PLC的结构及各部分的作用

PLC的类型繁多,功能和指令系统也不尽相同,但结构与工作原理则大同小异,通常由主机、输入/输出接口、电源扩展器接口和外部设备接口等几个主要部分组成。PLC的硬件系统结构如下图所示:


                       图1-1-1

1、主机

主机部分包括中央处理器(CPU)、系统程序存储器和用户程序及数据存储器。CPU是PLC的核心,它用以运行用户程序、监控输入/输出接口状态、作出逻辑判断和进行数据处理,即读取输入变量、完成用户指令规定的各种操作,将结果送到输出端,并响应外部设备(如电脑、打印机等)的请求以及进行各种内部判断等。PLC的内部存储器有两类,一类是系统程序存储器,主要存放系统管理和监控程序及对用户程序作编译处理的程序,系统程序已由厂家固定,用户不能更改;另一类是用户程序及数据存储器,主要存放用户编制的应用程序及各种暂存数据和中间结果。

2、输入/输出(I/O)接口

I/O接口是PLC与输入/输出设备连接的部件。输入接口接受输入设备(如按钮、传感器、触点、行程开关等)的控制信号。输出接口是将主机经处理后的结果通过功放电路去驱动输出设备(如接触器、电磁阀、指示灯等)。I/O接口一般采用光电耦合电路,以减少电磁干扰,从而提高了可靠性。I/O点数即输入/输出端子数是PLC的一项主要技术指标,通常小型机有几十个点,中型机有几百个点,大型机将超过千点。

3、电源

图中电源是指为CPU、存储器、I/O接口等内部电子电路工作所配置的直流开关稳压电源,通常也为输入设备提供直流电源。

4、编程

编程是PLC利用外部设备,用户用来输入、检查、修改、调试程序或监示PLC的工作情况。通过专用的PC/PPI电缆线将PLC与电脑联接,并利用专用的软件进行电脑编程和监控。

5、输入/输出扩展单元

I/O扩展接口用于将扩充外部输入/输出端子数的扩展单元与基本单元(即主机)连接在一起。

6、外部设备接口

此接口可将打印机、条码扫描仪,变频器等外部设备与主机相联,以完成相应的操作。

实验装置提供的主机型号有西门子S7-200系列的CPU224(AC/DC/RELAY)。输入点数为14,输出点数为10;CPU226(AC/DC/RELAY),输入点数为26,输出点数为14。

二、PLC的工作原理

PLC是采用“顺序扫描,不断循环”的方式进行工作的。即在PLC运行时,CPU根据用户按控制要求编制好并存于用户存储器中的程序,按指令步序号(或地址号)作周期性循环扫描,如无跳转指令,则从第一条指令开始逐条顺序执行用户程序,直至程序结束。然后重新返回第一条指令,开始下一轮新的扫描。在每次扫描过程中,还要完成对输入信号的采样和对输出状态的刷新等工作。

PLC的一个扫描周期必经输入采样、程序执行和输出刷新三个阶段。

PLC在输入采样阶段:首先以扫描方式按顺序将所有暂存在输入锁存器中的输入端子的通断状态或输入数据读入,并将其写入各对应的输入状态寄存器中,即刷新输入。随即关闭输入端口,进入程序执行阶段。

PLC在程序执行阶段:按用户程序指令存放的先后顺序扫描执行每条指令,经相应的运算和处理后,其结果再写入输出状态寄存器中,输出状态寄存器中所有的内容随着程序的执行而改变。

输出刷新阶段:当所有指令执行完毕,输出状态寄存器的通断状态在输出刷新阶段送至输出锁存器中,并通过一定的方式(继电器、晶体管或晶闸管)输出,驱动相应输出设备工作。

三、PLC的程序编制

编程元件

PLC是采用软件编制程序来实现控制要求的。编程时要使用到各种编程元件,它们可提供无数个动合和动断触点。编程元件是指输入寄存器、输出寄存器、位存储器、定时器、计数器、通用寄存器、数据寄存器及特殊功能存储器等。

PLC内部这些存储器的作用和继电接触控制系统中使用的继电器十分相似,也有“线圈”与“触点”,但它们不是“硬”继电器,而是PLC存储器的存储单元。当写入该单元的逻辑状态为“1”时,则表示相应继电器线圈得电,其动合触点闭合,动断触点断开。所以,内部的这些继电器称之为“软”继电器。

S7-200系列CPU224、CPU226部分编程元件的编号范围与功能说明如下表所示

表1-1-1

元件名称

符号

编号范围

功  能  说  明

输入寄存器

I

I0.0~I1.5共14点

接受外部输入设备的信号

输出寄存器

Q

Q0.0~Q1.1共10点

输出程序执行结果并驱动外部设备

位存储器

M

M0.0~M31.7

在程序内部使用,不能提供外部输出

定时器

256(T0~t255)

T0,T64

保持型通电延时1ms

T1~T4,T65~T68

保持型通电延时10ms

T5~T31,T69~T95

保持型通电延时100ms

T32,T96

ON/OFF延时,1ms

T33~T36,T97~T100

ON/OFF延时,10ms

T37~T63,T101~T255

ON/OFF延时,100ms

计数器

C

C0~C255

加法计数器,触点在程序内部使用

高速计数器

HC

HC0~HC5

用来累计比CPU扫描速率更快的事件

顺控继电器

S

S0.0~S31.7

提供控制程序的逻辑分段

变量存储器

V

VB0.0~VB5119.7

数据处理用的数值存储元件

局部存储器

L

LB0.0~LB63.7

使用临时的寄存器,作为暂时存储器

特殊存储器

SM

SM0.0~SM549.7

CPU与用户之间交换信息

特殊存储器

SM(只读)

SM0.0~SM29.7

接受外部信号

累加寄存器

AC

AC0~AC3

用来存放计算的中间值

2、编程语言

所谓程序编制,就是用户根据控制对象的要求,利用PLC厂家提供的程序编制语言,将一个控制要求描述出来的过程。PLC最常用的编程语言是梯形图语言和指令语句表语言,且两者常常联合使用。

梯形图(语言)

梯形图是一种从继电接触控制电路图演变而来的图形语言。它是借助类似于继电器的动合、动断触点、线圈以及串、并联等术语和符号,根据控制要求联接而成的表示PLC输入和输出之间逻辑关系的图形,直观易懂。

梯形图中常用 图形符号分别表示PLC编程元件的动合和动断触点;

用 ( ) 表示它们的线圈。梯形图中编程元件的种类用图形符号及标注的字母或数加以区别。触点和线圈等组成的独立电路称为网络,用编程软件生成的梯形图和语句表程序中有网络编号,允许以网络为单位给梯形图加注释。

梯形图的设计应注意到以下三点:

①梯形图按从左到右、自上而下地顺序排列。每一逻辑行(或称梯级)起始于左母线,然后是触点的串、并联接,最后是线圈。

②梯形图中每个梯级流过的不是物理电流,而是“概念电流”,从左流向右,其两端没有电源。这个“概念电流”只是用来形象地描述用户程序执行中应满足线圈接通的条件。

③输入寄存器用于接收外部输入信号,而不能由PLC内部其它继电器的触点来驱动。因此,梯形图中只出现输入寄存器的触点,而不出现其线圈。输出寄存器则输出程序执行结果给外部输出设备,当梯形图中的输出寄存器线圈得电时,就有信号输出,但不是直接驱动输出设备,而要通过输出接口的继电器、晶体管或晶闸管才能实现。输出寄存器的触点也可供内部编程使用。

2)指令语句表

指令语句表是一种用指令助记符来编制PLC程序的语言,它类似于计算机的汇编语言,但比汇编语言易懂易学,若干条指令组成的程序就是指令语句表。一条指令语句是由步序、指令语和作用器件编号三部分组成。

下例为PLC实现三相鼠笼电动机起/停控制的两种编程语言的表示方法:

KM  I0.0 I0.1 Q0.0  步序   指令语    器件号

第二章  基本指令简介

 

S7-200的SIMATIC基本指令简表:

助记符

节点命令

功能说明

LD

LDN

N

N

装载(开始的常开触点)

取反后装载(开始的常闭触点)

A

AN

N

N

与(串联的常开触点)

取反后与(串联的常闭触点)

O

ON

N

N

或(并联的常开触点)

取反后或(并联的常闭触点)

EU

ED

 

上升沿检测

下降沿检测

=

N

赋值

S

R

S_BIT,N

S_BIT,N

置位一个区域

复位一个区域

SHRB

DATA,S_BIT,N

移位寄存器

SRB

SLB

OUT,N

OUT,N

字节右移N位

字节左移N位

RRB

RLB

OUT,N

OUT,N

字节循环右移N位

字节循环左移N位

TON

TOF

Txxx,TP

Txxx,TP

通电延时定时器

断电延时定时器

CTU

CTD

Cxxx,PV

Cxxx,PV

加计数器

减计数器

END

 

程序的条件结束

STOP

 

切换到STOP模式

JMP

N

跳到指定的标号

ALD

OLD

 

电路块串联

电路块并联

(其他指令见附表)

一、标准触点指令

LD动合触点指令,表示一个与输入母线相连的动合触点指令,即动合触点逻辑运算起始。

LDN动断触点指令,表示一个与输入母线相连的动断触点指令,即动断触点逻辑运算起始。

A 与动合触点指令,用于单个动合触点的串联。

AX 与非动断触点指令,用于单个动断触点的串联。

O 或动合触点指令,用于单个动合触点的并联。

ON 或非动断触点指令,用于单个动断触点的并联。

LD、LDN、A、AN、O、ON触点指令中变量的数据类型为布尔(BOOC)型。LD、LDN两条指令用于将接点接到母线上,A、AN、O、ON指令均可多次重复使用,但当需要对两个以上接点串联连接电路块的并联连接时,要用后述的OLD指令。

例子:

步序

指令

器件号

步序

指令

器件号

0

LD

I0.0

5

=

Q0.3

1

AN

I0.1

6

=

Q0.4

2

O

I0.2

7

AN

I0.5

3

A

I0.3

8

=

Q0.5

4

ON

I0.4

     

 

二、串联电路块的并联连接指令OLD

两个或两个以上的接点串联连接的电路叫串联电路块。串联电路块并联连接时,分支开始用LD、LDN指令,分支结束用OLD指令。OLD指令与后述的ALD指令均为无目标元件指令,而两条无目标元件指令的步长都为一个程序步。OLD有时也简称或块指令。

三、并联电路的串联连接指令ALD

两个或两个以上接点并联电路称为并联电路块,分支电路并联电路块与前面电路串联连接时,使用ALD指令。分支的起点用LD、LDN指令,并联电路结束后,使用ALD指令与前面电路串联。ALD指令也简称与块指令,ALD也是无操作目标元件,是一个程序步指令。

四、输出指令 =

1、= 输出指令是将继电器、定时器、计数器等的线圈与梯形图右边的母线直接连接,线圈的右边不允许有触点,在编程中,触点以重复使用,且类型和数量不受限制。

五、置位与复位指令S、R

S为置位指令,使动作保持;R为复位指令,使操作保持复位。从指定的位置开始的N个点的寄存器都被置位或复位,N=1~255如果被指定复位的是定时器位或计数器位,将清除定时器或计数器的当前值。

六、跳变触点EU,ED

正跳变触点检测到一次正跳变(触点的入信号由0到1)时,或负跳变触点检测到一次负跳变(触点的入信号由1到0)时,触点接通到一个扫描周期.正/负跳变的符号为EU和ED,他们没有操作数,触点符号中间的”P”和”N”分别表示正跳变和负跳变

七、空操作指令NOP

NOP指令是一条无动作、无目标元件的一个序步指令。空操作指令使该步序为空操作。用NOP指令可替代已写入指令,可以改变电路。在程序中加入NOP指令,在改动或追加程序时可以减少步序号的改变。

八、程序结束指令END

END是一条无目标元件的一序步指令。PLC反复进行输入处理、程序运算、输出处理,在程序的最后写入END指令,表示程序结束,直接进行输出处理。在程序调试过程中,可以按段插入END指令,可以按顺序扩大对各程序段动作的检查。采用END指令将程序划分为若干段,在确认处于前面电路块的动作正确无误之后,依次删去END指令。要注意的是在执行END指令时,也刷新监视时钟。

 

 

第三章  可编程控制器梯形图编程规则

 

一、编程的几个步骤

(一)决定系统所需的动作及次序。

当使用可编程控制器时,最重要的一环是决定系统所需的输入及输出。输入及输出要求:

第一步是设定系统输入及输出数目。

第二步是决定控制先后、各器件相应关系以及作出何种反应。

(二)对输入及输出器件编号

每一输入和输出,包括定时器、计数器、内置寄存器等都有一个唯一的对应编号,不能混用。

(三)画出梯形图。

根据控制系统的动作要求,画出梯形图。

梯形图设计规则

(1)触点应画在水平线上,并且根据自左至右、自上而下的原则和对输出线圈的控制路径来画。

(2)不包含触点的分支应放在垂直方向,以便于识别触点的组合和对输出线圈的控制路径。

(3)在有几个串联回路相并联时,应将触头多的那个串联回路放在梯形图的最上面。在有几个并联回路相串联时,应将触点最多的并联回路放在梯形图的最左面。这种安排,所编制的程序简洁明了,语句较少。

(4)不能将触点画在线圈的右边。

(四)将梯形图转化为程序

把继电器梯形图转变为可编程控制器的编码,当完成梯形图以后,下一步是把它的编码编译成可编程控制器能识别的程序。

这种程序语言是由序号(即地址)、指令(控制语句)、器件号(即数据)组成。地址是控制语句及数据所存储或摆放的位置,指令告诉可编程控制器怎样利用器件作出相应的动作。

(五)在编程方式下用键盘输入程序。

(六)编程及设计控制程序。

(七)测试控制程序的错误并修改。

(八)保存完整的控制程序。

PLC基础入门的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. 「译」JUnit 5 系列:基础入门

    原文地址:http://blog.codefx.org/libraries/junit-5-basics/ 原文日期:25, Feb, 2016 译文首发:Linesh 的博客:JUnit 5 系列: ...

  3. .NET正则表达式基础入门

    这是我第一次写的博客,个人觉得十分不容易.以前看别人写的博客文字十分流畅,到自己来写却发现十分困难,还是感谢那些为技术而奉献自己力量的人吧. 本教程编写之前,博主阅读了<正则指引>这本入门 ...

  4. 从零3D基础入门XNA 4.0(2)——模型和BasicEffect

    [题外话] 上一篇文章介绍了3D开发基础与XNA开发程序的整体结构,以及使用Model类的Draw方法将模型绘制到屏幕上.本文接着上一篇文章继续,介绍XNA中模型的结构.BasicEffect的使用以 ...

  5. 从零3D基础入门XNA 4.0(1)——3D开发基础

    [题外话] 最近要做一个3D动画演示的程序,由于比较熟悉C#语言,再加上XNA对模型的支持比较好,故选择了XNA平台.不过从网上找到很多XNA的入门文章,发现大都需要一些3D基础,而我之前并没有接触过 ...

  6. Shell编程菜鸟基础入门笔记

    Shell编程基础入门     1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail: ...

  7. [Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.

    前言: 在上一篇中: [Spring框架]Spring AOP基础入门总结一. 中 我们已经知道了一个Spring AOP程序是如何开发的, 在这里呢我们将基于AspectJ来进行AOP 的总结和学习 ...

  8. [Spring框架]Spring AOP基础入门总结一.

    前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect ...

  9. RobotFramework - 基础入门

    Robot Framework Wiki HomePage Robot Framework User Guide Robot Framework documentation Robot Framewo ...

随机推荐

  1. 新手写的一个DBCP工具类

    package com.xx.questionnaire.util.dao; import java.io.IOException; import java.sql.Connection; impor ...

  2. TCP/IP 协议分层

    协议分层 可能大家对OSI七层模型并不陌生,它将网络协议很细致地从逻辑上分为了7层.但是实际运用中并不是按七层模型,一般大家都只使用5层模型.如下: 物理层:一般包括物理媒介,电信号,光信号等,主要对 ...

  3. Sql Server cross apply和outer apply

    with result as( select t.str from( ' str union all ' str union all ' str union all ' str union all ' ...

  4. Delphi新注释

    标准请看帮助文件里的:XML Documentation Comments 个人常用 <summary></summary>:摘要 /// <summary> // ...

  5. 安装exe4j出现jre不匹配问题

    在安装exe4j 客户端,提示如下错误: 提示的错误信息大意如下:install4j安装时,在本系统中没有找到JRE(JavaRuntime Environment)(版本要求:最低1.5,最高1.6 ...

  6. python 导入beautifulsoup报错

    导入Beautifulsoup 报错 AttributeError: 'module' object has no attribute '_base' 解决方法:   pip install --up ...

  7. margin负值应用

    我理解的最关键的一点是: 在文档流中,只能是后面的流向前面的,即文档流只能向左或向上流动,不能向下或向右移动.第二个元素的基准线是第一个元素的右边界,第三个元素的基准线是第一.二个元素排好后最右边的边 ...

  8. win10下硬盘安装CentOS7

    安装环境: 1.系统:Windows 10 2.硬盘:SSD(已装好Win 10) + HHD(用来装CentOS 7) 准备工作: 1.DiskGenius(分区工具):用来给硬盘做分区: 2.系统 ...

  9. 19Spring返回通知&异常通知&环绕通知

    在前置通知和后置通知的基础上加上返回通知&异常通知&环绕通知 代码: package com.cn.spring.aop.impl; //加减乘除的接口类 public interfa ...

  10. 洛谷 4933 洛谷10月月赛II T2 大师

    [题解] f[i][j]表示最后一个数为h[i],公差为j的等差数列的个数.n方枚举最后一个数和倒数第二个数转移即可.注意公差可能为负数,需要移动为正数再作为下标. #include<cstdi ...