《PLC电气控制与组态设计XXXX最新版第三章.ppt》由会员分享,可在线阅读,更多相关《PLC电气控制与组态设计XXXX最新版第三章.ppt(142页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、哈尔滨理工大学哈尔滨理工大学哈尔滨理工大学哈尔滨理工大学周美兰周美兰周美兰周美兰 周封周封周封周封 王岳宇王岳宇王岳宇王岳宇PLCPLC电气控制与组态设计电气控制与组态设计第二版第二版2021/9/151第三章第三章 FP1的指令系统的指令系统第一节第一节 概述概述2021/9/152一、继电器系统与PLC指令系统 可编程控制器来源于继电器系统和计算机系统,可以将其理解为计算机化的继电器系统。继电器在控制系统中主要起两种作用:1 1 1 1)逻逻逻逻辑辑辑辑运运运运算算算算。运用继电器触点的串、并联接等完成逻辑与、或、非等功能,因而可完成较复杂的逻辑运算。2 2 2 2)弱弱弱弱电电电电控控控
2、控制制制制强强强强电电电电。即通过有关的触点的通断,控制继电器的电磁线圈,从而来控制强电的断通。对于简单控制功能的完成,采用继电器控制系统具有简单、可靠、方便等特点,因此,继电器控制系统得到了广泛应用。2021/9/153 注意:注意:PLC内部的硬件资源多数是以继电器的概念出现的。注意,只是概念上的继电器,并非物理继电器。这里所指的继电器均为软继电器,是由PLC内部的存储单元构成的。2021/9/154二、FP1指令系统分类 表表3-1 FP1系列可编程控制器指令统计表系列可编程控制器指令统计表分分类类名称名称C14/C16C14/C16C24/C40C24/C40C56/C72C56/C7
3、2基本指令顺序指令191919功能指令778控制指令151818条件比较指令03636高级指令数据传输指令11111l数据运算及比较指令364141数据转换指令162626数据位移指令141414位操作指令666特殊功能指令71819总计总计1311311961961981982021/9/155基本指令基本指令基本指令基本指令高级指令高级指令高级指令高级指令键键键键盘盘盘盘指指指指令令令令。可以直接在键盘上输入的指令(即各种指令在手持编程器上有相应的按键)。非非非非键键键键盘盘盘盘指指指指令令令令。键盘上找不到,输入时需借助于“SC”和“HELP”键,指令方可输入。扩扩扩扩展展展展功功功功能
4、能能能指指指指令令令令。也是键盘上找不到的,但可通过输入其功能号将其输入,即用“FN”键加上数字键输入该类指令。这类指令在指令表中都各自带有功能编号,在显示器上显示为“FN”,其中N是功能编号,是指令的助记符。输入功能编号后,助记符可自动显示,不必由用户输入。按照在手持编程器上的输入方式输入方式输入方式输入方式可为三种FP1的指令按照功能功能功能功能可分为两大类2021/9/156第三章第三章 FP1的指令系统的指令系统第二节第二节 FP1的基本指令系统的基本指令系统2021/9/157基本指令可分为四大类,即l l基基基基本本本本顺顺顺顺序序序序指指指指令令令令:主要执行以位(bit)为单位
5、的逻辑操作,是继电器控制电路的基础。l l基本功能指令:基本功能指令:基本功能指令:基本功能指令:有定时器、计数器和移位寄存器指令。l l控控控控制制制制指指指指令令令令:可根据条件判断,来决定程序执行顺序和流程的指令。l l比较指令:比较指令:比较指令:比较指令:主要进行数据比较。基本指令多数是构成继电器顺序控制电路的基础,所以借用继电器的线圈和触点来表示。同时,该类指令还是可编程控制器使用中最常见、也是用得最多的指令,因此,属于必须熟练掌握和运用的内容。2021/9/158一、基本顺序指令 基本顺序指令主要是对继电器和继电器触点进行逻辑操作的指令。FP1的指令表达式比较简单,由操作码和操作
6、数构成,格式为:地址地址地址地址操作码操作码操作码操作码 操作数操作数操作数操作数 其中,操作码规定了CPU所执行的功能。例如:AN X0,表示对X0进行与操作 操作数包含了操作数的地址、性质和内容。操作数可以没有,也可以是一个、两个、三个甚至四个,随不同的指令而不同。如/指令就没有操作数。2021/9/159指令助记符继电器定时/计数器触点XYRTCST、ST/OTAN、AN/OR、OR/SET、RSTKP表表3-3 基本顺序指令的操作数基本顺序指令的操作数 表中对应项目为“”表示该项不可用,为空则表示可用。例如:OT指令对应继电器X项为“”,说明OT指令的操作数不能为X继电器。2021/9
7、/15101.1.输入输出指令:输入输出指令:输入输出指令:输入输出指令:STST、ST/ST/、OTOTST 加载 用A类触点(常开触点)开始逻辑运算的指令。ST/加载非 用B类触点(常闭触点)开始逻辑运算的指令。OT 输出 输出运算结果到指定的输出端,是继电器线 圈的驱动指令。/非 将该指令处的运算结果取反。其中,ST和ST/用于开始一个新的逻辑行。2021/9/1511举例举例举例举例2021/9/1512当X0接通时,Y0接通;当X0断开时,Y1接通、Y2接通。由例中可见,Y0和Y1都受控于X0,但是因为Y1前面有非指令,因此与Y0的状态正好相反,这与继电器系统明显不同,在继电器系统中
8、,X0断开,Y1回路就不可能导通。此外,对于输出Y2,也是当输入触点X0断开时,Y2接通,与Y1的控制方式一样。可见,常闭触点的功能可以用上述两种方式实现,这在时序图中可以更为直观地看到。例题说明:例题说明:例题说明:例题说明:2021/9/1513/指令为逻辑取反指令,可单独使用,但是一般都是与其它指令组合形成新指令使用,如ST/。OT不能直接从左母线开始,但是必须以右母线结束。OT指令可以连续使用,构成并联输出,也属于分支的一种,可参见堆栈指令。一般情况下,对于某个输出继电器只能用一次OT指令,否则,可编程控制器按照出错对待。注意事项注意事项注意事项注意事项2021/9/15142.2.逻
9、辑操作指令:逻辑操作指令:逻辑操作指令:逻辑操作指令:ANAN、AN/AN/、OROR、OR/OR/AN与串联一个A类(常开)触点。AN/与非串联一个B类(常闭)触点。OR或并联一个A类(常开)触点。OR/或非并联一个B类(常闭)触点。2021/9/1515举例举例举例举例2021/9/1516注意事项注意事项注意事项注意事项例题说明:例题说明:例题说明:例题说明:当X0、X4接通且X3断开时,R0接通;R0同时又是Y0的控制触点,R0接通时Y0也接通。由于X0、X1和X2三个触点并联,X2与X0同为常开触点,所以X2和X0具有同样的性质;而X1为常闭触点,与X0的性质正好相反。X2和X1的时
10、序图也与X0相同或相反,故这里略去。AN、AN/、OR、OR/可连续使用。2021/9/15173.3.块逻辑操作指令:块逻辑操作指令:块逻辑操作指令:块逻辑操作指令:ANSANS、ORSORS ANS 组与执行多指令块的与操作,即实现多个逻辑块相串联。ORS 组或执行多指令块的或操作,即实现多个逻辑块相并联。2021/9/1518举例:举例:举例:举例:2021/9/1519例题说明:例题说明:例题说明:例题说明:当X0、X1接通且X4接通时,Y0接通,对应图中第1段接通情况。当X0、X1接通且X5接通时,Y0接通,对应图中第2段接通情况。当X2、X3接通且X4接通时,Y0接通,对应图中第3
11、段接通情况。当X2、X3接通且X5接通时,Y0接通,对应图中第4段接通情况。从时序图上看,该例的逻辑关系显得比较复杂,但是仔细分析就可发现Y0有四个接通段,分别代表了该例子的四种有效组合。2021/9/1520注意事项注意事项注意事项注意事项 掌握ANS、ORS的关键主要有两点:一是要理解好串、并联关系,二是要形成块的观念。针对例3-3,在下面的图中,分别从程序和逻辑关系表达式两方面对此加以具体说明。从图中可见,X0和X1串联后组成逻辑块1,X2和X3串联后组成逻辑块2,用ORS将逻辑块1和逻辑块2并联起来,组合成为逻辑块3;然后由X4和X5并联后组成逻辑块4,再用ANS将逻辑块3和逻辑块4串
12、联起来,组合成为逻辑块5,结果输出给Y0。2021/9/15214.4.堆栈指令:堆栈指令:堆栈指令:堆栈指令:PSHSPSHS、RDSRDS、POPSPOPSPSHS 推入堆栈将在该指令处以前的运算结果存储起来。RDS 读取堆栈读出PSHS指令存储的操作结果。POPS 弹出堆栈读出并清除由PSHS指令存储的操作结果。堆栈指令主要用来解决具有分支结构的梯形图如何编程的问题,使用时必须遵循规定的PSHS、RDS、POPS的先后顺序。2021/9/1522举例举例举例举例2021/9/1523例题说明:例题说明:例题说明:例题说明:存储PSHS指令处的运算结果(这里指X0的状态),这时X0接通,则
13、当X1也接通且X2断开时,Y0输出。由RDS指令读出存储的结果,即X0接通,则当X3接通时,Y1输出。由RDS指令读出存储的结果,即X0接通,则当X4断开时,Y2输出。由POPS指令读出存储的结果,即X0接通,则当X5接通时,Y3输出;然后将PSHS指令存储的结果清除,即解除与X0的关联,后续指令的执行将不再受X0影响。当X6接通时,Y4输出。此时与X0的状态不再相关。本例中连用了两个RDS指令,目的是为了说明该指令只是读存储结果,而不影响存储结果;在执行了POPS后,就结束了堆栈指令,不再与X0的状态相关,如例中,Y4的状态只受X6控制。当X0接通时,程序依次完成下述操作。2021/9/15
14、24注意事项注意事项注意事项注意事项 当程序中遇到PSHS时,可理解为是将左母线到PSHS指令(即分支点)之间的所有指令存储起来,推入堆栈,提供给下面的支路使用。换个角度,也可理解为左母线向右平移到分支点,随后的指令从平移后的左母线处开始。RDS用于PSHS之后,这样,当每次遇到RDS时,该指令相当于将PSHS保存的指令重新调出,随后的指令表面上是接着RDS,实际上相当于接着PSHS指令来写。在功能上看,也就是相当于将堆栈中的那段梯形图与RDS后面的梯形图直接串联起来。POPS相当于先执行RDS的功能,然后结束本次堆栈,因此,用在PSHS和RDS的后面,作为分支结构的最后一个分支回路。2021
15、/9/1525从上面对构成堆栈的三个指令的分析可知,最简单的分支,即两个分支,可只由PSHS和POPS构成;而三个以上的分支,则通过反复调用RDS指令完成,这点可参见例题。也就是说,一组堆栈指令中,有且只有一个PSHS和一个POPS,但是可以没有或有多个RDS。注意区分分支结构和并联输出结构梯形图。二者的本质区别在于:分支结构中,分支点与输出点之间串联有触点,而不单纯是输出线圈。堆栈指令的复杂应用还包括嵌套使用。2021/9/15265.5.微分指令:微分指令:微分指令:微分指令:DFDF、DF/DF/DF 上升沿微分 检测到触发信号上升沿,使触点接通一个扫描周期。DF/下降沿微分 检测到触发
16、信号下降沿,使触点接通一个扫描周期。2021/9/1527举例举例举例举例2021/9/1528例题说明:例题说明:例题说明:例题说明:当检测到触发信号的上升沿时,即X1断开、X2接通且X0由OFFON时,Y0接通一个扫描周期。另一种情况是X0接通、X2接通且X1由ONOFF时,Y0也接通一个扫描周期,这是由于X1是常闭触点的缘故。当检测到触发信号的下降沿时,即X2接通且X0由ONOFF时,Y1接通一个扫描周期。2021/9/1529注意事项注意事项注意事项注意事项 DF和DF/指令的作用都是在控制条件满足的瞬间,触发后面的被控对象(触点或操作指令),使其接通一个扫描周期。这两条指令的区别在于
17、:前者是当控制条件接通瞬间(上升沿)起作用,而后者是在控制条件断开瞬间(下降沿)起作用。这两个微分指令在实际程序中很有用,可用于控制那些只需触发执行一次的动作。在程序中,对微分指令的使用次数无限制。这里所谓的“触发信号”,指的是DF或DF/前面指令的运算结果,而不是单纯的某个触点的状态,如例中X0与X1的组合;也不是后面的触点状态,如在时序图中的t1时刻,X0和X1都处于有效状态,X2的上升沿却不能使Y0接通。2021/9/15306.6.置位、复位指令:置位、复位指令:置位、复位指令:置位、复位指令:SETSET、RSTRST SET置位保持触点接通,为ON。RST复位保持触点断开,为OFF
18、。2021/9/1531举例举例举例举例例题说明:例题说明:例题说明:例题说明:该程序执行的结果是,当X0接通时,使Y0接通,此后不管X0是何状态,Y0一直保持接通。而当X1接通时,将Y0断开,此后不管X1是何状态,Y0一直保持断开。2021/9/15327.7.保持指令:保持指令:保持指令:保持指令:KPKP KP保持使输出为ON,并保持。KP指令的作用是将输出线圈接通并保持。该指令有两个控制条件,一个是置位条件(S)、另一个是复位条件(R)。当满足置位条件,输出继电器(Y或R)接通,一旦接通后,无论置位条件如何变化,该继电器仍然保持接通状态,直至复位条件满足时断开。S端与R端相比,R端的优
19、先权高,即如果两个信号同时接通,复位信号优先有效。2021/9/1533举例举例举例举例例题说明:例题说明:例题说明:例题说明:当X0接通时,Y0接通;当X1接通时,Y0断开,而不论X0状态如何。注意事项注意事项注意事项注意事项 该指令与SET、RST有些类似,另外,SET、RST允许输出重复使用,而KP指令则不允许。2021/9/15348.8.空操作指令:空操作指令:空操作指令:空操作指令:NOPNOP NOP空操作空操作。PLC执行NOP指令时,无任何操作,但是要消耗一定的时间。当没有输入程序或进行清理内存操作时,程序存储器各单元均自动为空操作指令。可用NOP作为查找时的特殊标记,人为插
20、入若干个NOP指令,对程序进行分段,便于检查和修改。如程序中某一点插入的NOP指令的数量超出1个,编程系统会自动对其进行编号,因此,该指令常在调试程序时使用,此时,程序的大小有所增加,但是对运算结果没有影响。2021/9/1535二、基本功能指令 基本功能指令主要包括一些具有定时器、计数器和移位寄存器三种功能的指令。其中,定时和计数本质上是同一功能。根据指令功能分类,将高级指令中的可逆计数指令F118(UDC)、左右移位指令F119(LRSR)以及辅助定时器指令F137(STMR)也包括在内。表表3-5 基本功能指令的操作数基本功能指令的操作数指令助记符可用寄存器继电器定时/计数器寄存器索引寄
21、存器常数索引修正值WX WYWRSVEVDTIXIYKHTM预置值CT预置值SR2021/9/15361 1定时器指令:定时器指令:定时器指令:定时器指令:TMTM、F137(STMR)F137(STMR)TMR以0.01s为最小时间单位,设置延时接通的定时器。TMX以0.1s为最小时间单位,设置延时接通的定时器。TMY以1.0s为最小时间单位,设置延时接通的定时器。定时器的工作原理为:定时器为减1计数。当程序进入运行状态后,输入触点接通瞬间定时器开始工作,先将设定值寄存器SV的内容装入过程值寄存器EV中,然后开始计数。每来一个时钟脉冲,过程值减1,直至EV中内容减为0时,该定时器各对应触点动
22、作,即常开触点闭合、常闭触点断开。而当输入触点断开时,定时器复位,对应触点恢复原来状态,且EV清零,但SV不变。若在定时器未达到设定时间时断开其输入触点,则定时器停止计时,其过程值寄存器被清零,且定时器对应触点不动作,直至输入触点再接通,重新开始定时。2021/9/1537 简单的说,当定时器的执行条件成立时,定时器以R、X、Y所规定的时间单位对预置值作减计数,预置值减为0时,定时器导通。其对应的常开触点闭合,常闭触点断开。2021/9/1538举例举例举例举例例题说明:例题说明:例题说明:例题说明:当X0接通时,定时器开始定时,10秒后,定时时间到,定时器对应的常开触点T1接通,使输出继电器
23、Y0导通为ON;当X0断开时,定时器复位,对应的常开触点T1断开,输出继电器Y0断开为OFF。2021/9/1539注意事项注意事项注意事项注意事项1)TM指令是减法计数型预置定时器,参数有两个,一个是时间单位,即定时时钟,可分为3种,R=0.01s,X=0.1s,Y=1.0s;另一个是预置值,只能用十进制,编程格式为K加上十进制数,因此,取值范围可表示为K1 K32767。这样,定时时间就可以根据上述两个参数直接计算出来,即 定时时间=时间单位预置值 也正是由于这个原因,TM R1 K1000、TM X1 K100、TM Y1 K10这三条指令的延时时间是相同的,都是10秒,差别仅在于定时的
24、时间精度不同。对于这个例子,由于只用到定时结果,采用上述任何一种写法都可以。2)定时器的设定值和过程值会自动存入相同编号的专用寄存器SV和EV中,因此可通过察看同一编号的SV和EV内容来监控该定时器的工作情况。采用不同的定时时钟会影响精度,也就是说,过程值EV的变化过程不同。2021/9/15403)同输出继电器的概念一样,定时器也包括线圈和触点两个部分,采用相同编号,但是线圈是用来设置,触点则是用于引用。因此,在同一个程序中,相同编号的定时器只能使用一次,即设置一次,而该定时器的触点可以通过常开或常闭触点的形式被多次引用。4)在FP1-C24中,初始定义有100个定时器,编号为T0 T99,
25、通过系统寄存器No.5可重新设置定时器的个数。5)由于定时器在定时过程中需持续接通,所以在程序中定时器的控制信号后面不能串联微分指令。6)在实际的PLC程序中,定时器的使用是非常灵活的,如将若干个定时器串联或是将定时器和计数器级联使用可扩大定时范围,或将两个定时器互锁使用可构成方波发生器,还可以在程序中利用高级指令F0(MV)(高级指令见本章的第三节)直接在SV寄存器中写入预置值,从而实现可变定时时间控制。2021/9/1541例:试利用高级指令例:试利用高级指令F0(MV)F0(MV)实现可变定时的时间控实现可变定时的时间控制。制。例题说明:图中,若先闭合控制触点X0,通过高级指令F0(MV
26、)将定时器的设定时间由6秒改为4秒,即预置值的直接设定具有优先权。在只闭合X1的情况下,延时时间为6秒。若先闭合X1,后闭合X0,因为先执行的定时器指令,所以高级指令F0(MV)不起作用,延时时间仍为6秒。2021/9/1542例:例:例:例:例题说明:例题说明:例题说明:例题说明:该例与上例中使用TMX实现的定时结果类似,R900D作为辅助定时器触点,在编程时,务必将R900D编写在紧随F137(STMR)指令之后。此外,这里的DT5起到与经过值寄存器EV类似的作用。F137(STMR)以0.01s为最小时间单位设置延时接通的定时器。该定时器与TMR类似,但是设置方式上有所区别。下面举例说明
27、。2021/9/15432 2计数器指令:计数器指令:计数器指令:计数器指令:CTCT、F118(UDC)F118(UDC)CT指令是一个减计数型的预置计数器。其工作原理为:程序一进入“运行”方式,计数器就自动进入初始状态,此时SV的值被自动装入EV,当计数器的计数输入端CP检测到一个脉冲上升沿时,预置值被减1,当预置值被减为0时,计数器接通,其相应的常开触点闭合,常闭触点断开。计数器的另一输入端为复位输入端R,当R端接收到一个脉冲上升沿时计数器复位,计数器不接通,其常开触点断开,常闭触点闭合;当R端接收到脉冲下降沿时,将预置值数据再次从SV传送到EV中,计数器开始工作。计数器CT指令的梯形图
28、符号如下图所示。2021/9/1544例:例:例:例:例题说明:例题说明:例题说明:例题说明:程序开始运行时,计数器自动进入计数状态。当检测到X0的上升沿500次时,计数器对应的常开触点C101接通,使输出继电器Y0导通为ON;当X1接通时,计数器复位清零,对应的常开触点C101断开,输出继电器Y0断开为OFF。2021/9/1545注意事项注意事项注意事项注意事项FP1-C24中,共有44个计数器,编号为C100 C143。此编号可用系统寄存器No.5重新设置。设置时注意TM和CT的编号要前后错开。计数器与定时器有密切的关系,编号也是连续的。定时器本质上就是计数器,只不过是对固定间隔的时钟脉
29、冲进行计数,因此两者有许多性质是类似的。与定时器一样,每个计数器都有对应相同编号的16位专用寄存器SV和EV,以存储预置值和过程值。同一程序中相同编号的计数器只能使用一次,而对应的常开和常闭触点可使用无数次。计数器有两个输入端,即计数脉冲输入端CP和复位端R,分别由两个输入触点控制,R端比CP端优先权高。计数器的预置值即为计数器的初始值,该值为0 32767中的任意十进制数,书写时前面一定要加字母“K”。2021/9/1546例:例:例:例:F118(UDC)指 令,也 起 到 计 数 器 的 作 用。其 计 数 范 围 为 K-32768K32768。与CT不同的是,该指令可以根据参数设置,
30、分别实现加/减计数的功能。X0:加/减控制信号X1:计数输入信号X2:复位触发信号2021/9/1547例题说明:例题说明:例题说明:例题说明:使用F118(UDC)指令编程时,一定要有加/减控制、计数输入和复位触发三个信号。当检测到复位触发信号X2的下降沿时,DT10中的数据被传送到DT0中,计数器开始工作;当检测到X2的上升沿时,即复位信号有效,DT0被清0,计数器停止工作。X0为加/减控制信号,当其为ON时,进行加计数,为OFF时,进行减计数。X1为计数输入信号,检测到其上升沿时,根据X0的状态,执行加1或减1计数。这里,DT10相当于CT指令中的预置值寄存器SV,DT0相当于经过值寄存
31、器EV。当DT0中的结果为0时,特殊内部寄存器R900B接通,内部寄存器R50有输出。2021/9/1548 注意:注意:F118(UDC)指令与CT指令不同,它不是一个减预置值的计数器,它只能加/减计数,本身永远不会“动作”,故F118(UDC)指令没有触点。若要利用它进行控制的话,则必须借助一些其他指令或触点以达到控制目的。本例中使用了特殊内部寄存器R900B的控制触点,当运算结果为0,该触点为ON。2021/9/15493 3移位指令:移位指令:移位指令:移位指令:SRSR、F119(LRSR)F119(LRSR)SR为左移移位指令。其功能为:当R端为OFF状态时,该指令有效。这时,每检
32、测到一个CP端的上升沿(OFFON),WRn中的数据就从低位向高位依次左移一位,其中,WRn的最低位用数据输入端IN的状态补入,最高位数据丢失。当R为ON状态时,该指令复位,WRn中的数据被清零。此外,需要指出的是,该指令的操作数只能用内部字继电器WR,n为WR继电器的编号。2021/9/1550例:例:例:例:例题说明:例题说明:例题说明:例题说明:当复位信号X3为OFF状态时,每当检测到移位信号X2的上升沿,WR6寄存器的数据左移1位,最高位丢失,最低位由当时数据输入信号X1的状态决定:如果当时X1处于接通状态,则补1,否则,补0。如果X3接通,WR6的内容清0,这时X2信号无效,移位指令
33、停止工作。2021/9/1551F119(LRSR)指令为左/右移位寄存器指令,使16-bit内部继电器中的数据向左或向右移动1-bit。F119(LRSR)指令可以使用作为数据区的寄存器和常数见下表。D1:移位区内首地址寄存器;D2:移位区内末地址寄存器;注意:移位区内的首地址和末地址要求是同一种类型的寄存器,并满足D1D2。操作数可用寄存器继电器定时/计数器寄存器索引寄存器常数索引修正值WX WYWRSVEVDTIXIYKHD1D22021/9/1552例:例:例:例:X0:左/右移位信号X1:数据输入X2:移位信号和X3:复位触发信号2021/9/1553 F119(LRSR)指令需要有
34、4个输入信号,即左/右移位信号、数据输入、移位信号和复位触发信号,分别对应例中X0 X3共4个触点。DT0指定移位区首地址,DT9指定末地址。当X3为ON时,复位信号有效,DT0和DT9均被清0,移位寄存器停止工作。当X3为OFF时,移位寄存器正常工作。这时,由移位触发信号X2的上升沿触发移位操作,移动的方向由X0决定,若X0为ON,表示进行数据左移,为OFF,表示进行数据右移。至于移入的数据为1还是为0,则取决于X1的状态,若X1接通,移入数据为1,否则,移入数据为0。这里,DT0 DT9构成了连续的16位寄存器区,移位操作使所有位同时进行,整个区域按照高位在左侧、低位在右侧的顺序排列。例题
35、说明:例题说明:例题说明:例题说明:2021/9/1554三、控制指令 从程序的执行步骤和结构构成上看,基本顺序指令和基本功能指令是按照其地址顺序执行的,直到程序结束为止;而控制指令则可以改变程序的执行顺序和流程,产生跳转和循环,构成复杂的程序及逻辑结构。PLC指令的执行特点是采用扫描执行方式,这里就存在扫描和执行的关系的问题:对于一段代码,扫描并执行扫描并执行扫描并执行扫描并执行是正常的步骤,但是也存在另外一种情况,就是扫描但不执行扫描但不执行扫描但不执行扫描但不执行,从时间上看,仍然要占用CPU时间,但从结果上看,什么也没有作,相当于忽略了这段代码。因此,这种情况比较特殊,在控制指令部分会
36、经常遇到,要注意区别。另外,触发信号触发信号触发信号触发信号的概念在这部分经常用到,实际上与前文提到的控制信号控制信号控制信号控制信号是一样的,可以是一个触点,也可以是多个触点的组合,用于控制(触发)相关程序的执行。2021/9/15551 1主控继电器指令:主控继电器指令:主控继电器指令:主控继电器指令:MCMC、MCEMCEMC:主控继电器指令。MCE:主控继电器结束指令。功能:用于在程序中将某一段程序单独界定出来。当MC前面的控制触点闭合时,执行MC至MCE间的指令;当该触点断开时,不执行MC至MCE间的指令。2021/9/1556例:例:例:例:2021/9/1557例题说明:例题说明
37、:例题说明:例题说明:当控制触点X0接通时,执行MC0到MCE0之间的程序,这时,从上图中的梯形图可以看出,效果等同于右侧的简化梯形图。否则,不执行MC0到MCE0之间的程序。值得注意的是,当主控继电器控制触点断开时,在MC至MCE之间的程序,遵循扫描但不执行的规则,可编程控制器仍然扫描这段程序,不能简单地认为可编程控制器跳过了这段程序。而且,在该程序段中不同的指令状态变化情况也有所不同,具体情况参见下表。指令或寄存器状态变化OT(Y、R等)全部OFF状态KP、SET、RST保持控制触点断开前对应各继电器的状态TM、F137(STMR)复位,即停止工作CT、F118(UDC)保持控制触点断开前
38、经过值,但停止工作SR、F119(LRSR)保持控制触点断开前经过值,但停止工作其它指令扫描但是不执行2021/9/1558注意事项注意事项注意事项注意事项MC和MCE在程序中应成对出现,每对编号相同,编号范围为0 31之间的整数。而且,同一编号在一个程序中只能出现一次。MC和MCE的顺序不能颠倒。MC指令不能直接从母线开始,即必须有控制触点。在一对主控继电器指令(MC、MCE)之间可以嵌套另一对主控继电器指令,见下例。2021/9/1559例:主控继电器指令例:主控继电器指令(MC(MC、MCE)MCE)的嵌套使用的嵌套使用 2021/9/15602 2跳转指令:跳转指令:跳转指令:跳转指令
39、:JPJP、LBLLBLJP:跳转指令。LBL:跳转标记指令。当控制触点闭合时,跳转到和JP指令编号相同的LBL处,不执行JP和LBL之间的程序,转而执行LBL指令之后的程序。与主控指令不同,遵循不扫描不执行的原则,在执行跳转指令时,JP和LBL之间的指令略过,所以可使整个程序的扫描周期变短。2021/9/1561例:例:例:例:例题说明:例题说明:例题说明:例题说明:在JP1指令的前面、JP1与LBL1中间、以及LBL1的后面都可能有其它的指令程序段,如图所示。当控制触点X0断开时,跳转指令不起作用,JP1与LBL1中间的指令正常执行,与没有跳转指令一样;当控制触点X0接通时,执行跳转指令,
40、跳过JP1与LBL1中间的程序段,直接执行LBL1的后面的程序段。2021/9/1562例:手动/自动工作方式切换程序 2021/9/1563例题说明:上图中,X0表示手动、自动方式选择开关。当X0闭合时,转移条件成立,程序将跳过手动程序,直接执行自动程序然后执行公共程序;若X0断开,则执行手动程序后跳过自动程序去执行公共程序。这种用一个按钮进行手动、自动工作方式切换的编程方法广泛用于生产线上自动循环和手动调节之间的切换。2021/9/1564注意事项注意事项注意事项注意事项可以使用多个编号相同的JP指令,即允许设置多个跳向一处的跳转点,编号可以是0 63以内的任意整数,但不能出现相同编号的L
41、BL指令,否则程序将无法确定将要跳转的位置。LBL指令应该放在同序号的JP指令的后面,当然,放在前面也可以,不过这时扫描不会终止,而且可能发生瓶颈错误,详细内容请参见手册。JP指令不能直接从母线开始,即前面必须有触发信号。在一对跳转指令之间可以嵌套另一对跳转指令。不能从结束指令ED以前的程序跳转到ED以后的程序中去;不能在子程序或中断程序与主程序之间跳转;不能在步进区和非步进区进行跳转。2021/9/15653 3循环跳转指令:循环跳转指令:循环跳转指令:循环跳转指令:LOOPLOOP、LBLLBLLOOP:循环指令。LBL:循环标记指令。循环指令的功能为:当执行条件成立时,循环次数减1,如果
42、结果不为0,跳转到与LOOP相同编号的LBL处,执行LBL指令后的程序。重复上述过程,直至结果为0,停止循环;当执行条件不成立时,不循环执行。2021/9/1566例:例:例:例:例题说明:例题说明:例题说明:例题说明:当X6接通时,数据寄存器DT0的预置值减1,若结果不为0,LOOP指令跳转到LBL1处,执行LBL1之后的程序。重复执行相同的操作直至DT0中的内容变为0,结束循环。当X6断开时,不执行循环。2021/9/1567注意事项注意事项注意事项注意事项可以使用多个编号相同的LOOP指令,编号可以是0 63以内的任意整数,但不能出现相同编号的LBL指令,否则程序将无法确定循环区间。此外
43、,该指令可以与JP指令共用相同编号的LBL指令,但为了程序清晰,尽量避免。LBL指令与同编号的LOOP指令的前后顺序不限,但工作过程不同。一般将LBL指令放于LOOP指令的上面,此时,执行循环指令的整个过程都是在一个扫描周期内完成的,所以整个循环过程不可太长,否则扫描周期变长,影响了PLC的响应速度,有时甚至会出错。LOOP指令不能直接从母线开始,即必须有触发信号。当某编号的LOOP对应的触发信号接通时,与同编号的LBL即构成一个循环。循环跳转指令可以嵌套使用。不能从结束指令ED以前的程序跳转到ED以后的程序中去;也不能在子程序或中断程序与主程序之间跳转;不能在步进区和非步进区进行跳转。202
44、1/9/15684 4结束指令:结束指令:结束指令:结束指令:EDED、CNDECNDEED:结束指令,表示主程序结束。CNDE:条件结束指令,当控制触点闭合时,可编程控制器不再继续执行程序,结束当前扫描周期,返回起始地址;否则,继续执行该指令后面的程序段。例:例:例:例:例题说明:例题说明:例题说明:例题说明:当控制触点X0闭合时,条件结束指令CNDE起作用,返回程序起始地址,当前的扫描结束,进入下一次扫描;否则,控制触点X0断开,继续执行下面的指令扫描,当遇到ED指令,才结束当前的扫描。2021/9/15695.5.步进指令:步进指令:步进指令:步进指令:SSTPSSTP、NSTPNSTP
45、、NSTLNSTL、CSTPCSTP、STPESTPESSTP:步进开始指令,表明开始执行该段步进程序。NSTP、NSTL:转入指定步进过程指令。这两个指令的功能一样,都是当触发信号来时,程序转入下一段步进程序段,并将前面程序所用过的数据区清除,输出OT关断、定时器TM复位。区别在于触发方式不同,前者为脉冲式,仅当控制触点闭合瞬间动作,即检测控制触点的上升沿,类似于微分指令;后者为扫描式,每次扫描检测到控制触点闭合都要动作。CSTP:复位指定的步进过程。STPE:步进结束指令,结束整个步进过程。除了用于生产过程的顺序控制,步进指令还可用于选择分支控制、并行分支控制等.2021/9/1570例:
46、例:例:例:2021/9/1571 例题说明:当检测到X1的上升沿时,执行步进过程1,输出继电器Y1接通;当X2接通时,清除步进过程1,输出继电器Y1断开,并执行步进过程2,输出继电器Y2接通;当X3接通时,清除步进过程2,输出继电器Y2断开,并执行步进过程3,输出继电器Y3接通;当X4接通步时,清除步进过程3,输出继电器Y3断开,步进程序执行完毕。2021/9/1572注意事项:注意事项:注意事项:注意事项:步进程序中允许输出步进程序中允许输出OT直接同左母线相连。直接同左母线相连。步进程序中不能使用MC和MCE、JP和LBL、LOOP和LBL、ED和CNDE指令。在步进程序区中,识别一个过
47、程是从一个SSTP指令开始到下一个SSTP指令,或一个SSTP指令到STPE指令,即步进程序区全部结束。当NSTP或NSTL前面的控制触点接通时,程序进入下一段步进程序。这里的控制触点和步进控制程序区结束指令STPE都是必需的。下一个步进过程的开始同时也清除上一个步进过程。因为既没有下一个步进过程来清除,也不能自清除,所以,最最后后一一个个步步进进过过程程必必须须用用CSTPCSTP指指令令清清除除,而而且且步步进进控控制制程序区结束应有程序区结束应有STEPSTEP指令。指令。尽管在每个步进程序段中的程序都是相对独立的,但在各段程序中的输出继电器、内部继电器、定时器、计数器不能出现相同的编号
48、,否则按出错处理。2021/9/15736 6子程序调用指令:子程序调用指令:子程序调用指令:子程序调用指令:CALLCALL、SUBSUB、RETRETCALL:子程序调用指令,执行指定的子程序。SUB:子程序开始标志指令,用于定义子程序。RET:子程序结束指令,执行完毕返回到主程序。子程序调用指令的功能:当CALL n指令的执行条件成立时,程序转至子程序起始指令SUB n处,执行SUB n到RET之间的第n号子程序。遇到RET指令,子程序结束并返回到CALL n的下一条指令处,继续执行主程序。2021/9/1574例:例:例:例:例题说明:例题说明:例题说明:例题说明:当X0接通时,程序从
49、主程序转到编号为1的子程序的起始地址SUB 1处,开始执行子程序;当执行到RET处时,子程序执行完毕,返回到主程序调用处,从CALL 1指令的下一条指令继续执行随后的主程序。当X0断开时,不调用子程序,继续执行主程序。2021/9/1575注意事项注意事项注意事项注意事项FP1-C24可用子程序的个数为16个,即子程序编号范围为SUB0 SUB15,且两个子程序的编号不能相同。子程序必须编写在主程序的ED指令后面,由子程序入口标志SUB开始,最后是RET指令,缺一不可。子程序调用指令CALL可以在主程序、子程序或中断程序中使用,可见,子程序可以嵌套调用,但最多不超过5层。当控制触点为OFF时,
50、子程序不执行。这时,子程序内的指令状态如下表所示。指令或寄存器状态变化OT、KP、SET、RST保持控制触点断开前对应各继电器的状态TM、F137(STMR)不执行CT、F118(UDC);SR、F119(LRSR)保持控制触点断开前经过值,但停止工作其它指令不执行2021/9/15767 7中断指令:中断指令:中断指令:中断指令:INTINT、ICTLICTL、IRETIRETICTL:中断控制指令,用于设定中断的类型及参数。INT:中断程序开始标志。IRET:中断程序结束标志。为了提高PLC的实时控制能力,提高PLC与外部设备配合运行的工作效率以及PLC处理突发事件的能力,FP1设置了中断