1、第三章 PLC程序设计基础,3.1 PLC的编程语言,3.2 FX系列PLC梯形图中的编程元件,3.1 PLC的编程语言,第三章 PLC程序设计基础,可编程控制器目前常用的编程语言有以下5种(IEC标准):,功能块图,梯形图,顺序功能图,指令表,结构文本 ST适用Q系列PLC,图形编程语言,文字语言,顺序功能图常用来编制顺序控制程序,它包括步、动作、转换三个要素。顺序功能图法可以将一个复杂的控制过程分解为一些小的工作状态。对于这些小状态的功能依次处理后再把这些小状态依一定顺序控制要求连接成组合整体的控制程序。,(1)顺序功能图,3.1 PLC的编程语言,第三章 PLC程序设计基础,顺序功能图,
2、3.1 PLC的编程语言,第三章 PLC程序设计基础,梯形图的表达式沿用了原电气控制系统中的继电接触控制电路图的形式,二者的基本构思是一致的,只是使用符号和表达方式有所区别。,最右边必须是输出元素。,梯形图从上至下按行编写,每一行则按从左至右的顺序编写。,CPU将按自左到右,从上而下的顺序执行程序。梯形图的左侧竖直线称母线(源母线)。,梯形图的左侧安排输入触点(如果有若干个触点相并联的支路应安排在最左端)和辅助继电器触点(运算中间结果),(2)梯形图,3.1 PLC的编程语言,第三章 PLC程序设计基础,(2)梯形图,3.1 PLC的编程语言,第三章 PLC程序设计基础,(3)功能块图,功能块
3、图是一种类似于数字逻辑电路的编程语言,用类似与门、或门的方框来表示逻辑运算关系,方块左侧为逻辑运算的输入变量,右侧为输出变量,输入端、输出端的小圆点表示“非”运算,信号自左向右流动。类似于电路一样,方框被“导线”连接在一起。,指令表语言又称命令语句表达式语言,它常用一些助记符来表示PLC的某种操作。它类似微机中的汇编语言,但比汇编语言更直观易懂。用户可以很容易地将梯形图语言转换成助记符语言。,3.1 PLC的编程语言,第三章 PLC程序设计基础,(4)指令表,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,3.2.1 基本数据结构,1. 位元件,2. 字元件,位元件只有两
4、种状态,即ON和OFF,用二进制数“1”、“0”表示,FX有4种编程元件为位元件,分别是:,X:输入继电器,存放外部输入电路的通断状态;,Y:输出继电器,用于从PLC直接输出物理信号;,M:辅助继电器,PLC内部运算标志;,S:状态继电器,PLC内部运算标志;,字节(Byte):8个连续的位;,字(Word):16个连续的位;,双字:两个连续的字。,T、C的当前值和设定值均为有符号的字,最高位为符号位。0正1负,编程元件简称元件。将PLC内部存储器的每一个存储单元均称为元件,各个元件与PLC的监控程序、用户的应用程序合作,会产生或模拟出不同的功能。当元件产生的是继电器功能时,称这类元件为软继电
5、器,简称继电器,它不是物理意义上的实物器件,而是一定的存储单元与程序的结合产物。后面介绍的各类继电器、定时器、计数器都指此类软元件。,3.2.2 FX系列PLC的性能指标与编程元件(内部继电器),元件的数量及类别是由PLC监控程序规定的,它的规模决定着PLC整体功能及数据处理的能力。我们在使用PLC时,主要查看相关的操作手册。,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,FX基本性能见教材表3-1、表3-2 P31,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,PLC的内部软继电器,输入继电器,输出继电器,辅助继电器,状态继电器,定时器,计数器
6、,数据寄存器,变址寄存器,指针,常数,3.2.2 FX系列PLC的性能指标与编程元件(内部继电器),3.2.3 输入继电器与输出继电器,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,(1)输入继电器(X),输入继电器是PLC中用来专门存储系统输入信号的内部虚拟继电器。它又被称为输入的映像区,它可以有无数个动合触点和动断触点,在PLC编程中可以随意使用。这类继电器的状态不能用程序驱动,只能用输入信号驱动。,FX系列PLC的输入继电器采用八进制编号。,FX2N系列PLC带扩展时,输入继电器最多可达184点,其编号为X0X7、X10X17X260X267。,3.2.3 输入继
7、电器与输出继电器,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,(2)输出继电器(Y),输出继电器是PLC中专门用来将运算结果信号经输出接口电路及输出端子送达并控制外部负载的虚拟继电器。它在PLC内部直接与输出接口电路相连,它有无数个动合触点与动断触点,这些动合与动断触点可在PLC编程时随意使用。外部信号无法直接驱动输出继电器,它只能用程序驱动。,FX系列PLC的输出继电器采用八进制编号。,FX2N系列PLC带扩展时,输入继电器最多可达184点,其编号为Y0Y7、Y10Y17Y260Y267。,3.2.4 辅助继电器 M,3.2 FX系列PLC梯形图中的编程元件,第三章
8、 PLC程序设计基础,PLC内有很多辅助继电器,FX2N系列PLC的辅助继电器按照其功能分成以下三类:,a.通用辅助继电器M0M499(500点),b.断电保持辅助继电器M500M3071(2572点),c.特殊辅助继电器M8000M8255(256点),辅助继电器见教材表3-4 P34,3.2.4 辅助继电器 M,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,通用辅助继电器,通用辅助继电器和输出继电器一样,在PLC电源中断后,其状态将变为OFF。当电源恢复后,除因程序使其变为 ON外,其它仍保持OFF,3.2.4 辅助继电器 M,3.2 FX系列PLC梯形图中的编程元
9、件,第三章 PLC程序设计基础,断电保持辅助继电器,保持用辅助继电器在PLC电源中断后,它具有保持断电前的瞬间状态的功能,并在恢复供电后继续断电前的状态,具有断电保持功能 “起、保、停”梯形图,“起、保、停”梯形图,3.2.4 辅助继电器 M,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,特殊辅助继电器M8000M8255(256点)特殊辅助继电器是具有某项特定功能的辅助继电器通常可分为两类:触点型 和 线圈型,触点型 特殊辅助继电器的线圈由PLC自动驱动,用户只可以利用其触点。,线圈型特殊辅助继电器的线圈由用户控制,其线圈得电后,PLC作出特定动作。,c.特殊辅助继电
10、器M8000M8255(256点),辅助继电器见教材表3-4 P34,3.2.4 辅助继电器 M,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,特殊辅助继电器(触点型1),M8000 (M8001) -运行监视用特殊辅助继电器,PLC运行时M8000得电(M8001断电),PLC停止时M8000失电(M8001得电),3.2.4 辅助继电器 M,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,特殊辅助继电器(触点型2),M8002(M8003)-初始脉冲特殊辅助继电器,M8002(M8003)只在PLC开始运行的第一个扫描周期内得电(断电),其余时
11、间均断电(得电)。,常用M8002的触点作为一些继电器的初始化复位信号,3.2.4 辅助继电器 M,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,特殊辅助继电器(触点型3),M8011、M8012、M8013、M8014 -分别为产生周期为10ms、100ms、1s、1min脉冲的 特殊辅助继电器 ( PLC RUN ),3.2.4 辅助继电器 M,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,特殊辅助继电器(触点型4),M8004 - 出错特殊继电器,当PLC出现硬件出错、参数出错、语法出错、电路出错、操作出错、运算出错等时,M8004得电,M
12、8061 - 硬件出错特殊继电器 D8061(出错代码) M8064 - 参数出错特殊继电器 D8064 (出错代码) M8065 - 语法出错特殊继电器 D8065 (出错代码) M8066 - 电路出错特殊继电器 D8066 (出错代码) M8067 - 操作出错特殊继电器 D8067 (出错代码),3.2.4 辅助继电器 M,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,特殊辅助继电器(触点型5),M8020 - 零标志 M8021 - 错位标志 M8022 - 进位标志,M8029 - 指令执行完毕标志 M8046 - STL状态置1,3.2.4 辅助继电器 M
13、,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,特殊辅助继电器(触点型6),M8246 - C246 减计数监视 M8247 - C247 减计数监视 M8249 - C249 减计数监视 M8251 - C251 减计数监视 M8252 - C252 减计数监视 M8254 - C254 减计数监视,3.2.4 辅助继电器 M,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,特殊辅助继电器(线圈型1),M8028 - 10ms定时器切换标志 当M8028线圈被接通时,则T32-T62变为10ms定时器 M8034 - 禁止全部输出的特殊辅助继电器
14、 当M8034线圈被接通时,则PLC的所有输出自动断开 M8039 - 恒定扫描周期的特殊辅助继电器 当M8039线圈被接通时,则PLC以恒定的扫描方式运行 恒定扫描周期值由D8039决定,3.2.4 辅助继电器 M,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,特殊辅助继电器(线圈型2),M8031-非保持型继电器、寄存器状态清除 M8032-保持型继电器、寄存器状态清除 M8033-RUNSTOP时,输出保持RUN前状态 M8035-强制运行(RUN)监视 M8036-强制运行(RUN) M8037-强制停止( STOP ),3.2.4 辅助继电器 M,3.2 FX
15、系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,特殊辅助继电器(线圈型3),M8235 -设置C235为减计数方式 M8236 -设置C236为减计数方式 M8237 -设置C237为减计数方式 M8238 -设置C238为减计数方式 M8241 -设置C241为减计数方式 M8242 -设置C242为减计数方式 M8244 -设置C244为减计数方式,注意:FX系列中,不同型号PLC的特殊辅助继电器的数量也不同。在M8000M8255的256个特殊辅助继电器中,PLC未定义的不可在用户程序中使用,具体可参见使用手册。,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程
16、元件,3.2.4 辅助继电器 M,特殊辅助继电器,3.2.5 状态继电器 S,3.2 FX系列PLC梯形图中的编程元件,第三章 PLC程序设计基础,状态继电器是PLC在顺序控制系统中实现控制的重要内部元件。,状态继电器分成四类,其编号及点数如下:,初始状态:S0S9(10点)回零:S10S19(10点)通用:S20S499(480点)保持:S500S899(400点)报警:S900S999(100点),有关状态继电器的应用,参考项目十STL指令的内容,定时器时可分为通用定时器、积算定时器二种。,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.6 定时器T, PLC
17、的定时器相当于电器系统中的通电延时时间继电器, 定时器可提供无数对的常开、常闭延时触点供编程用,定时器中有一个设定值寄存器、一个当前值寄存器和一个用来存储其输出触点的映象寄存器(一个二进制位),这三个量使用同一地址编号。但使用场合不一样,意义也不同。, PLC定时器工作原理:定时器是根据时钟脉冲累积计数而达到定时的目的,时钟脉冲有1ms 、10ms 、100ms,当所计数达到设定值时,其触点动作。,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.6 定时器T,设定值可用常数K或数据寄存器D的内容来设置。, 通用定时器不具备断电的保持功能,即当输入电路断开或停电时定
18、时器复位。通用定时器有100ms和10ms两种。, 设定值: 常数K 或 数据寄存器D的内容 设定值的范围: 132767,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.6 定时器T,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.6 定时器T,1.通用定时器,100ms定时器定时范围为0.13276.7s,10ms定时器 ( 除FX2N外,M8028=ON 时)定时范围为0.01327.67s,1ms定时器(FX0N T63) (采用中断计数 )定时范围为0.00132.767s,第三章 PLC程序设计基础,3.2 FX系列PLC
19、梯形图中的编程元件,3.2.6 定时器T,1.通用定时器,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.6 定时器T,1.通用定时器,通用定时器(例1),1ms积算定时器:对1ms时钟脉冲进行累积计数的,定时范围为0.00132.767s。 100ms积算定时器:对100ms时钟脉冲进行累积计数的定时范围为0.13276.7s,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.6 定时器T,1.积算定时器,1)积算定时器具有计数累积的功能。 2)在定时过程中如果断电或定时器线圈OFF,积算定时器将保持当前的计数值(当前值),通电或定时
20、器线圈ON后继续累积,即其当前值具有保持功能,只有将积算定时器复位,当前值才变为0。,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.6 定时器T,1.积算定时器,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.6 定时器T,1.积算定时器,积算定时器(例2),第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.7 计数器C,内部计数器是在执行扫描操作时对内部信号(如X、Y、M、S、T等)进行计数。内部输入信号的接通和断开时间应比PLC的扫描周期稍长。,高速计数器 采用中断方式进行计数,与 PLC的扫描周期无
21、关,与内部计数器相比除允许输入频率高之外,应用也更为灵活,高速计数器均有断电保持功能,通过参数设定也可变成非断电保持。, 计数器的设定值范围:1-32767(16位)-214783648+214783647(32位) 计数器的设定值可由常数K 或间接通过指定的数据寄存器(D) 来设定, 内部计数器包括16位加计数器和32位可逆计数器,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.7 计数器C,1.内部计数器,内部计数器16位加计数器,注:16位加计数器分为通用型和保持型两种,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.7 计数器
22、C,基本原理,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.7 计数器C,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.7 计数器C,内部计数器- 32位可逆计数器,这类计数器与16位增计数器除位数不同外,还在于它能通过控制实现加/减双向计数。 (限FX1N/2N/2NC),增/减计数由对应的特殊辅助继电器设定。对应的特殊辅助继电器被置为ON时为减计数,置为OFF时为增计数。,例:C200- M8200当M8200为ON时,C200为减计数当M8200为OFF时,C200为加计数,第三章 PLC程序设计基础,3.2 FX系列PLC
23、梯形图中的编程元件,3.2.7 计数器C, 高数计数器是采用中断方式进行高速计数的,与PLC的扫描周期无关 高数计数器是对特定的输入进行计数(如FX0N为X0X3) 高数计数器为32位增/减计数型,具有停电保持功能(设定值范围:2147483648 +2147483647 ),2.高速计数器, 高数计数器的三种类型:详见教材表3-7 P39 一相高速计数器 两相双向计数器 A-B相型双计数输入高速计数器,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.7 计数器C,例题3详见教材图3-13 一相高速计数器P38,PLC在进行输入输出处理、模拟量控制、位置控制时,需
24、要许多数据寄存器以存储数据和参数, 数据寄存器为16位,最高位为符号位 32位数据可用两个数据寄存器来存储(如D1D0), 数据寄存器有:1. 通用数据寄存器2. 电池后备/锁存数据寄存器3. 特殊数据寄存器D8000D82554. 文件寄存器,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.8 数据寄存器D, 通用数据寄存器,通用数据寄存器在PLC由运行(RUN)变为停止(STOP)时,其数据全部清零。 如果将特殊继电器M8033置1,则PLC由运行变为停止时,数据可以保持。, 保持数据寄存器,保持数据寄存器只要不改写,原有数据就不会丢失,无论电源接通与否,PL
25、C运行与否,都不会改变寄存器内容,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.8 数据寄存器D,特殊数据寄存器(D8000 D8255 ) 特殊数据寄存器用于PLC内各种元件的运行监视。未加定义的特殊数据寄存器,用户不能使用。,例如: D8000-WDT定时器定时参数(初始值200ms)D8001-CPU型号D8020-X0X7输入滤波时间(初始值10ms)D8030-1号模拟电位器的数值D8031-2号模拟电位器的数值D8039-恒定扫描时间(ms)具体可参见PLC使用手册,不再一一介绍,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,
26、3.2.8 数据寄存器D,文件寄存器是用于存放大量数据的专用数据寄存器例如:用于存放采集数据、统计计算数据、多组控制参数等。 文件寄存器占用用户程序存储器内的某一存储区间,可用编程器或编程软件进行写操作PLC运行时,可用BMOV指令将文件寄存器内容读到通用数据寄存器中,但不能用指令将数据写入文件寄存器。, 文件数据寄存器(D1000D7999),第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.8 数据寄存器D,数据寄存器编号, 变址寄存器V/Z实际上是一种特殊用途的数据寄存器,变址寄存器V/Z的作用:相当于微机中的变址寄存器,用于改变元件的编号(变址),V、Z都是
27、16位的数据寄存器,与其它寄存器一样读写 需要32位操作,可将V、Z串联使用(Z为低位,V为高位),例:D0Z 若Z=10,则为D10,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.9 变址寄存器V/Z,变址寄存器编号,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.9 变址寄存器V/Z,常数也可作为元件处理,因为它占用一定的存储空间。,常数的表示:十进制常数用K表示,如常数123表示为K123十六进制常数则用H表示,如常数345表示为H159, FX系列PLC的常数范围为:16位:K:-32,76832,767 H:0000FFF
28、FH 32位:K:-2,147,483,6482,147,483,647 H:00000000FFFFFFFF,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.10 常数, 分支指令用指针(P0-P63/P127),它作为一种标号,用来指定跳转指令或子程序调用指令等分支指令的跳转目标。, 嵌套用指针(N0-N7),第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.11 指针, 中断用指针( I ), 输入中断:I 0 0:下降沿中断 1:上升沿中断输入中断号(05) 注:FX0S/0N为0 -3定时中断:I 1099ms定时中断号(68) 注:限FX2N/2NC,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.11 指针, 中断用指针( I ),计数中断:I 00=16注:限FX2N/2NC,与高速计数器置位指令(HSCS)配合使用,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.11 指针,第三章 PLC程序设计基础,3.2 FX系列PLC梯形图中的编程元件,3.2.8 11 指针,谢谢!,本章结束,