我的机械网

搜索
查看: 874|回复: 8

PLC编程基础教程第三章

  [复制链接]
发表于 2017-11-5 15:44:55 | 显示全部楼层 |阅读模式
各位网友请注意:我的机械网所有附件、百度网盘提取码、机械资料、PDF资料、压缩包文件均需要回帖后才能下载!
                        
第三章 基本指令系统和编程方法
§1 基本指令系统特点
PLC的编程语言与一般计算机语言相比,具有明显的特点,它既不同于高级语言,也不同与一般的汇编语言,它既要满足易于编写,又要满足易于调试的要求。目前,还没有一种对各厂家产品都能兼容的编程语言。如三菱公司的产品有它自己的编程语言,OMRON公司的产品也有它自己的语言。但不管什么型号的PLC,其编程语言都具有以下特点:
1. 图形式指令结构:程序由图形方式表达,指令由不同的图形符号组成,易于理解和记忆。系统的软件开发者已把工业控制中所需的独立运算功能编制成象征性图形,用户根据自己的需要把这些图形进行组合,并填入适当的参数。在逻辑运算部分,几乎所有的厂家都采用类似于继电器控制电路的梯形图,很容易接受。如西门子公司还采用控制系统流程图来表示,它沿用二进制逻辑组件图形符号来表达控制关系,很直观易懂。较复杂的算术运算、定时计数等,一般也参照梯形图或逻辑组件图给予表示,虽然象征性不如逻辑运算部分,也受用户欢迎
2. 明确的变数常数:图形符相当于操作码,规定了运算功能,操作数由用户填人,如:K400,T120等。PLC中的变量和常数以及其取值范围有明确规定,由产品型号决定,可查阅产品目录手册。
3. 简化的程序结构:PLC的程序结构通常很简单,典型的为块式结构,不同块完成不同的功能,使程序的调试者对整个程序的控制功能和控制顺序有清晰的概念。
4. 简化应用软件生成过程:使用汇编语言和高级语言编写程序,要完成编辑、编译和连接三个过程,而使用编程语言,只需要编辑一个过程,其余由系统软件自动完成,整个编辑过程都在人机对话下进行的,不要求用户有高深的软件设计能力。
5. 强化调试手段:无论是汇编程序,还是高级语言程序调试,都是令编辑人员头疼的事,而PLC的程序调试提供了完备的条件,使用编程器,利用PLC和编程器上的按键、显示和内部编辑、调试、监控等,并在软件支持下,诊断和调试操作都很简单。
总之,PLC的编程语言是面向用户的,对使用者不要求具备高深的知识、不需要长时间的专门训练。
§2 编程语言的形式
本教材采用最常用的两种编程语言,一是梯形图,二是助记符语言表。采用梯形图编程,因为它直观易懂,但需要一台个人计算机及相应的编程软件;采用助记符形式便于实验,因为它只需要一台简易编程器,而不必用昂贵的图形编程器或计算机来编程。
虽然一些高档的PLC还具有与计算机兼容的C语言、BASIC语言、专用的高级语言(如西门子公司的GRAPH5、三菱公司的MELSAP),还有用布尔逻辑语言、通用计算机兼容的汇编语言等。不管怎么样,各厂家的编程语言都只能适用于本厂的产品。
l 编程指令:指令是PLC被告知要做什么,以及怎样去做的代码或符号。从本质上讲,指令只是一些二进制代码,这点PLC与普通的计算机是完全相同的。同时PLC也有编译系统,它可以把一些文字符号或图形符号编译成机器码,所以用户看到的PLC指令一般不是机器码而是文字代码,或图形符号。常用的助记符语句用英文文字(可用多国文字)的缩写及数字代表各相应指令。常用的图形符号即梯形图,它类似于电气原理图是符号,易为电气工作人员所接受。
l 指令系统:一个PLC所具有的指令的全体称为该PLC的指令系统。它包含着指令的多少,各指令都能干什么事,代表着PLC的功能和性能。一般讲,功能强、性能好的PLC,其指令系统必然丰富,所能干的事也就多。我们在编程之前必须弄清PLC的指令系统
l 程序:PLC指令的有序集合,PLC运行它,可进行相应的工作,当然,这里的程序是指PLC的用户程序。用户程序一般由用户设计,PLC的厂家或代销商不提供。用语句表达的程序不大直观,可读性差,特别是较复杂的程序,更难读,所以多数程序用梯形图表达。
l 梯形图:梯形图是通过联机把PLC指令的梯形图符号连接在一起的连通图,用以表达所使用的PLC指令及其前后顺序,它与电气原理图很相似。它的联机有两种:一为母线,另一为内部横竖线。内部横竖线把一个个梯形图符号指令连成一个指令组,这个指令组一般总是从装载(LD)指令开始,必要时再继以若干个输入指令(含LD指令),以建立逻辑条件。最后为输出类指令,实现输出控制,或为数据控制、流程控制、通讯处理、监控工作等指令,以进行相应的工作。母线是用来连接指令组的。下图是三菱公司的FX2N系列产品的最简单的梯形图例:
20170308112354141.jpg


它有两组,第一组用以实现启动、停止控制。第二组仅一个END指令,用以 结束程序。
l 梯形图与助记符的对应关系:助记符指令与梯形图指令有严格的对应关系,而梯形图的联机又可把指令的顺序予以体现。一般讲,其顺序为:先输入,后输出(含其它处理);先上,后下;先左,后右。有了梯形图就可将其翻译成助记符程序。上图的助记符程序为:
地址 指令变量
0000 LD X000
0001 OR X010
0002 AND NOT X001
0003 OUT Y000
0004 END
反之根据助记符,也可画出与其对应的梯形图。
l 梯形图与电气原理图的关系:如果仅考虑逻辑控制,梯形图与电气原理图也可建立起一定的对应关系。如梯形图的输出(OUT)指令,对应于继电器的线圈,而输入指令(如LD,AND,OR)对应于接点,互锁指令(IL、ILC)可看成总开关,等等。这样,原有的继电控制逻辑,经转换即可变成梯形图,再进一步转换,即可变成语句表程序。
有了这个对应关系,用PLC程序代表继电逻辑是很容易的。这也是PLC技术对传统继电控制技术的继承。
§3 编程器件
下面我们着重介绍三菱公司的FX2N系列产品的一些编程组件及其功能。
FX系列产品,它内部的编程组件,也就是支持该机型编程语言的软组件,按通俗叫法分别称为继电器、定时器、计数器等,但它们与真实组件有很大的差别,一般称它们为“软继电器”。这些编程用的继电器,它的工作线圈没有工作电压等级、功耗大小和电磁惯性等问题;触点没有数量限制、没有机械磨损和电蚀等问题。它在不同的指令操作下,其工作状态可以无记忆,也可以有记忆,还可以作脉冲数字组件使用。一般情况下,X代表输入继电器,Y代表输出继电器,M代表辅助继电器,SPM代表专用辅助继电器,T代表定时器,C代表计数器,S代表状态继电器,D代表数据寄存器,MOV代表传输等。
一、 输入继电器 (X)
PLC的输入端子是从外部开关接受信号的窗口,PLC 内部与输入端子连接的输入继电器X是用光电隔离的电子继电器,它们的编号与接线端子编号一致(按八进制输入),线圈的吸合或释放只取决于PLC外部触点的状态。内部有常开/常闭两种触点供编程时随时使用,且使用次数不限。输入电路的时间常数一般小于10ms。各基本单元都是八进制输入的地址,输入为X000 ~ X007,X010 ~X017,X020 ~X027 。它们一般位于机器的上端。
二、 输出继电器(Y)
PLC的输出端子是向外部负载输出信号的窗口。输出继电器的线圈由程控,输出继电器的外部输出主触点接到PLC的输出端子上供外部负载使用,其余常开/常闭触点供内部程序使用。输出继电器的电子常开/常闭触点使用次数不限。输出电路的时间常数是固定的 。各基本单元都是八进制输出,输出为Y000 ~Y007,Y010~Y017,Y020~Y027 。它们一般位于机器的下端。
三、 辅助继电器(M)
PLC内有很多的辅助继电器,其线圈与输出继电器一样,由PLC内各软组件的触点驱动。辅助继电器也称中间继电器,它没有向外的任何联系,只供内部编程使用。它的电子常开/常闭触点使用次数不受限制。但是,这些触点不能直接驱动外部负载,外部负载的驱动必须通过输出继电器来实现。如下图中的M300,它只起到一个自锁的功能。在FX2N中普遍途采用M0~M499,共500点辅助继电器,其地址号按十进制编号。辅助继电器中还有一些特殊的辅助继电器,如掉电继电器、保持继电器等,在这里就不一一介绍了。
20170308112401635.png
四、 定时器(T)
在PLC内的定时器是根据时钟脉冲的累积形式,当所计时间达到设定值时,其输出触点动作,时钟脉冲有1ms、10ms、100ms。定时器可以用用户程序内存内的常数K作为设定值,也可以用数据寄存器(D)的内容作为设定值。在后一种情况下,一般使用有掉电保护功能的数据寄存器。即使如此,若备用电池电压降低时,定时器或计数器往往会发生误动作。
定时器通道范围如下:
100 ms定时器T0~T199, 共200点,设定值:0.1~ 3276.7秒;
10 ms定时器T200~TT245,共46点,设定值:0.01~327.67秒;
1 ms积算定时器 T245~T249,共4点,设定值:0.001~32.767秒;
100 ms积算定时器T250~T255,共6点,设定值:0.1~3276.7秒;
定时器指令符号及应用如下图所示:
20170308112408273.png


当定时器线圈T200的驱动输入X000接通时,T200的当前值计数器对10 ms的时钟脉冲进行累积计数,当前值与设定值K123相等时,定时器的输出接点动作,即输出触点是在驱动线圈后的1.23秒(10 * 123ms = 1.23s)时才动作,当T200触点吸合后,Y000就有输出。当驱动输入X000断开或发生停电时,定时器就复位,输出触点也复位。
每个定时器只有一个输入,它与常规定时器一样,线圈通电时,开始计时;断电时,自动复位,不保存中间数值。定时器有两个数据寄存器,一个为设定值寄存器,另一个是现时值寄存器,编程时,由用户设定累积值。
如果是积算定时器,它的符号接线如下图所示:
20170308112413766.png


定时器线圈T250的驱动输入X001接通时,T250的当前值计数器对100 ms的时钟脉冲进行累积计数,当该值与设定值K345相等时,定时器的输出触点动作。在计数过程中,即使输入X001在接通或复电时,计数继续进行,其累积时间为34.5s(100 ms*345=34.5s)时触点动作。当复位输入X002接通 ,定时器就复位,输出触点也复位。
五、 计数器(C)
FX2N中的16位增计数器,是16位二进制加法计数器,它是在计数信号的上升沿进行计数,它有两个输入,一个用于复位,一个用于计数。每一个计数脉冲上升沿使原来的数值减1,当现时值减到零时停止计数,同时触点闭合。直到复位控制信号的上升沿输入时,触点才断开,设定值又写入,再又进入计数状态。
其设定值在K1~K32767范围内有效。
设定值K0与K1含义相同,即在第一次计数时,其输出触点就动作。
通用计数器的通道号:C0 ~C99,共100点。
保持用计数器的通道号:C100~C199,共100点。
通用与掉电保持用的计数器点数分配,可由参数设置而随意更改。
举个例子:
20170308112420174.png
由计数输入X011每次驱动C0线圈时,计数器的当前值加1。当第10次执行线圈指令时,计数器C0的输出触点即动作。之后即使计数器输入X011再动作,计数器的当前值保持不变。
l 当复位输入X010接通(ON)时,执行RST指令,计数器的当前值为0,输出接点也复位。
l 应注意的是,计数器C100~C199,即使发生停电,当前值与输出触点的动作状态或复位状态也能保持。
六、 资料寄存器
数据寄存器是计算机必不可少的组件,用于存放各种数据。FX2N中每一个数据寄存器都是16bit(最高位为正、负符号位),也可用两个数据寄存器合并起来存储32 bit数据(最高位为正、负符号位)。
1)通用数据寄存器D 信道分配 D 0~D199,共200点。
只要不写入其它数据,已写入的数据不会变化。但是,由RUN→STOP时,全部数据均清零。(若特殊辅助继电器M8033已被驱动,则数据不被清零)。
2)停电保持用寄存器 通道分配 D200~D511,共312点,或D200~D999,共800点(由机器的具体型号定)。
基本上同通用数据寄存器。除非改写,否则原有数据不会丢失,不论电源接通与否,PLC运行与否,其内容也不变化。然而在二台PLC作点对的通信时, D490~D509被用作通信操作。
3)文件寄存器 通道分配 D1000~D2999,共2000点。
文件寄存器是在用户程序内存(RAM、EEPROM、EPROM)内的一个存储区,以500点为一个单位,最多可在参数设置时到2000点。用外部设备口进行写入操作。在PLC运行时,可用BMOV指令读到通用数据寄存器中,但是不能用指令将数据写入文件寄存器。用BMOV将 资料写入RAM后,再从RAM中读出。将数据写入EEPROM盒时,需要花费一定的时间,务必请注意。
4)RAM文件寄存器 通道分配 D6000~D7999,共2000点。
驱动特殊辅助继电器M8074,由于采用扫描被禁止,上述的数据寄存 器可作为档寄存器处理,用BMOV指令传送数据(写入或读出)。
5)特殊用寄存器 通道分配 D8000~D8255,共256点。
是写入特定目的的数据或已经写入数据寄存器,其内容在电源接通时,写入初始化值(一般先清零,然后由系统ROM来写入)。
§4 FX2N系列的基本逻辑指令
基本逻辑指令是PLC中最基本的编程语言,掌握了它也就初步掌握了PLC的使用方法,各种型号的PLC的基本逻辑指令都大台大同小异,现在我们针对FX2N系列,逐条学习其指令的功能和使用方法,。每条指令及其应用实例都以梯形图和语句表两种编程语言对照说明。
一、输入输出指令(LD/LDI/OUT)
下面把LD/LDI/OUT三条指令的功能、梯形图表示形式、操作组件以列表的形式加以说明:
20170308112428345.png
LD与LDI指令用于与母线相连的接点,此外还可用于分支电路的起点。
OUT 指令是线圈的驱动指令,可用于输出继电器、辅助继电器、定时器、计数器、状态寄存器等,但不能用于输入继电器。输出指令用于并行输出,能连续使用多次。
20170308112434207.png
二、触点串连指令(AND/ANDI)、并联指令(OR/ORI)
20170308112442198.png
AND、ANDI指令用于一个触点的串联,但串联触点的数量不限,这两个指令可连续使用。
OR、ORI是用于一个触点的并联连接指令。
20170308112449222.png
三、电路块的并联和串联指令(ORB、ANB)
20170308112455341.png
含有两个以上触点串联连接的电路称为“串联连接块”,串联电路块并联连接时,支路的起点以LD或LDNOT指令开始,而支路的终点要用ORB指令。ORB指令是一种独立指令,其后不带操作组件号,因此,ORB指令不表示触点,可以看成电路块之间的一段连接线。如需要将多个电路块并联连接,应在每个并联电路块之后使用一个ORB指令,用这种方法编程时并联电路块的个数没有限制;也可将所有要并联的电路块依次写出,然后在这些电路块的末尾集中写出ORB的指令,但这时ORB指令最多使用7次。
将分支电路(并联电路块)与前面的电路串联连接时使用ANB指令,各并联电路块的起点,使用LD或LDNOT指令;与ORB指令一样,ANB指令也不带操作组件,如需要将多个电路块串联连接,应在每个串联电路块之后使用一个ANB指令,用这种方法编程时串联电路块的个数没有限制,若集中使用ANB指令,最多使用7次。
20170308112501641.png

20170308112508153.png
四、程序结束指令(END)
20170308112515213.png
在程序结束处写上END指令,PLC只执行第一步至END之间的程序,并立即输出处理。若不写END指令,PLC将以用户存贮器的第一步执行到最后一步,因此,使用END指令可缩短扫描周期。另外。在调试程序时,可以将END指令插在各程序段之后,分段检查各程序段的动作,确认无误后,再依次删去插入的END指令。
其它的一些指令,如置位复位、脉冲输出、清除、移位、主控触点、空操作、跳转指令等,同学们可以参考一些课外书,在这里我们不详细介绍了。
下面同学们可练习由梯形图写出与之对应的助记符形式的指令。并由后面的GPP软件传输到PLC中,实时运行。
20170308112521596.png

2017030811252851.png
§5 梯形图的设计与编程方法
梯形图是各种PLC通用的编程语言,尽管各厂家的PLC所使用的指令符号等不太一致,但梯形图的设计与编程方法基本上大同小异。
一、确定各组件的编号,分配I/O地址
利用梯形图编程,首先必须确定所使用的编程组件编号,PLC是按编号来区别操作组件的 。我们选用的FX2N型号的PLC,其内部组件的地址编号如下表所示,使用时一定要明确,每个组件在同一时刻决不能担任几个角色。一般讲,配置好的PLC,其输入点数与控制对象的输入信号数总是相应的,输出点数与输出的控制回路数也是相应的(如果有模拟量,则模拟量的路数与实际的也要相当),故I/O的分配实际上是把PLC的入、出点号分给实际的I/O电路,编程时按点号建立逻辑或控制关系,接线时按点号“对号入坐”进行接线。FX2N系列的I/O地址分配及一些其它的内存分配前面都已介绍过了,同学们也可以参考FX系列的编程手册。
二、梯形图的编程规则
1、 每个继电器的线圈和它的触点均用同一编号,每个组件的触点使用时没有数量限制。
2、 梯形图每一行都是从左边开始,线圈接在最右边(线圈右边不允许再有接触点),如图(a)错,图(b)正确。
20170308112648772.png
3、线圈不能直接接在左边母线上。
4、在一个程序中,同一编号的线圈如果使用两次,称为双线圈输出,它很容易引起误操作,应尽量避免。
5、在梯形图中没有真实的电流流动,为了便于分析PLC的周期扫描原理和逻辑上的因果关系,假定在梯形图中有“电流”流动,这个“电流”只能在梯形图中单方向流动——即从左向右流动,层次的改变只能从上向下。
下图是一个错误的桥式电路梯形图。
20170308112640383.png
三、编程实例
首先介绍一个常用的点动定时器,其功能为每次输入X000时,接通时,Y000输出一个脉宽为定长的脉冲,脉宽由定时器T000设定值设定。它的时序图如下图所示:
20170308112632970.png
根据时序图我们就可画出相应的梯形图:
20170308112622854.png
运用定时器还可构成振荡电路,如根据下面的时序图,我们可用两个定时器T001、T002构成振荡电路,其梯形图如下:
20170308112605995.png


下面是一个延时接通/延时断开电路。同学们根据时序图,画出梯形图。
20170308112613685.png

                    
20170308121051593.png
201703081210465.png
20170308121040309.png
20170308121034412.png
20170308121025133.png
20170308121022934.png
20170308121011327.png
20170308121002764.png
发表于 2017-12-3 11:48:11 | 显示全部楼层
我的机械网(www.mejxw.com)是中国机械行业门户网站,为大家提供海 量免费的机械设计资源,范围涉及机械设计加工制造、智能化机器人、液压 电气、软件应用、行业咨询、机械兼职等各个层面,现诚邀您的加入,共同学习,共同进步!
发表于 2018-12-2 18:56:01 | 显示全部楼层
回忆
发表于 2021-12-1 09:51:47 | 显示全部楼层
看帖、回帖、拿分、走人

0

主题

5846

回帖

4万

积分

论坛元老

Rank: 8Rank: 8

积分
40576
发表于 2021-12-1 11:51:08 | 显示全部楼层
以后要跟楼主好好学习学习!

0

主题

5430

回帖

3万

积分

论坛元老

Rank: 8Rank: 8

积分
38046
发表于 2021-12-1 11:51:08 | 显示全部楼层
经典,收藏了!

0

主题

5608

回帖

3万

积分

论坛元老

Rank: 8Rank: 8

积分
39669
发表于 2021-12-1 23:22:33 | 显示全部楼层
很给力!
发表于 2021-12-2 03:54:24 | 显示全部楼层
怎么我回帖都没人理我呢?

2

主题

3737

回帖

14万

积分

论坛元老

Rank: 8Rank: 8

积分
145440
发表于 2023-10-8 09:43:09 | 显示全部楼层
谢谢楼主分享,很不错,收藏了!
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

快速回复 返回顶部 返回列表