第五章_s7-200的功能指令及应用
机电传动课程PLC指令及应用2

1 Q 0. 0
I0. 0 I0. 1
Q 0. 0
( S ) ( R )
1 1 Q 0. 0
LD I0.0 S Q0.0,1 LD I0.1 R Q0.0,1
I0.0 为1,执行下条语句 I0.1 为1,执行下条语句
I0.0 I0.1 Q0.0
11
S/R指令使用说明: ① 对同一元件可以多次使用S/R指令(与=指令不同)。 ② 对计数器和定时器复位,计数器和定时器的当前值将被清 零。 ③ N的取值范围为1~255,N可为:VB,IB,QB,MB, SMB,SB,LB,AC,常数,*VD,*AC,*LD。一般情况下 使用常数。 ④ S/R指令的操作数为:I,Q,M,SM,T,C,V,S和L。
(2)减计数器
减计数器指令(CTD)输入端有上升沿时,减计数器每次从计数器的 当前值减计数。当装载输入端接通时,计数器复位并把预设值装入当前值。 当计数器达到0时,计数器位接通。
(3)增/减计数器(CTUD)
①在每个CU输入的上升沿,从当前计数值开始递增计数。在每个 CD输入的上升沿递减计数。 ②当复位输入(R)置位或执行复位指令时,计数器复位。在达到 计数器最大值32767后,下一个CU输入上升沿将使计数值变为最小值 (-32768)。 ③同样在达到最小计数值(-32768)后,下一个CD输入上升沿将 使计数值变为最大值(32767)。
= M0.2 ( ) A T5 A 说明: = Q0.1 ① A、AN是单个触点串联连接指令,可连续使用。S7-200PLC的编程 软件中规定的串联触点使用上限为11个,多个如何处理? ② 若要串联多个触点组合回路时,须采用后面说明的ALD指令。 6 ③ A、AN的操作数:I,Q,M,SM,T,C,V和S。
第五章PLC 的功能指令

•第五章 S7-200系列PLC的功能指令 第五章 S7-200系列PLC的功能指令 系列PLC
5.2.2移位和循环移位指令
• 1.移位指令(Shift) • (1)右移指令 • 右移位指令把输入端(IN)指定的数据右移N位,结果存入OUT。右 移位指令按操作数的数据类型可以分为字节、字、双字右移位指令。 如图5-16所示。 • (2)左移指令 • 左移位指令把输入端(IN)指定的数据左移N位,结果存入OUT。左 移位指令按操作数的数据类型可以分为字节、字、双字左移位指令。 如图5-17所示。
• 1.数据传送指令(Move) • 数据传输指令把输入(IN)指定的数据传送到输出 数据传输指令把输入( )
),传送过程中数据值保持不变 (OUT),传送过程中数据值保持不变。数据传诵指令按 ),传送过程中数据值保持不变。 操作数的数据类型可以分为字节传送(MOVB)、 )、字传送 操作数的数据类型可以分为字节传送(MOVB)、字传送 )、双字传送 (MOVW)、双字传送(MOVD)和实数传送指 )、双字传送( ) 所示。 (MOVR)指令,如图 章 S7-200系列PLC的功能指令 第五章 S7-200系列PLC的功能指令 系列PLC
5.1.1 传送指令
• 2.数据块传送指令(Block Move)
• 数据块传送指令把从输入(IN)指定地址的 个连续字节、 数据块传送指令把从输入( )指定地址的N个连续字节 个连续字节、 双字的内容传送到从输出( 字、双字的内容传送到从输出(OUT)指定地址开始的 )指定地址开始的N 个连续字节、 双字的存储单元中去。 个连续字节、字、双字的存储单元中去。传送过程中个存 储单元的内容不变。 的数据范围为 的数据范围为1~255。数据块传送 储单元的内容不变。N的数据范围为 。 指令按操作数的数据类型可以分为字节块传送( 指令按操作数的数据类型可以分为字节块传送(BMB)、 )、 字块传送( 字块传送(BMW)和双字块传送(BMD)指令,如图 )和双字块传送( )指令,如图511所示。 所示。 所示
S7-200指令总结

I、Q、M、 Sbit
或操作,用于单一个动合触点与前面触点(或电路块) 并联
ON bit
或非操作,用于单一个动断触点与前面触点(或电路 块)并联
⒉ 立即触点指令
梯形图 bit
I
指令表 LDI bit LDNI bit
功能说明
立即装载,电路开始的动合触点
操作数
bit
⒉ 梯形图(LAD):由触点、线圈或功能块组成。梯形图左边一条竖线称 为左母线,右边一条称为右母线(在S7-200中省略)。触点代表逻辑输入 条件,线圈代表逻辑输出结果,功能块用来表示定时器、计数器或数学运 算等附加指令。梯形图中编程元件的“动合”或“动断”其本质是PLC内 部某一存储器数据“位”的状态;线圈代表CPU对存储器的写操作;连线 代表指令处理的顺序关系(从左到右,从上到下)。梯形图流向清楚、简 单、直观、易懂,很适合电气工程人员是由。是第一用户语言。
LDN bit
动断触点逻辑运算的开始,LAD中在左侧母线或电路 块分支处装载一个动断触点;STL中读入逻辑行或电 路块的第一个动断触点
bit
A bit
与操作,用于单一个动合触点与前面触点(或电路块) 串联,串联的次数不受限制,即该指令可多次重复使 用
bit
AN bit
与非操作,用于单一个动断触点与前面触点(或电路 块)串联,串联的次数不受限制,即该指令可多次重 复使用
操作数位置:指明了操作数在此存储区的确切位置,用数字来指明,以字 节为单位计数。 位 寻址: I 0
●
1 位号 分隔符 字节地址 区域标识符 MSB 7 I0.1 LSB 0
字节 寻址:
V B 10 首字节地址 访问一个字节 区域标识符 MSB 7 VB10 LSB 0
S7-200 SMART的功能指令

1.使能输入与使能输出 使能输入端EN有能流流入方框指令时,指令才能被执行。 EN输入端有能流且指令执行时无错误,则使能输出ENO将能流传递给下一 个方框指令或线圈。 语句表用AENO指令来产生与方框指令的ENO相同的效果。删除AENO指 令后,方框指令将由串联变为并联。
2.多重循环 循环最多可以嵌套8层。 在I0.6的上升沿,执行10次外 层循环,如果I0.7为ON,每执行 一次外层循环,将执行8次内层 循环。执行完后,VW10的值 增 加80。
4.4.3 其他指令
1. 条件结束指令与条件停止指令 条件结束指令END的逻辑条件满足时终 止当前的扫描周期。条件停止指令STOP使 CPU从RUN模式切换到STOP模式。 2. GET_ERROR(获取非致命错误代码) 指令很少使用。
【例4-3】压力变送器的压力计算公式为P = 10000×(N – 5530) / 22118(kPa),
N为整数。MUL指令得到的乘积为双整数。用右键菜单命令强制AIW16。
2.递增与递减指令 梯形图中IN + 1 = OUT,语句表中OUT+1=OUT
4.3.2 浮点数函数运算指令
浮点数函数运算指令的输入参数IN与输出参数OUT均为实数。 1.三角函数指令
3.计算程序中的数据转换 压力变送器的量程为0~10MPa,输出信号为0~10V,AI模块的量程为0~
10V,转换后的数字量为0~27648,设转换后的数字为N,压力值转换公式为 P =(10000 N)/ 27648 = 0.36169×N (kPa)
4.解码指令与编码指令 解码指令DECO根据输入字节IN的最低4位表示的位号,将输出字OUT对应 的位置为1,输出字的其他位均为0。16#0008=2#0000 0000 0000 1000。 编码指令ENCO将输入字IN中的最低有效位(为1的位)的位编号写入输出字 节OUT的最低4位。16#0210=2#0000 0010 0001 0000。 存储器填充指令FILL用输入参数IN指定的字值填充从地址OUT开始的N个连 续的字。
第5章 S7-200系列PLC的基本指令及程序设计-2

●计数器的当前值≠0时,其状态位为0;而它 的当前值=0时,状态位置 1,且停止计数。 ●当装载输入端 LD=1时,减计数器复位:
当前值=设定值,状态位=0。
计数器的应用 举例--计数范围的扩展
【例5-4-1】: 做一个计数器,当计数到200000时, 使Q0.0 = 1。 控制程序如下:
2
手动复位 初始化
●跳转/标号指令必须成对使用,且只能用在同一程 序块中。 ●跳转/标号指令中, n 的范围: 0~255。 ●执行跳转指令后,跳过程序段中各个元件(除定 时器外)的状态不变,保持跳转前的状态。
●跳过程序段中若有定时器:
a.1ms、10ms的定时器,系统会对它们周期 刷新,故会继续计时. b. 对于100ms的定时器,只有执行指令时其 当前值和状态位才会被刷新,因此跳过程序 段中的定时器指令因不执行而停止刷新,会 使定时器计时失准.
跳转、标号指令应用
【例5-3-5】
有一个机械手, 用工作方式开关
选择手动、单步
、自动工作方式
,主程序如下:
6. 子程序
● 在结构化程序设计时,采用子程序可以
优化程序结构,减少扫描时间;
● 与子程序相关的操作有: ※ ※ ※ 建立子程序 子程序调用 子程序返回
1)创建子程序
用命令“编辑” 程序” “插入” “子
第五章 S7-200PLC 基本指令及程序设计-2
河南延龙机电设备有限公司
§5-3 PLC的梯形图程序设计方法
1. 梯形图程序设计的方法 梯形图程序的基本 形式:
X开:开启条件 X关:关断条件 Fk 的自锁触点。
Fk
尽可能是短信号.
线圈Fk: 逻辑运算的中间(或最终)结果;
1)梯形图程序的设计方法:
第5章 西门子S7-200系列PLC功能指令(脉冲输出)

3) PTO的,允许脉 冲串排队。PTO输出多段脉冲的方式有两种: ●单段PTO:定义一个脉冲串,输出一个脉冲 串 (特性参数通过特殊寄存器分别定义) 。 ●多段PTO:集中定义多个脉冲串,按顺序输
出多个脉冲串(特性参数通过包络表集中定义) 。
▲单段PTO 实现的方法 用指定的特殊标志寄存器定义脉冲串特性 参数(每次定义一个脉冲串)。一个脉冲串输 出完成后,产生中断。在中断服务程序中再为 下一个脉冲串更新参数,输出下一个脉冲串。 ◎优点: 各脉冲段可以采用不同的时间基准。 ◎缺点:单段PTO输出多段高速脉冲串时,编程 复杂,且参数设置不当会造成脉冲串之间的不平 滑转换。每个脉冲串输出期间周期值不能改变.
2)特殊寄存器
每个 PTO/PWM 都有一组配套参数: ● 1个 8位的控制字节 ● 1个 8位的状态字节 ● 1个 16位的周期值 ● 1个 16位的脉宽值 ● 1个 32位的脉冲数量 对于多段 PTO,还有 ● 1个 8位的段字节 ● 1个 16位包络表起始地址
这些参数存放在系统指定的特殊标志寄存器中
高速脉冲输出指令控制 PLC 从指定的输出 端输出高速脉冲信号。 1. 高速脉冲输出的几个概念 1) 高速脉冲输出的形式 ● 高速脉冲串输出 PTO :
( Pulse Train Output )
输出指定数量,占空比为50% 的方波脉冲串。
● 宽度可调脉冲输出 PWM :
( Pulse Width Modulation )
名称及功能描述
SMW70
SMW80
PWM的脉宽值,字型,范围0~65535,16位无符号 数
SMD72
SMD82
PTO的脉冲数,双字型, 范围:1~4294967295,32位无符号数
s7-200指令表
2.5 S7---200PLC的指令2.5.1基本指令LD/LDN指令:LD和LDI指令是连接在母线连接的触点.表示操作开始.LD是常开触点,LDN是常闭触点.A/AN指令:A和AN指令是串联连接的触点,A是常开触点, AN是常闭触点.O/ON指令:O和ON指令是并联连接的触点,执行逻辑“或”的功能.OR是常开触点,ORI是常闭触点.= 指令:=是输出触点2.5.2复杂的逻辑指令OLD/ALD指令:OLD是电路块的并联。
ALD是电路块的串联。
2.5.3逻辑堆栈的操作LPS:逻辑入栈指令。
LRD: 逻辑出栈指令。
LPP:逻辑出栈指令。
2.5.4置位/复位指令S/R指令:S是置位指令。
R是复位指令,2.5.5边冲脉冲指令EU是上升沿指令,用—|P|—表示。
ED是下降沿,用—|N|—表示。
2.5.6定时器指令TON/TOF/TONR指令:TON:表示通电延时定时器。
TOF:表示断电延时定时器TONR:表示保持型通电延时定时器。
2.5.7计数器指定CTU/CTD/CTUD指令:CTU表示增计数器。
CTD:表示减数器。
CTUD:表示增/减数器。
程序控制指令2.5.8END/MEND结束指令:END表示条件结束指令,执行条件成立时结束住程序,返回主程序起点。
MEND表示无条件结束指令,结束住程序,返回主程序起点。
STOP指令:STOP表示停止指令2.5.9比较指令: CMP(Compare)的功能指令编号为FNC10,16位运算占7个程序步,32位运算占13个程序步.2.6.1传送指令:MOV的功能号为FNC12,它是将源操作数的内容传送目标操作数.2.6.2四则逻辑运算指令(1)二进制加法指令ADDADD的功能号为FNC20,它是将源操作数S1和S2中的16位二进制数相加,然后运算结果传送到指定的目标操作数中.(2) 二进制减指令SUBSUB的功能号为FNC21.它是将源操作数S1和S2中的16位二进制数相减,然后运算结果传送到指定的目标操作数中.(3) 二进制乘法指令MULMUL的功能号为FNC22.它是将源操作数S1和S2中的16位二进制数相乘,然后运算结果传送到指定的目标操作数为首地址的软元件中.(4) 二进制除法指令DIVDIV的功能号为FNC22.它是将源操作数S1和S2中的16位二进制数相除,然后运算结果传送到指定的目标操作数D中,余数传送到D+1中.。
西门子S7-200PLC指令系统手册
(二)输出指令 梯形图(LAD)中,“()”表示线圈,“能 流”到线圈端,则线圈被激励,其Q寄存器的相 应位为1,反之为0; 语句表(STL)中,输出指令为“=”,把栈 顶值复制到操作数地址指定的存储器位(bit), 堆栈各级栈值不变。 (三)置位和复位指令-把从操作数(bit)指定 的地址开始的N个点都被置位或复位,其中N=1 -255
3. 修改指针:用自增或自减指令修改指针,则可 连续存取存储单元中的数据
五、用户程序的结构 用户程序可分为三个区:主程序、子程序和 中断程序; 主程序(OB1):是用户程序的主体,CPU 在每一个扫描周期都要执行一次主程序指令; 子程序:可选部分,只有主程序调用时才执 行; 中断程序:可选部分,只有当发生中断事件 时,才执行中断程序,可在扫描周期的任意点执 行。
(二)直接寻址-指令中直接给出操作数的地址 的寻址方式 例: 位寻址 AND Q5.5
字节寻址 ORB VB33 , LB21 字寻址 双字寻址 MOVW MOVD AC0 , AQW200 AC1 , VD200
(三)间接寻址-指令中给出了存放操作数地 址的存储单元的地址的寻址方式 1. 建立指针
S7-200 PLC 的SIMATIC指令集不支持完全 数据类型检查; 使用局部变量时,执行简单数据类型检查; 使用全局变量时,指令操作数为地址而不是 可选的数据类型时,执行无数据类型检查。 (二)数据长度和数值范围 数据长度:用字节型(B)、字型(W)、 双字型(D)分别表示8位、16位、32位数据; 不同的数据长度对应的数据范围如表5-4所示
在语句表(STL)中,没有EN允许输入端, 但允许执行指令的条件是栈顶的值必须为1。 功能框的ENO端是允许输出端,即允许功能 框的布尔量输出,用于指令的级联 ; 语句表(STL)中,用AENO(ANDENO)指 令产生允许输出。 (四)条件输入、无条件输入 条件输入:在梯形图(LAD)、功能块图 (FBD)中,与“能流”有关的功能框或线圈不直 接与左母线连接;
S7-200--SMART的功能指令
4.2.5 实时时钟指令
1.用编程软件读取与设置实时时钟的日期和时间 单击“PLC”菜单功能区的“设置时钟”按钮,打开“CPU时钟操作”对 话框。可以读取PC、PLC的时钟,修改和下载日期时间。 2.读取实时时钟指令READ_RTC 从CPU的实时时钟读取当前日期和时间,8字节时间缓冲区依次存放年的低 2 位、月、日、时、分、秒、0 和星期的代码,星期日为1 。日期和时间的数 据类型为字节型BCD码。 3.设置实时时钟指令SET_RTC将8字节时间日期值写入CPU的实时时钟。
5.字节、字、双字的块传送指令 块传送指令将起始地址为IN的N个连续的存储单元中的数据,传送到从地址 OUT开始的N个存储单元,字节变量N = 1~255。 6.字节交换指令 字节交换指令SWAP用来交换输入字IN的高字节与低字节。应采用脉冲执行 方式。
4.2.2 移位与循环移位指令
移位位数N的数据类型为BYTE。 1.右移位和左移位指令 移位指令将输入IN中的数各位的值向右或向左移动N位后,送给输出OUT指 定的地址。移位指令对移出位自动补0,有符号的字和双字的符号位也被移位。 如果移位次数非0,“溢出”标志位SM1.1保存最后一次被移出的位的值。
【例4-1】 用接通延时定时器和比较指令组成占空比可调的脉冲发生器。 T37的常闭触点控制它的IN输入端,使T37的当前值按锯齿波变化。比较指 令用来产生方波,Q0.0为OFF的时间取决于比较指令第2个操作数的值。
S7-200PLC功能指令
S7-200PLC功能指令4.4 S7-200 PLC的功能指令PLC的功能指令(Functional Instruction)或称应⽤指令,是指令系统中满⾜特殊控制要求的那些指令。
在本节中主要介绍数据处理指令、数据运算指令、转换指令、表功能指令、程序控制类指令、中断指令、⾼速计数器指令、⾼速脉冲指令等。
1.指令格式指令的梯形图格式主要以指令盒的形式表⽰,如图4-49所⽰:图4-49 指令的梯形图格式指令盒的顶部为该指令的标题,如MOV_B,⼀般由两部分组成,前⾯部分为指令的助记符,后⾯部分为参与运算的数据类型,B表⽰字节,W表⽰字,DW表⽰双字、R表⽰实数、I表⽰整数、DI表⽰双整数。
指令的指令表格式也分为两部分,如字节传送指令的指令表格式为:MOVB IN,OUT。
前⾯部分为指令的助记符,后⾯部分为指令的操作数,其中“IN”为源操作数,“OUT”为⽬的操作数。
为了节省篇幅,对每条功能指令的操作数的内容即数据类型做如下约定:字节型:VB、IB、QB、MB、SB、SMB、LB、AC、*VD、*LD、*AC和常数。
字型及INT型:VW、IW、QW、MW、SW、SMW、LW、AC、T、C、*VD、*LD、*AC和常数。
双字型及DINT型:VD、ID、QD、MD、SD、SMD、LD、AC、*VD、*LD、*AC和常数。
2.指令的执⾏条作和运⾏情况指令梯形图格式中的“EN”端是允许输⼊端,为指令的执⾏条件,只要有“能流流⼊EN 端,指令就执⾏。
要注意的是:只要条件存在,该指令会在每个扫描周期执⾏⼀次,如果希望只执⾏⼀次,要在“EN”前加⼀条跳变指令。
在语句表(STL)程序中没有EN允许输⼊端,允许执⾏STL语句的条件是栈顶的值必须是“1”。
4.ENO状态(⽤于指令的级联)指令盒的右边设有“ENO”使能输出,若EN端有“能流”且指令被准确⽆误地执⾏了,则ENO端会有“能流”输出,传到下⼀个程序单元,如果指令运⾏出错,ENO端状态为0。