1、PLC 的基本指令一、 位操作类指令位操作类指令依靠两个数字 1 和 0 进行工作,这两个数字组成了二进制系统,数字 1 和 0 称之为二进制数或简称位。在触点与线圈中,1 表示启动或通电,0 表示启动或未通电。1标准触点指令梯形图表示:语句表表示: “LD bit ”; “LDN bit”。Bit 触点的范围:V、 I 、Q、M、SM、T、C 、S 、L(位) 。功能及说明常开触点在其线圈不带电时,触点是断开的,触点的状态为 Off 或为 0。当线圈带电时,其触点是闭合的,触点的状态为 ON 或为 1。该指令用于网络块逻辑运算开始的常开触点与母线的连接。常闭触点在其线圈不带电时,触点是闭合的
2、,触点的状态为 ON 或为 1。当线圈带电时,其触点是断开的,触点的状态为 OFF 或为 0。该指令用于网络块逻辑运算开始的常闭触点与母线的连接。2立即触点指令梯形图表示:语句表表示: “LDI bit ”; “LDNI bit”。Bit 触点的范围:I(位) 。功能及说明当常开立即触点位值为 1 时,表示该触点闭合。当常闭立即触点位值为 0 时,表示该触点断开。指令中的“I”表示立即的意思。执行立即指令时, CPU 直接读取其物理输入点的值,而不是更新映像寄存器。在程序执行过程中,立即触点起开关的触点作用。3输出操作指令(线圈驱动指令)梯形图表示:语句表表示: “ bit ”Bit 触点的范
3、围:V、 I 、Q、M、SM、T、C 、S 、L(位) 。功能及说明输出操作是把前面各逻辑运算的结果复制到输出线圈,从而使输出线圈驱动的输出常开触点闭合,常闭触点断开。输出操作时,CPU 是通过输入/输出映像区来读 /写输出操作的。4立即输出操作指令梯形图表示:语句表表示: “ I bit ”Bit 的范围: Q(位) 。功能及说明立即输出操作是把前面各逻辑运算的结果复制到输出线圈,从而使立即输出线圈驱动的输出常开触点闭合,常闭触点断开。当立即输出操作时,CPU 立即输出。除将结果写到输出映像区外直接驱动实际输出。5逻辑与、或操作指令梯形图表示:逻辑与操作由标准触点或立即触点串联构成;逻辑或操
4、作由标准触点或立即触点的并联构成。语句表表示:“A bit” 、 “O bit ” 、 “AN bit” 、 “ON bit” 、 “AI bit ” “OI bit ”、 “ANI bit ” 、 “ONI bit”。Bit 的范围:V 、 I 、Q、M、SM、T、C 、S 、L(位) 。功能及说明逻辑与是指两个器件的状态都是 1 时才有输出,两个器件中只要有一个为 0,就没有输出。逻辑或是指两个器件的状态只要有一个是 1 就有输出,只有当两个器件都是 0 时才没有输出。语句表(STL)语言如下:L D I 0.0A I 0.1= Q 4.0语句表(STL)语言如下:LD I 0.0O I
5、0.1= Q 4.06逻辑非操作指令梯形图表示:取非操作是在一般触点上加写 NOT 字符语句表表示: “NOT”功能及说明取非操作就是把源操作数的状态去反作为目标操作数输出。当操作数的状态为 OFF(或为 0)时,取非操作的结果状态 ON(或为 1) ;反之一样。非操作数只能和其他操作数联合使用,本身没有操作数。7串联电路的并联操作指令梯形图表示:只是一个由多个触点的串联构成一条支路,一系列这样的支路再相互并联构成复杂电路。语句表表示: “OLD”功能及说明串联电路的并联连接就是指多个串联电路之间又构成了或的逻辑操作,串联电路的并联连接的语句表示,是在两个与逻辑的语句后面用操作码。在执行程序时
6、,先算出各个串联支路(与逻辑)的结果,然后再把这些结果的或传送到输出。8并联电路的串联操作指令梯形图表示:由多个触点的并联构成一部分电路,多个这样的部分电路再相互串联构成复杂电路。语句表表示:“ALD”功能及说明在执行程序时,先算出各个并联支路(或的逻辑)结果,然后再把这些结果进行与再传送到输出。9置位、复位(S/R)指令梯形图表示:语句表表示: 置位操作 “S bit ,n” 复位操作 “R bit ,n” 。Bit 的范围:V 、 I 、Q、M、SM、T、C 、S 、L(位) 。N 的范围:VB、IB、QB、AC、SB、LB 、常量、VD、AC、LD功能及说明置位操作:当置位信号为 1 时
7、,被置位线圈置 1,当置位信号变为 0 时,被置位位的状态可以保持,直到使其复位信号的到来,在执行置位指令时,注意被置位的线圈数目应是从指令中指定的位器件开始共有 n 个。复位操作:当复位信号为 1 时,被复位位置 1,当复位信号变为 0 时,被复位位的状态可以保持,直到使其置位信号的到来,在执行置位指令时,注意被复位的线圈数目应是从指令中指定的位器件开始共有 n 个。梯形图语句表: LD I0.0S Q0.0 ,1LD I0.1 R Q0.0 ,1时序图:10立即置位与立即复位操作指令梯形图表示:语句表表示:立即置位指令:“SI bit ,n” 立即复位指令: “RI bit ,n” 。Bi
8、t 的范围:Q (位) 。N 的范围:VB、IB、QB、AC、SB、LB 、常量、VD、AC、LD功能及说明立即置位操作:当置位信号为 1 时,被置位线圈置 1,当置位信号变为 0 时,被置位位的状态可以保持,直到使其复位信号的到来,在执行置位指令时,注意被置位的线圈数目应是从指令中指定的位器件开始共有 n 个。立即复位操作:当复位信号为 1 时,被复位位置 1,当复位信号变为 0 时,被复位位的状态可以保持,直到使其置位信号的到来,在执行置位指令时,注意被复位的线圈数目应是从指令中指定的位器件开始共有 n 个。11上、下微分操作指令梯形图表示:语句表表示:上微分“EU” ;下微分“ED ”。
9、功能及说明上微分是指某一位操作数的状态由 0 变为 1 的过程,即出现上升沿的过程,上微分指令在这种情况下可以形成一个 ON、一个扫描周期的脉冲。下微分是指某一位操作数的状态由 1 变为 0 的过程,即出现下降沿的过程,下微分指令在这种情况下可以形成一个 ON、一个扫描周期的脉冲。这个脉冲可以用来启动下一个控制程序、启动一个运算过程、结束一段控制等。注意上、下微分脉冲只存在一个扫描周期,接受这一脉冲控制的器件应写在这一脉冲出现的语句之后。举例:梯形图 语句表: LD I0.0S Q0.0,1LD I0.1R Q0.0 ,1LD I0.0EU = M0.0LD M0.0S Q0.0 ,1LD I
10、0.1ED M0.1LD M0.1R Q0.1 ,1脉冲生成指令应用:二、逻辑堆栈操作指令堆栈是一组能够存储和取出数据的暂存单元,其特点是“先进后出” ,每一次进行入栈操作,新值放入栈顶,栈底值丢失;每一次进行出栈操作,栈顶值弹出,栈底值补进随机数。S7200PLC 使用了一个 9 层堆栈来处理所有逻辑操作,逻辑堆栈指令主要用来完成对触点进行的复杂连接。配合 ALD、OLD 指令使用。该类指令没有梯形图表示形式。1 逻辑入栈指令语句表表示:“LPS” 。功能及说明逻辑入栈指令又称为分支电路开始指令。在梯形图中,可以形象地看出,它用于生成一条新的母线,其左侧为原来的主逻辑块,右侧为新的从逻辑块,
11、因此可以直接编辑。从堆栈使用上来讲,LPS 指令的作用是把栈顶值复制后压入堆栈,栈底值被丢失。2 逻辑读栈指令 LRD语句表表示:“LRD” 。功能及说明在梯形图中,当新母线左侧为主逻辑块时,LPS 开始右侧的第一个从逻辑块编程, LRD 开始第二个以后的从逻辑块编程。从堆栈使用上来讲,LRD 读取最近的 LPS 压入堆栈的内容,而堆栈本身不进行压入和弹出操作。3 逻辑出栈指令语句表示:“LPP” 。功能及说明逻辑出栈指令又称分支电路结束指令。在梯形图中,LPP 用于 LPS 产生的新母线右侧的最后一个从逻辑块编程,它在读取完离它最近的 LPS 压入堆栈内容的同时,复位该条新母线。从堆栈使用上
12、来讲,LPP 把堆栈弹出一级,堆栈内容一次上移。 LPP 和 LPS 指令必须成对使用,他们之间可以使用 LRD 指令。由于受堆栈空间的限制(9 层堆栈) ,LPS 和 LPP 指令连续使用时应少于 9 次。4 装入堆栈指令语句表表示:“LDS n”N 的范围:08 的整数。功能及说明复制堆栈中的第 n 个值到栈顶,而栈底丢失。该指令在编程中使用较少。三、定时器和计数器指令(一)定时器指令定时器是 PLC 中最常用的部件之一。S7200PLC 为用户提供了三种类型的定时器:接通延时定时器 TON、记忆接通延时定时器 TONR 和断电延时定时器 TOF。S7 200PLC 定时器有 3 个精度等
13、级 1ms、10ms、100ms 。定时器定时时间 T 的计算:T设定值精度等级1 接通延时定时器 TON梯形图表示:接通延时定时器由定时器标识符 TON、定时器的启动电平输入端 IN、时间设定值输入端 PT 和接通延时定时器编号 Tn 构成。语句表表示:“TON Tn, PT”定时器 T 编号 n 范围:0255。IN 信号范围:I 、Q、M 、SM、T、C 、V 、S、L(位)PT 范围:VW、IW、QW 、MW、SMW、AC、AIW 、SW、LW、常量、VD 、AC、LD (字) 。功能及说明接通延时定时器用于单一时间间隔的定时。当定时器的启动信号 IN 的状态为 0 时,定时器的当前值
14、为 0,定时器 Tn 的状态也是 0,定时器没有工作。当 Tn 的启动信号由 0 变成 1 时,定时器开始工作,每过一个基本时间间隔,定时器的当前值加 1。当定时器的当前值等于大于定时器的设定值 PT 时,定时器的延时时间到了,这时定时器的状态由 0 变为 1,在定时器输出状态改变后,定时器继续计时直到 32767(最大值)时,才停止计时。当前值将保持不变,只要当前值大于 PT值,定时器的状态就为 1,如果不满足这个条件,定时器的状态为 0。当 IN 信号由 1 变为 0 时,则当前值复位(置 0) 、Tn 状态也为 0。当 IN 从 0 变为 1 后,维持的时间不足以使得当前值达到 PT 值
15、时,Tn 的状态也不会由 0 变为 1。应用:语句表: LD I0.0TON T33 ,100LD T33 Q0.0时序图:2 记忆接通延时定时器 TONR梯形图表示:记忆接通延时定时器由定时器标识符 TONR、定时器的启动电平输入端 In、时间设定值输入端 PT 和记忆接通延时定时器编号 Tn 构成。语句表表示:“TONR Tn, PT”定时器 T 编号 n 范围:0255。IN 信号范围:V、I 、Q、M 、SM、T、C、V、S、L(位) 。电流PT 范围:VW、IW、QW 、MW、SMW、AC、AIW 、SW、LW、常量、VD 、AC、LD (字) 。功能及说明记忆接通延时定时器具有记忆
16、功能,它用于许多间隔的累计定时。带有记忆接通延时定时器的原理与接通延时定时器基本相同。不同之处在于,带有记忆接通延时定时器的当前值是可以记忆的。当 IN 从 0 变为 1 后,维持的时间不足使得当前值达到 PT 值时,IN 从 1 变为 0,这时当前值可以记忆保持;IN 再次才从 0 变为 1 时,当前值将在记忆的基础上累积,当当前值大于等于 PT 值时, Tn 的状态仍可由 0 变为 1。需要注意的是 TONR 定时器只能用复位指令 R 对其进行复位操作。掌握好对 TONR 的复位及启动是使用好 TONR 指令的关键。应用举例:语句表: LDN I0.0TONR T3 ,100LD I0.1
17、R T3 ,1LD T3 Q0.0时序图:3断开延时定时器(TOF)梯形图表示:断开延时定时器由定时器标识符 TOF、定时器的启动电平输入端 IN、时间设定值输入端 PT 和断开延时定时器编号 Tn 构成。语句表表示:“TOF Tn , PT”定时器编号 n 范围:0 255IN 信号范围:V、I 、Q、M 、SM、T、C、V、S、L(位) 。电流PT 范围:VW、IW、QW 、MW、SMW、AC、AIW 、SW、LW、常量、VD 、AC、LD (字) 。功能及说明断开延时定时器用于断电后的单一间隔时间计时。当定时器的启动信号 IN 的状态为 1 时,定时器的当前值为 0,定时器 Tn 的状态
18、也是 1,定时器没有工作。当 Tn 的启动信号由 1 变为 0 时,定时器开始工作,每过一个基本时间间隔,定时器的当前值加 1;当定时器的当前值大于等于定时器的设定值 PT 时,定时器的延时时间到。这是定时器的状态由 1 转换为 0,在定时器输出状态改变后,停止计时,当前值将保持不变,定时器的状态就为 0。当 IN 信号由 0 变为 1,则当前值复位(置 0) 、Tn 状态也为 1;当 In 从 1 变为 0 后维持的时间不足以使得当前值达到 PT 值时,Tn 的状态不会由 1 变为 0。应用:语句表: LD I0.0TOF T33 , 3时序图:4定时器编程说明定时器编程时要预置定时值,在运
19、行过程中定时器的输入条件满足时,当前值从 0 开始按一定的时间单位增加。当定时器的当前值达到设定值时,定时器发生动作,从而满足各种定时逻辑控制的需要。应用时要注意恰当地使用不同精度的定时器,以提高定时器的时间精度。TON 和 TOF 使用相同范围的定时器编号,需要注意的是,在同一个 PLC 程序中决不能把同一个定时器号同时用作TON 和 TOF。不同精度等级的定时器编号精度等级 1ms 的定时器 10ms 的定时器 100ms 的定时器接通延时定时器 T32、T96 T33T36 、T97T 100 T37T63、T101T255记忆接通延时定时器 T0、T64 T1T4、T65T 68 T5
20、T31、T69T 95 断开延时定时器 T32、T96 T33T36 、T97T 100 T37T63、T101T255(二)计数器指令计数器有 3 种:增计数器 CTU、减计数器 CTD 和增减计数器 CTUD1 增计数器 CTU梯形图表示:增计数器由增计数器标识符 CTU、计数脉冲输入端 CU、增计数器的复位信号输入端 R、增计数器的设定值 PV 和计数器编号 Cn 构成。语句表表示:“CTU Cn , PV”定时器编号 n 范围:0255CU、R 信号范围: I、Q、M、SM、T、C、V、S、L(位)PV 范围:VW、IW、QW、MW、SMW、AC、AIW、SW、LW、常量、VD、AC、
21、LD(字) 。功能及说明增计数器在复位端信号为 1 时,其计数器的当前值为 0,计数器的状态也为 0。当复位端的信号为 0 时,计数器工作。每当一个输入脉冲到来时,计数器的当前值进行加 1 操作。当当前值大于等于设定值 PV 时,计数器的状态变为 1,这时再来计数器脉冲时,计数器的当前值仍不断累加,直到 32767 时,停止计数。直到复位信号到来,计数器的值等于 0,计数器的状态变为 0。2 减计数器 CTD梯形图表示:减计数器由减计数器标识符 CTD、计数脉冲输入端 CD、减计数器的装载输入端LD、减计数器的设定值 PV 和计数器编号 Cn 构成。语句表表示:“CTD Cn , PV”定时器
22、编号 n 范围:0255CU、R 信号范围: I、Q、M、SM、T、C、V、S、L(位)PV 范围:VW、IW、QW、MW、SMW、AC、AIW、SW、LW、常量、VD、AC、LD(字) 。功能及说明减计数器在在装载输入端信号为 1 时,其计数器的设定值 PV 被装入计数器的当前值寄存器,此时当前值为 PV,计数器的状态为 0。当装载输入端的信号为 0 时,其计数器可以工作。每当一个输入脉冲到来时,计数器的当前值进行减 1 操作。当当前值等于 0 时,计数器的状态变为 1,并停止计数。这种状态一直保持到装载输入端变为 1,再次装入 PV 值之后,计数器的状态为 0,才能重新计数,只有当前值为
23、0 时,才为 1。应用:梯形图 语句表时序图3 增减计数器 CTUD梯形图表示:增减计数器由增减计数器标识符 CTUD、增减计数器复位信号输入端 R、增计数器计数脉冲输入端 CU、减计数器计数脉冲输入端 CD、增减计数器的设定值 PV 和计数器编号 Cn 构成。语句表表示:“CTUD Cn ,PV”定时器编号 n 范围:0255CU、CD、R 信号范围:I 、Q、M、SM、T、C、V、S、L(位)PV 范围:VW、IW、QW、MW、SMW、AC、AIW、SW、LW、常量、VD、AC、LD(字) 。功能及说明增计数器在复位端信号为 1 时,其计数器值为当前值,计数器的状态为 0。当复位端的信号为
24、 0时,计数器可以工作。每当一个增计数脉冲到来时,计数器的当前值进行加 1 操作。当当前值大于等于设定值 PV 时,计数器的状态变为 1,这时再来计数器脉冲时,计数器的当前值仍不断累加,直到 32767 后,下一个 CU 脉冲将使计数值变为最小值(32768)停止计数。每当一个减计数脉冲到来时,计数器的当前值进行减 1 操作。当当前值小于设定值 PV 时,计数器的状态变为 0,再来减计数脉冲时,计数器的当前值仍不断地递减,达到最小值32768 后,下一个 CD 脉冲使计数值变为最大值(32767)停止。注意:用语句表表示时,要注意指令的先后顺序不能颠倒。第一个 LD 语句为增计数输入、第二个
25、LD 语句为减计算输入、第三个 LD 语句为复位信号输入、增减计数语句。应用:梯形图 语句表时序图四、比较指令比较指令是将两个操作数按指定的条件进行比较。条件成立,触点就闭合,所以比较指令也是一种位指令。在实际应用中,使用比较指令为上下限控制以及数值条件判断提供了方便。比较指令的类型有:字节比较、整数比较、双字比较和实数比较。字节比较是无符号的,其它类LD I 0.1LD I 0.2LD I 0.3CTUD C48 ,4型为有符号的比较指令的关系符有:等于、大于、小于、大于等于=、小于等于、小于、大于等于=、小于等于=) 、比较数 1(IN1)和比较数 2(IN2)构成。例如:LDBIN1 ,
26、IN2。字节输入 IN1、 IN2 的范围: VB、IB、QB、MB、SMB、AC、SB 、LB、常数、VD 、AC、LD。数据输入 IN1 和 IN2 的范围: VW、IW、QW、MW 、SMW、T、AC、AIW、C 、SW、LW 、常数、VD、AC、LD。双整数输入 IN1 和 IN2 的范围: VD、ID、QD、MD、SMD、AC、SD、LD、HC、常数、VD、AC 、LD。实数输入 IN1 和 IN2 的范围: VD、ID、QD、MD、SMD、AC、SD、LD、HC、常数、VD、AC 、LD。功能及说明:当比较数 1 和比较数 2 的关系符合比较符的条件时,比较触点闭合,后面的电路被接
27、通。否则比较触点断开、后面的电路不接通。换句话说,比较触点相当于一行条件的常开触点,当关系符成立时,触点闭合;不成立时,触点断开。应用:计数器 C30 中的当前值大于等于 30 时,Q0.0 为 ON;VD1 中的实数小于 95.8 且 I0.0 为 ON 时,Q 0.1 为 ON;VB1 中的值大于 VB2 中的值或 I0.1 为 ON 时,Q0.2 为 ON。IDW C30,30 Q0.0LD I0.0AR VD1,95.8 Q0.1LD I0.1OB VB1,VB2 Q0.2五、程序控制指令程序控制指令使程序结构灵活,合理使用该程序指令可以优化程序结构,增强程序功能。这类指令主要包括:结
28、束、暂停、看门狗、跳转、子程序、循环和顺序控制等指令(一) 、结束指令结束指令分为有条件结束指令 END 和无条件结束指令 MEND。两条指令不含操作数,执行完结束指令后,系统结束主程序,返回主程序起点。梯形图表示: 语句表表示: END功能及说明:结束指令根据先前逻辑条件终止用户程序,结束指令可以在主程序内使用,但不能在子程序或中断程序内使用。在调试程序时,在程序的适当位置置入无条件结束指令可实现程序的分段调试。STEP7Micro/WIN32 软件自动在主程序结尾加上了条件结束语句。在编制主程序时不需要用户再在程序末尾添加结束语句(END)(二) 、暂停指令梯形图表示:语句表表示: STO
29、P功能及说明:暂停指令使 PLC 从运行 RUN 模式进入停止 STOP 模式,立即终止程序的执行。使用该指令需要注意:如果在中断程序内执行暂停指令,中断程序立即终止,并忽略全部等待执行的中断;对程序剩余部分进行扫描,并在当前扫描结尾处完成从运行模式到停止模式的转换;STOP 和 END 指令通常在程序中用来对突发紧急时间进行处理。(三) 、看门狗复位指令梯形图表示:语句表表示: WDR功能及说明:看门狗复位指令允许 CPU 系统的监视程序定时器被重新触发。因此,看门狗复位指令可以在没有监视程序错误的条件下增加 CPU 系统扫描占用的时间。如果当前扫描时间不能满足要求时,可以考虑使用看门狗复位
30、指令,用以延长扫描时间。使用循环指令造成阻止扫描完成或过度地延迟扫描完成时间,而有些程序的执行过程只有在一个扫描循环终止后才能进行。那么,在终止本次扫描前,程序的执行过程可能会被禁止有:通信(自由口模式出外) 、I /O 更新(立即 I/O 出外) 、强迫更新、SM 位更新(不更新 SM0、SM5SM29) 、运行时诊断、10ms 及 100ms 定时器对于超过 25ms 的扫描不能正确地累计时间,以及在中断程序中使用暂停指令。因此,如果希望扫描时间超过系统设置的 300ms,或者预计发生大量中断事件,可能阻止在300ms 内返回主程序,则应使用看门狗复位指令重新监视程序计时器。(四) 、跳转
31、标号指令梯形图表示:语句表表示:JMP n (跳转指令) 、LBL n(标号指令)数据范围:0255功能及说明:跳转指令可以使程序流程转到具体的标号(n)处。当跳转条件满足时,程序有 JMP 指令控制跳转至标号 n 的程序段去执行。标号指令用来标记指令转移目的地 n 的位置(号) 。跳转指令和标号指令必须配合使用,他们必须位于同一个主程序、子程序或中断程序内(要么是主程序、要么是子程序、要么是中断程序) ,不能从主程序转移至子程序或中断程序内的标号,也不能从子程序或中断程序转移至该子程序或中断程序之外的标号。(五) 、循环指令循环指令的引入,为解决重复执行相同功能的程序段提供了极大方便,并且优
32、化了程序结构。循环指令有两条 FOR 和 NEXT。梯形图表示:语句表表示:“FOR INDX”;“INIT ,FINAL” (循环开始跳转指令) ;“NEXT” (循环结束指令) 。INDX 范围: VW、IW、QW、MW、SMW、T、C、AC、 、SW、LW、VD、AC。INIT、FINAL 范围:VW、IW、QW、MW 、SMW、T、 AC、AIW 、C、SW、LW、常数、VD、AC 。功能及说明:循环开始指令 FOR:用来标记循环体的开始。循环结束指令 NEXT:用来标记循环体的结束,无操作数。循环指令中有三个数据输入端:当前循环计数 INDX、循环初值 INIT 和循环终值 FINA
33、L。在使用时必须给 FOR 指令指定当前循环计数、初值和终值。FOR 和 NEXT 之间的程序段称为循环体,每执行一次循环体,当前计数值增 1,并且将其结果同循环终值作比较,如果大于终值,则终止循环。说明:FOR 和 NEXT 指令必须成对使用。 1FOR 和 NEXT 可以循环嵌套,嵌套最多为 8 层,但各个嵌套之间不可有交叉现象。 2每次输入信号 EN 重新有效时,指令将自动复位各参数。 3初值大于终值时,循环体不被执行。 4应用:当 I0.0 接通时,表示为 A 的外层循环执行 100 次。当 I0.1 接通时,表示为 B 的内层循环执行 5次。(六) 、子程序操作指令S7200PLC
34、把程序主要分为三大类:主程序(OB1)子程序( SBR n)和中断程序(INT n) 。实际应用中,有些程序内容可能被反复使用,对于这些可能被反复使用的程序,我们往往把它编成一个单独的程序块,存放在程序的某一个区域中。执行程序时,可以随时调用这些程序块。这些程序块可以带一些参数,可以不带参数,这类程序块就叫做子程序。子程序的有点在于它可以用于对一个大的程序进行分段及分块,使其成为较小的更易管理的程序块。程序调试、程序检查和程序维护时,可以充分利用这项优势。通过使用较小的子程序块,会使得对一些区域及整个程序检查及排除故障变得更简单。子程序只在需要时才被调用、执行。这样就可以更有效地使用 PLC,
35、充分地利用 CPU 的时间。子程序由子程序标号开始,到子程序返回指令结束。S7200PLC 的 Micro/WIN32 编程软件为每个子程序自动加入子程序标号和子程序返回指令。在编程时,子程序开头不用编程者另加子程序标号,子程序末尾也不需要另加返回指令。1 子程序调用指令与返回指令梯形图表示:子程序调用指令由子程序调用允许端 EN、子程序调用助记符 SBR 和子程序标号 n构成。子程序返回指令由子程序返回条件、子程序返回助记符 RET 构成。语句表表示:CALL SBR _n(子程序调用指令) ;RET (返回指令) 。数据范围:063功能及说明:主程序内使用的调用指令决定是否去执行指定子程序
36、。子程序的调用由调用指令完成。当子程序调用允许时,调用指令将程序控制转移给子程序(SBR_n),程序扫描将转到子程序入口处执行。当执行子程序时,子程序将执行全部指令直至满足返回条件才返回,或者执行到子程序末尾而返回。当子程序返回时,返回到原主程序出口的下一条指令执行,继续往下扫描程序。2 子程序编程步骤建立子程序(SBR_n) 1在在程序(SBR_ n)中编写应用程序 2在主程序或其它子程序或中断程序中编写调用子程序(SBR_ n)指令 33 注意事项程序内一共可有 64 个子程序。可以嵌套子程序(在子程序内放置子程序调用指令)最大嵌套 1深度为 8不允许直接递归。例如,不能从 SBR0 调用
37、 SBR0。但是允许进行间接递归。 2各子程序调用的输入/输出参数的最大限制是 16 个,如果要下载的程序超过此限制将返回错误。 3对于带参数的子程序调用指令应遵守下列原则:参数必须与子程序局部变量表内定义的变量完 4全匹配;参数顺序应为输入参数最先,其次是输入/输出参数,最后是输出参数。在子程序内不能使用 END 5LD I0.0O Q0.0AN T37AN I0.3AN I0.4= Q0.0LD I0.2O M0.0A Q0.0= M0.0LD M0.0TON T37, +50LD I0.0O Q0.1A Q0.0AN I0.2AN I0.3AN I0.4= Q0.1Network 1 /
38、 网络标题/ 网络注解Network 2 LD I0.0EU= M0.0LD M0.0S Q0.0, 1LD I0.1ED= M0.1LD M0.1R Q0.0, 1LD I0.0S M0.0, 1LD I0.1R M0.0, 1LD M0.0AN Q0.1AN Q0.2S Q0.0, 1LD Q0.0TON T37, 300LD Q0.0A T37S Q0.1, 1R Q0.0, 1LD Q0.1TON T38, +30LD Q0.1A T38S Q0.2, 1R Q0.1, 1LD Q0.2TON T39, +200LD Q0.2A T39R Q0.2, 11、由两台三相交流电动机 M1、
39、M2 组成的控制系统的工作过程是:按启动按钮 SB1,M1 电动机启动,M1 电动机启动后按 SB2,M2 电动机启动(若 M1 电动机没有启动,则 M2 电动机不能启动) ;按停止按钮 SB3,M2 电动机停止,过 5 秒后 M1 电动机停止;按急停按钮 SB4 电动机M1、M2 停止;若 M2 电动机过载,则两台电动机都应停机。按上述要求:1.设计电动机控制主电路;2.选择 PLC,设计 PLC 控制回路;3.分配 I/O 通道,画出梯形图;4.写出语句表;1 电动机控制主电路: 2 选择 PLC,设计 PLC 控制回路 4 梯形图: 语句表:LD I0.0O Q0.0AN T37AN I
40、0.3AN I0.4= Q0.0LD I0.2O M0.0A Q0.0= M0.0LD M0.0TON T37, +50LD I0.0O Q0.1A Q0.0AN I0.2AN I0.3AN I0.4= Q0.1I/O 通道分配:启动按钮 SB1 I0.0启动按钮 SB2 I0.1停止按钮 SB3 I0.2急停按钮 SB4 I0.3热保护器 FR1 I0.4输出接触器KM1 Q0.0输出接触器KM2 Q0.1时间继电器T37时序图如下:四、移位操作指令(一)自定义位移位指令梯形图表示:自定义位移位指令由自定义位移位操作符(SHRB ) 、自定义位移位允许信号(EN) 、移位寄存器移入的数据(D
41、ATA) 、移位寄存器的起始位(SBIT) 、移位寄存器的长度和移位方向(N)构成。语句表表示: SHRB DATA, SBIT, N 位 DATA、SBIT 范围:V、I 、M、SM、T、C、S、L。功能及说明:当自定义移位允许信号 EN 1 时,位数据 DATA 填入移位寄存器移位的最低位(SBIT) ,移位寄存器的长度为 N 的绝对值,移位方向为 N 的符号,每次移一位,第 N 位溢出(到 SM1.1 中)。在语句表表示中,位数据 DATA 填入位移寄存器移位的最低位(S BIT ) ,移位寄存器的长度为N,每次移一位,第 N 位溢出(到 SM1.1 中) 。自定义位移指令的注意事项:移
42、位寄存器的最低位由 SBIT 决定,移位寄存器的最高位可以由最低位(SBIT)和移位寄存器的长度 N 决定。移位指令包括左移、右移、循环左移和循环右移及自定义位移位。数据类型约定如下:字节 N 范围:VB、IB、QB、MB、SMB、AC、SB、LB、常量、*VD、*AC、*LD 。字节 IN 范围: VB、IB、QB、MB、SMB、AC、SB、LB、常量、*VD 、*AC、*LD 。字 OUT 范围: VB、IB、QB、MB、SMB、AC、SB、LB、*VD 、*AC、*LD 。(一) 移位指令:移位数据储存单元的移出端与溢出位 SM1.1 相连,最后被移出的位被放到 SM1.1 位储存单元。
43、移位时,移出位进入 SM1.1,另一端自动补 0。SM1.1 始终存放最后一次被移出的位,移位次数与移位数据的长度有关,如果所需移位次数大于移位数据的位数,则超出次数无效。如果移位操作使数据变为 0,则零储存器位 SM1.0 自动置位。所有移位指令的移位次数 N 均为字节型数据。1 右移指令:梯形图表示:语句表表示:字节右移“SRB OUT,N” ;字右移“SRW OUT,N” ;双字右移“SRD OUT, N”;功能及说明:当右移允许信号 EN1 时,被右移数 IN 右移 N 值,最左边移走数的位依次用 0 填充,其结果传送到 OUT 中。在语句表表示中,OUT 被右移 N 位,最左边移走数的位依次用 0 填充,其结果传送到 OUT 中。2 左移指令梯形图表示:语句表表示:字节左移“SRB OUT,N” ;字左移“SRW OUT,N ”;双字左移“SRD OUT, N”;功能及说明:当左移允许信号 EN1 时,被左移数 IN 右移 N 值,最右边移走数的位依次用 0 填充,其结果传送到 OUT 中。在语句表表示中,OUT 被左移 N 位,最右边移走数的位依次用 0 填充,其结果传送到 OUT 中。