第六章 S7-200PLC特殊功能指令要点
第6章S7-200 PLC的功能指令及使用
Network 10 C10 +16 Network 11 C10
QB0
MOV_B EN ENO 7 IN OUT QB0
MOV_B EN ENO OUT
MOV_B EN ENO 3 IN OUT QB0
+18
MOV_B EN ENO OUT QB0
Network 12 C10 +20
MOV_B EN ENO 1 IN OUT QB0
字(整数INT)比较指令(取)
第一种 字比较触点“取”
字比较触点“取”
字(整数INT)比较指令(与)
第二种
字比较触点“与”
字比较触点“与”
字(整数INT)比较指令(或)
第三种 字比较触点“或”
字比较触点“或”
字(整数INT)比较指令(例题2)
例题2:分析程序,画出指定元件的时序
字比较指令例题2图
第一种:实数比较触点“取”
实数比较触点“取”
第二种:实数比较触点“与”
实数比较触点“与”
第三种:实数比较触点“或”
实 数 比 较 触 点 “ 或 ”
传送指令
1. 字节、字、双字、 实数的传送 SIMATIC功能指令助记符中最后的B、W、DW(或D)和R分别表 示操作数为字节(Byte)、字(Word)、双字(Doudle Word)和实数 (Real). 传送指令将输入的数据(IN)传送到输出(OUT),传送过程不改 变源地址中数据的值。
输入 启动开关 I1.0
输出 六盏灯 Q0.0-Q0.5
Network 1 I1.0 SM0.5 CU I1.0 R C10 24 Network 2 C10 +0 1 Network 3 C10 +2 3 Network 4 C10 +4 7 IN IN IN PV
西门子S7-200PLC第6章 PLC模拟量采集及闭环控制系统
模拟执行部件之前,必须将标准化的实数值转换成一个16位的标定整
数值。
• 3. PID回路表
•
用PID运算的参数,每个PID控制回路都 有一个确定起始地址(TBL)的回路表。
PID回路表
• 4. PID回路指令
• PID运算通过PID回路指令来实现。
化处理后写入回路表首单元VD200 ; • 5)执行PID回路运算指令; • 6)对PID回路运算的输出结果单元VD208进行数据转换后送入模拟
量输出。
• 参看教材图6-9 PID回路表及定时0中断初始化子程序实例
• 本章小结: • 作业:
•
谢谢收看!!
该电流通过250 电阻将其转换为1~5V电压,作为A/D转换 器的模拟量输入信号,A/D转换器输出的数字量信号可以直接 输入给计算机进行处理。
• 2 计算机闭环控制系统
被控设备(对象)输出的物理量(即被控参数或称系统输出参 数),经传感器、变送器、 A/D转换后反馈到输入端,与期望 值(即给定值或称系统输入参数)进行比较,当二者产生偏差 时,对该偏差进行决策或PID运算处理,其处理后的信号经D/A 转换器转换为模拟量输出,控制执行器进行调节,从而使输出 参数按输入给定的条件或规律变化。由于系统是闭和的,输出 量的变化经变送器反馈到输入端与输入量进行比较,由于反馈 的输出量与输入量相位相反,所以也称闭环控制负反馈系统。
• (2) 回路输入转换及标准化数据
• 每个PID回路有两个输入量,给定值(SP)和过程变量(PV)。 在PID指令对这些物理量进行运算之前,必须对它们及其它输入量进 行标准化处理,即通过程序将它们转换成标准的浮点型表达形式。
• (3) 回路输出值转换成标定数据
•
PID回路输出的是0.0~1.0之间标准化的实数值,回路输出在驱动
第6章 S7-200 PLC功能指令 梅丽凤
当I0.1闭合时,将VD100中的 双字数据传送到双字单元VD200 中。
(3)实数传送指令MOVR 实数传送指令以32位实数双字作为数据传送单元。
练习:写出STL指令,描述网络所实现的功能。
当I0.1有效时,将常实数3.14传送到双字单元VD200中。
2 . 语句表达格式
语句表式一般也分为两个部分,第一部分为助记符,一般和功 能框中指令标题相同,也可能不同。第二部分为参加运算的数据 地址或数据,也有无数据的功能指令语句。如, MOVB IN,OUT
3.操作数 功能框及语句中用“IN”及“OUT”表示的即为操作数。 操作数又分为源操作数和目标操作数。 目标操作数是指令执行后将改变其内容的操作数。 从梯形图符号来说,功能框左边的操作数通常是源操作数, 功能框右边的操作数为目标操作数,如加指令梯形图符号中 “IN”为源操作数,“OUT”为目标操作数。
数据类型:输入输出均为字节(字或双字),N为 字节型数据。
移位指令说明:
(1)左移位指令:使能输入有效时,将输入IN的无符号数字节、 字或双字中的各位向左移N位(右端补0)后,将结果输出到OUT 所指定的存储单元中,最后一个移出位保存在“溢出”存储器位 SM1.1。 (2)右移位指令:使能输入有效时,将输入IN的无符号数字节、 字或双字中的各位向右移N位(左端补0)后,将结果输出到OUT 所指定的存储单元中,最后一个移出位保存在“溢出”存储器SM1.1。 (3)移位位数N与移位数据长度有关,如果N小于实际数据长度, 则执行N位移位,如N大于实际的数据长度,则执行移位的位数等 于实际数据长度的位数。 (4)如果移位操作使数据变为0,则零存储器位(SM1.0)自动置 位。 (5)移位次数N为字节型数据(1-255)。
S7-200 PLC功能指令
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。
第六章 S7-200PLC特殊功能指令
BLKMOV-DW
EN ENO IN N OUT
数据块传送指令把从输入 (IN)指定地址的N个连续 字节、字、双字的内容传送 到从输出(OUT)指定地址 开始的N个连续字节、字、 双字的存储单元中去。
VB20 VB21 VB22 VB23 VB24
数组1 30
31
32
33Βιβλιοθήκη 34VB100 VB101 VB102 VB103 VB104
LD I0.0 //T37产生周期为 AN T37 0.5s的移位脉冲 TON T37, +5
LD T37 //每来一个脉冲 RLB QB0, 1 彩灯循环左移1位
已知:I0.0接外部开关,Q0.0接指示灯,问下面的梯形图 实现什么功能?
(5)移位寄存器指令 移位寄存器指令可用来进行顺序控制、物流及数据流控制。
SM1.1 移位后 1 1010 1011 0011 0110 VW300
例题:用I0.0控制接在Q0.0~Q0.7上的8个彩灯循环移位,从左
到右以0.5s的速度依次点亮,保持任意时刻只有一个指示灯亮 ,到达最右端后,再从左到右依次点亮。 要求:使用循环移位指令。
LD SM0.1 //首次扫描时 MOVB 1, QB0 //置8位彩灯初态
I0.1
MOV-W
EN ENO
VVDW11000 IN OUT AC0
MSB
VW100
10
LSB
46
MSB AC0
LSB
10 46
MOVW VW100, AC0
若I0.1=1,则将VW100的数据传送到AC0
(2)数据块传送指令
BLKMOV-B
EN ENO IN N OUT
BLKMOV-W
第六章 S7-200PLC特殊功能指令
SWAP
EN IN ENO
VW50 SWAP D6C3
VW50 C3D6
第二节 数学运算指令
1、加法指令
ADD_I ADD_DI ADD_R
EN ENO IN1 IN2 OUT
EN ENO IN1 IN2 OUT
EN ENO IN1 IN2 OUT
加法指令可分为整数、双整数、 实数加法指令; 执行操作:IN1+IN2=OUT。
逻辑运算指令执行表
指令 ANDB ORB XORB
操作数
地址
单元长度
运算前
运算后
IN1
IN2(OUT) IN1
VB0
AC0 VB0
1
1 1
00110011
11110000 00110011
00110011
00110000 00110011
IN2(OUT)
IN1 IN2(OUT)
AC1
VB0 AC2
1
使能输入有效时,将整数型输入
数据IN转换成字节类型,并将结果 送到 OUT 输出。输入数据超出字 节范围(0~255)则产生溢出 。
(二)双字整数与整数的转换
使能输入有效时,将双整数型输
入数据IN转换成整数类型,并将结 果送到OUT输出。被转换的输入值 应是有效的双字整数。输入数据超 出整数范围则产生溢出。
LD T37 //每来一个脉冲 RLB QB0, 1 彩灯循环左移1位
已知:I0.0接外部开关,Q0.0接指示灯,问下面的梯形图 实现什么功能?
(5)移位寄存器指令 移位寄存器指令可用来进行顺序控制、物流及数据流控制。
I0.1 正跳变 I0.2
S_BIT指定移位寄存器的 最低位,N指定寄存器的 长度;正数表示正向移动 (低字节→高字节),N 为负数表示反向移动; N 为字节型数据类型,最大 长度为64位。EN端每个 上升沿采样。
PLC S7-200指令
算术运算指令
1.加法指令—对两个有符号数进行相加 操作
ADD-I
EN ENO IN1 IN2 OUT
ADD-DI
EN ENO IN1 IN2 OUT
ADD-R
EN ENO IN1 IN2 OUT
操作数
IN1 IN2
类型 BYTE INT DINT REAL
寻址范围 VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD和常数 VW,IW,QW,MW,SW,SMW,LW,AIW,T,C,AC,*VD,*AC,*LD和常数 VD,ID,QD,MD,SD,SMD,LD,HC,AC,*VD,*AC,*LD和常数 VD,ID,QD,MD,SD,SMD,LD,,AC,*VD,*AC,*LD和常数
I/O分配:
I0.0:停车 I0.1:启动 Q0.1:KM
FR KM
1L Q0.0 Q0.1 Q0.2 Q0.3 1M I0.0 I0.1 I0.2 I0.3
SB1 SB2
I/O分配决定PLC的端子接线图
I/O分配:
I0.0:停车 I0.1:启动 Q0.1:KM
PLC的端子接线方式又决定编 程语言
• ③ A(AND)指令:逻辑与 指令,用于动合触点的串联。
• ④ AN(AND NOT)指令: 逻辑与非指令,用于动断触点的 串联。
• ⑤ O(OR)指令:逻辑或指 令,用于动合触点的并联。
• ⑥ ON(OR NOT):逻辑或 非指令,用于动断触点的并联。
• ⑦ =(OUT)指令:用于线 圈输出。
LD I0.0
A
S7-200系列PLC的功能指令表
一般的逻辑控制系统用软继电器、定时器和计数器及基本指令就可以实现。
利用功能指令可以开发出更复杂的控制系统,以致构成网络控制系统。
这些功能指令实际上是厂商为满足各种客户的特殊需要而开发的通用子程序。
功能指令的丰富程度及其合用的方便程度是衡量PLC性能的一个重要指标。
S7-200的功能指令很丰富,大致包括这几方面:算术与逻辑运算、传送、移位与循环移位、程序流控制、数据表处理、PID指令、数据格式变换、高速处理、通信以及实时时钟等。
功能指令的助记符与汇编语言相似,略具计算机知识的人学习起来也不会有太大困难。
但S7-200系列PLC功能指令毕竟太多,一般读者不必准确记忆其详尽用法,需要时可可查阅产品手册。
表4-20 四则运算指令
表4-21 逻辑运算指令
表4-22 数据传送指令
表4-23 移位与循环移位指令
表4-24 交换和填充指令
表4-25 表操作指令
表4-26 数据转换指令
表4-27 特殊指令。
西门子S7-200 PLC指令简介及实例分析
精心整理数据处理、运算指令及应用本章要点✍数据传送、字节交换、字节立即读写、移位、转换指令的介绍、应用及实训 ✍算术运算、逻辑运算、递增/递减指令的介绍、应用及实训✍表的定义、填表指令、表取数指令、填充指令、表查找指令的介绍 5.1数据处理指令 5.1.1数据传送指令5-1所示。
使ENO=0即使能输出断开的错误条件是:SM4.3(运行时间),0006(间接寻址错误)。
【例5-1】将变量存储器VW10中内容送到VW100图2.字节、字、双字、实数数据块传送指令BLKMOV数据块传送指令将从输入地址IN 开始的N 个数据传送到输出地址OUT 开始的N 个单元中,N 的范围为1至255,N 的数据类型为:字节。
指令格式及功能如表5-2所示。
表5-2数据传送指令BLKMOV 指令格式使ENO=0的错误条件:0006(间接寻址错误)0091(操作数超出范围)。
【例5-2】程序举例:将变量存储器VB20开始的4个字节(VB20-VB23)中的数据,移至图VB100~ 表指令执行之后VW50中的字为:C3D62.字节立即读写指令字节立即读指令(MOV-BIR )读取实际输入端IN 给出的1个字节的数值,并将结果写入OUT 所指定的存储单元,但输入映像寄存器未更新。
字节立即写指令从输入IN 所指定的存储单元中读取1个字节的数值并写入(以字节为单位)实际输出OUT 端的物理输出点,同时刷新对应的输出映像寄存器。
指令格式及功能如表5-4所示。
表指令无法存取扩展模块。
5.1.3移位指令及应用举例移位指令分为左、右移位和循环左、右移位及寄存器移位指令三大类。
前两类移位指令按移位位。
0),0,零标STLIN和中的数所指如:OUTN右移与溢出标志SM1.1连接,SM1.1用来存放被移出的位。
指令格式见表5-6。
(1)循环左移位指令(ROL)使能输入有效时,将IN输入无符号数(字节、字或双字)循环左移N位后,将结果输出到OUT所指定的存储单元中,移出的最后一位的数值送溢出标志位SM1.1。
S7-200PLC的功能指令
M0.7的值 0
1 0 1 0 1 0
7
8 9
AA80
5500 AA00
1010101010000000
0101010100000000 1010101000000000
1
0 1
10
11 12 13 14
5400
A8 5000 A000 4000/5555
0101010000000000
1010100000000000 0101000000000000 1010000000000000 0100000000000000
双字存储元件编址
• 地址分配情况:以 VD100为例,由4个存储 单元组成VB100是高8位,VB103是低8位, VB101、VB102是中间位。 • 实数也是双字数据,只是带有小数,因此 编址与双字整数相同。
5、数据类型
• 整数:整数是没有小数的数据,分为有符 号整数和无符号整数。无符号整数的最高 位表示数据的最高位;有符号整数的最高 位是符号位,0表示整数1表示负数。 • 实数(浮点数float):实数是有符号带小数 的数据,数据长度为4个字节,在传送指令中 使用MOV_R指令,可以直接输入正负小数 (7位)
LD
C30
//装入计数器触点 //作为双字增的 //脉冲输入
增 减 指 令 的 应 用
INCD
VD100
//双字增指令 //
增/减量指令的应用
• 用增量指令实现单按 钮控制起保停控制。 • 每当I0.0通断一次, M0.0奇偶变化一次, 从而使得Q0.0状态随 之反转一次。
三、实数运算指令
• 实数运算指令一般用于模拟量的运算处理, 如PID控制等。常用的实数运算分为以下几 种: • 1、实数加减运算 • 2、实数乘除运算 • 3、函数运算
第六章S7-200PLC功能指令二
主讲:李宏伟
4:子程序及应用 5:中断程序及应用 6:高速计数器功能及应用 7:高速脉冲输出功能及应用
第四节 子程序及应用
一、子程序简介
子程序可以对程序 进行分块,使用子程序将 程序分成容易管理的小块,使程序结构简单清晰, 易于查错和维护。
子程序常用于需要多次反复执行相同任务的 地方,只需要写一次子程序,别的程序在需要的时 候调用它,而无需重写该程序。
四、子程序的调用(CALL指令)
主程序可以用子程序调用(CALL)指令来 调用一个子程序。子程序调用(CALL)指令把 程序控制权交给子程序(n)。子程序结束后, 必须返回主程序。
可以带参数或不带参数调用子程序。每个子 程序必须以无条件返回 (RET)指令作结束, STEP7-Micio/WIN编程软件为每个子程序自动加 入无条件返回(RET)指令。有条件子程序返回 (CRET)指令,在控制条件有效时,终止子程 序(n)。子程序执行完毕,控制程序回到主程序 中子程序调用(CALL)指令的下一条指令。
例2:设计一记录设备运行时间的子程序,符号名 为“运行时间”。设备运行时I0.0为ON,用I0.0的 常开触点调用子程序。
OB1
SBR0
第五节 中断程序及应用
一、中断程序简介
中断程序可以为PLC内部或外部的特殊事件 提供快速反应,在PLC控制系统中,对于不定期 产生的继续处理事件,常通过采用中断处理技术 来完成。
对于主程序与中断程序,局部变量表显示一组 已被预先定义为TEMP变量的行。要在表中增加行, 只需用右键单击表中的某一行,在弹出的菜单中执 行“插入”→“行”命令,在所选行的上部插入新 的行。执行菜单命令“插入”→“下一行” 在所 选行的下部插入新的行。
S7-200PLC的功能指令和运算指令
SMB76
状态字节,在PTO方式下,跟踪 脉冲串的输出状态
SMB67
SMB77
控制字节,控制PTO/PWM脉 冲输出的基本功能
PTO/PWM的周期值,字型, SMW68 SMW78 范围:2~65535,16位无符号
数
Q0.0的 Q0.1的 寄存器 寄存器
名称及功能描述
SMW70
SMW80
PWM的脉宽值,字型,范围0 ~65535,16位无符号数
● 1个 16位的脉宽值(SMW70、 SMW80)
● 1个 32位的脉冲数量(SMD72、 SMD82) 对于多段 PTO,还有
● 1个 8位的段字节(SMW166、
这些参数存放在系统指定的特殊标志寄存器中
表7-17 相关寄存器功能表
Q0.0的 Q0.1的 寄存器 寄存器
名称及功能描述
SMB66
S7-200PLC 的复杂功能指令
§7-12 高速脉冲输出指令
1. 高速脉冲输出的几个概念 1) 高速脉冲输出的形式
● 高速脉冲串输出 PTO :
( Pulse Train Output )
输出指定数量,占空比为50% 的方波脉冲串 。
● 宽度可调脉冲输出 PWM :
( Pulse Width Modulation )
●单段PTO:定义一个脉冲串,输出一个脉冲 串 (特性参数通过特殊寄存器分别定义) 。
●多段PTO:集中定义多个脉冲串,按顺序输 出多个脉冲串(特性参数通过包络表集中定义) 。
▲单段PTO 实现的方法
用指定的特殊标志寄存器定义脉冲串特性参 数(每次定义一个脉冲串)。一个脉冲串输出 完成后,产生中断。在中断服务程序中再为下 一个脉冲串更新参数,输出下一个脉冲串。
西门子S7200特殊指令
西门子S7-200PLC特殊指令(一)数字量输入和输出映象区1.输入映象寄存器(数字量输入映象区)(I)数字量输入映象区是S7-200CPU为输入端信号状态开辟的一个存储区。
输入映像寄存器的标识符为I,在每个扫描周期的开始,CPU对输入点进行采样,并将采样值存于输入映像寄存器中。
输入映像寄存器是PLC接收外部输入的开关量信号的窗口。
可以按位、字节、字、双字四种方式来存取。
(1)按“位”方式:从I0.0~I15.7,共有128点(2)按“字节”方式:从IB0~IB15,共有16个字节(3)按“字”方式:从IW0~IW14,共有8个字(4)按“双字”方式:从ID0~ID12,共有4个双字2.输出映像寄存器(Q)数字量输出映象区是S7-200CPU为输出端信号状态开辟的一个存储区。
输出映像寄存器的标识符为Q(从Q0.0~Q15.7,共有128点),在每个扫描周期的末尾,CPU将输出映像寄存器的数据传送给输出模块,再由后者驱动外部负载。
可以按位、字节、字、双字四种方式来存取。
(1)按“位”方式:从Q0.0~I15.7,共有128点(2)按“字节”方式:从QB0~QB15,共有16个字节(3)按“字”方式:从QW0~QW14,共有8个字(4)按“双字”方式:从QD0~QD12,共有4个双字说明:实际没有使用的输入端和输出端的映象区的存储单元可以作中间继电器用。
(二)模拟量输入映象区和输出映象区1.模拟量输入映象区(AI区)模拟量输入映象区是S7-200CPU为模拟量输入端信号开辟的一个存储区。
S7-200将测得的模拟量(如温度、压力)转换成1个字长(2个字节)的数字量,模拟量输入映像寄存器用标识符(AI)、数据长度(W)及字节的起始地址表示。
从AIW0~AIW30,共有16个字,总共允许有16路模拟量输入。
说明:模拟量输入值为只读数据。
2.模拟量输出映象区(AQ区)模拟量输出映象区是S7-200CPU为模拟量输出端信号开辟的一个存储区。
电气控制与PLC应用技术第六章 S7-200PLC的功能指令及使用(201709)
转换指令
(1) BCD码与整数的转换 无符号操作 BCD码转为整数(BCDI)指令,将输入 端(IN)指定的BCD码转换成整数,并将
BCD-I EN ENO
IN OUT
结果存放到输出端(OUT)指定的存储单 BCDI OUT 元中去。输入数据的范围是0到9999
(BCD码)。
整数转为BCD码(IBCD)指令,将输入端
I0.0
IN1与OUT 不是同一地 址单元
ADD_I EN ENO
AC1 IN1 AC0 IN2
OUT AC0
MUL
EN
ENO
AC1 IN1 OUT VD100
VW102 IN2
DIV EN ENO
VW202 IN1 VW120 IN2
OUT VD200
DIV_R
EN
ENO
VD300 IN1 VD130 IN2
1. 传送指令
数据传送指令 数据块传送指令 交换字节指令 传送字节立即读、写指令
1. 数据传送指令
MOV-B EN ENO
IN OUT
MOV-W EN ENO
IN OUT
MOV-DW EN ENO
IN OUT
MOV-R EN ENO
IN OUT
MOVB IN,OUT MOVW IN,OUT MOVDW IN,OUT MOVR IN,OUT
MUL EN ENO
IN1 OUT IN2
VD200
*I IN1, OUT
*D IN1, OUT
*R IN1, OUT
MUL IN1, OUT
操作数的数据类型: 有符号整数(INT) 有符号双整数(DITN) 实数(REAL)
操作数IN2与OUT
第6章 S7-200系列PLC的
END、STOP、WDR指令应用举例
☆ STOP与END指令通常在程序中用来处理突发应急事件,可以有 效避免实际生产中的重大损失。
6.3.4 跳转及标号指令
◆跳转指令(JMP)与标号(LBL)指 令可以在相同的代码段中(主程序、子 程序或中断程序)完成分支操作,将程 序流程跳转到标号(n)目的地。 ◆不能从主程序跳转至子程序或中断例 行程序中的标号,也不能从子程序或中 断例行程序跳转至该子程序或中断例行 程序之外的标号。 ◆可以在顺序控制SCR段中使用“跳转” 指令,但对应的“标号”指令必须位于 相同的SCR段内。
6.2.1 位逻辑指令
1.基本位操作指令
基本位操作指令操作数寻址范围:I,Q,M,SM,T,C,V, S,L等。指令助记符: LD(Load)、LDN(Load Not)、A(And)、 AN(And Not)、O(Or)、 ON(Or Not)、=(Out)。 【例题】位操作指令的程序应用,如图6-5所示。
3.间接寻址
● 间接寻址使用指针存取存储单元中的数据。可以用作指针的存储 器有变量存储器(V)、局部变量存储器(L)、累加器(A C)。 ● S7-200允许指针存取以下内存区:I、Q、V、M、S、T(仅限当前值) 和C(仅限当前值),但不能对独立的位(BIT)值或模拟量进行间接 寻址。 ● 用间接寻址方式存取数据需要作的工作有3种:建立指针、指针存 取数据和修改指针。 1)建立指针
【例题1】块操作指令程序应用,如图6-10所示。
6.2.2 逻辑堆栈指令
【例题2】栈操作指令应用程序,如图6-11所示。
想一想 练一练
将梯形图转换成语句表指令编程。
6.2.3 定时器指令
◆ S7-200 PLC 的 定 时器在程序中用于延 时 ◆有T0~T255共256 个定时器 ◆分为TON、TOF和 TONR 定 时 器 等 3 个 类型
第六章S7-200 PLC的功能指令及使用
1.四则运算指令--加法指令
②双整数加法指令 梯形图:
语句表:+D IN1, OUT 功能:当EN=1时,将两个双字长的有符号整数IN1和I N2相加,结果为双字长的有符号整数存入OUT 。
1.四则运算指令--加法指令
③实数加法指令 梯形图:
语句表:+R IN1, OUT 功能:当EN=1时,将两个32位实数IN1和IN2相加, 结果为32位实数存入OUT 。
数据由IN传送到OUT 。
2.数据块传送指令
①字节块传送指令 梯形图:
语句表:BMB IN, OUT, N 功能:当EN=1时,将从IN开始的N个字节型数据 传送到OUT开始的N个字节型存储单元 。
2.数据块传送指令
②字块传送指令 梯形图:
语句表:BMW IN, OUT, N 功能:当EN=1时,将从IN开始的N个字型数据传 送到OUT开始的N个字型存储单元 。
2.数学功能指令—平方根指令
梯形图:
语句表:SQRT IN, OUT 功能:当EN=1时,将双字长的实数IN开平方,结果 为32的实数存入OUT 。
2.数学功能指令—自然指数指令
梯形图:
语句表: EXP IN, OUT 功能:当EN=1时,将双字长的实数IN取e为底的指数, 结果为32的实数存入OUT 。
6.1.1 数据传送指令
1.单一数据传送指令 2.数据块传送指令 3.交换字节指令 4.字节传送立即读、写指令
1.单一数据传送指令
①字节传送指令 梯形图:
语句表:MOVB IN, OUT 功能:当EN=1时,将一个无符号单字节数据
由IN传送到OUT 。
1.单一数据传送指令
②字传送指令 梯形图:
1.四则运算指令—减1指令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MSB
LSB
I0.1
10
MSB
46
LSB
MOV-W EN ENO
VW100 VD10
IN
OUT AC0
AC0
10
46
MOVW VW100, AC0
若I0.1=1,则将VW100的数据传送到AC0
(2)数据块传送指令
BLKMOV-B BLKMOV-W BLKMOV-DW
EN
IN N
ENO OUT
EN IN N
例:移位和循环指令编程
循环前 AC1 1010 0101 0001 1001 SM1.1
SM1.1 移位前 1101 0101 1001 1011 VW300
循环后 AC1 1101 0010 1000 1100
SM1.1 1
SM1.1 移位后 1 1010 1011 0011 0110 VW300
VB104 ?
(3)字节立即传送指令
I2.1 Q1.1
I
I2.3 Q1.2
I
I
立即指令读取输入点时,立即读取物理 输入点的值,不刷新相应映像寄存器。 立即指令访问输出点时,直接输出到物 理输出点,刷新相应输出映像寄存器。
MOV-BIR EN ENO
IN
OUT
MOV-BIW EN ENO IN OUT
3.乘法指令
MUL-I MUL-DI
EN ENO IN1 IN2 OUT
MUL-R
EN ENO IN1 IN2 OUT
MUL
EN ENO IN1 IN2 OUT
EN ENO IN1 IN2 OUT
乘法指令可分为整数、双整数、实数乘法 指令和整数完全乘法指令。 完整乘法指令:把输入端(IN1、IN2)指定 的两个16bit整数相乘产生一个32bit乘积, 送到输出端(OUT)指定存储单元。 执行操作:IN1*IN2=OUT。 完全整除法指令:把输入端(IN)指定 的两个16位整数相除,产生一个32位结 果,并送到输出端(OUT)指定存储单 元中去。高16位是余数,低16位是商。 执行操作:IN1/IN2=OUT
说明:加1/减1指令用于字节、字、 双字操作。 执行操作:IN±1→OUT. 影响特殊存储器位:SM1.0(零)、 SM1.1(溢出)。
三、逻辑运算指令
WAND_B
EN IN1 IN2 ANDB IN1, OUT ENO OUT
WOR_B
EN IN1 IN2 ORB IN1, OUT ENO OUT
EN IN N
ENO OUT
RLD OUT, N RLW OUT, N RLB OUT, N 说明: (1)把输入端(IN)指定的数据循环右移/左移N位,结果 存入OUT单元; (2)移位时,SM1.1始终存放最后一次被移出的位。 (3)移位次数与移位数据的长度有关,如果移位次数设定值 大于移位数据的位数,则执行循环移位之前,系统先对设定 值取以数据长度为底的模,用小于数据长度的结果作为实际 循环移位的次数。 如字左移时,若移位次数设定为36,则先对36取以16为底 的模,得到小于16的结果4,故指令实际循环移位4次。
第六章 S7-200 PLC特殊功能指令
第一节 传送功能指令
一、传送指令 (1)数据传送指令
MOV_B MOV_W
EN IN
ENO OUT
EN IN
ENO OUT
传送指令把输入(IN)中的数 据传送到输出(OUT)端。
MOV_DW
MOV_R
EN IN
ENO OUT
EN IN
ENO OUT
例:
VW100
SHL_W
EN IN N SLW OUT, N ENO OUT
SHL_DW
EN IN N SLD OUT, N ENO OUT
说明: (1)把输入端(IN)指定的数据右移/左移N位,结果存入 OUT单元; (2)移位时,移出位进入SM1.1,另一端自动补0。SM1.1 始终存放最后一次被移出的位; (3)移位次数最大分别为8、16、32。 (4)如果移位结果是0,零存储器位(SM1.0)置位。
SIN
EN IN ENO OUT
EN IN
COS
ENO OUT
TAN
EN IN
ENO OUT
SIN IN OUT
COS IN OUT
TAN IN OUT
程序实例:(求65°的正切值)
二、加1和减1操作指令
INC_B
EN IN ENO OUT
IN
DEC_B
EN ENO OUT
INCB OUT
DECB OUT
1 1
00001111
00110011 10011001
00111111
00110011 10101010
INVB
IN(OUT)
VB1
1
11001100
00110011
逻辑运算指令举例
第三节 转换功能指令
(一)字节与整数的转换
使能输入有效时,将字节型输入数
据 IN 转换成整数类型,并将结果送 到 OUT 输出。字节型是无符号的, 所以没有符号扩展。
执行操作:LN(IN)=OUT。
IN
LN IN OUT
3、指数指令:EXP
把一个双字长(32位)的实数IN取以e为底的
EXP
EN IN ENO OUT
指数,得到32位的实数结果OUT。 4、正弦、余弦、正切指令
EXP IN OUT
即正弦、余弦、正切指令。将把一个双字长( 32 位)的实数
弧度值 IN 分别取正弦、余弦、正切,各得到 32 位的实数结果 OUT。
移位前 VB10 移位一次后 7 VB10 溢出位 移位二次后 7 VB10
S_BIT 1 0 1 0 溢出位 0 1 0 0 0 1 1 0 1
I0.2 0 1 0 I0.2
SM1.1←←
三、字节交换指令 交换字节指令,把输入端(IN)指定字 的高字节内容与低字节内容相交换,交 换结果仍存在输入端(IN)指定的地址 中。无符号整数型(WORD)。
使能输入有效时,将整数型输入数
据 IN 转换成双整数类型(符号进行 扩展),并将结果送到OUT输出。
(三)双字整数与实数的转换 双字整数转为实数(DTR)指令:将 输入端(IN)指定的32位有符号整数 转换成32位实数。 ROUND取整指令,转换时实数的小 数部分四舍五入。 TRUNC取整指令,实数舍去小数部 分后,转换成32位有符号整数。取整 指令被转换的输入值应是有效的实数, 如果实数值太大,使输出无法表示, 那么溢出位(SM1.1)被置位。
逻辑运算指令执行表
指令 ANDB ORB XORB
操作数
地址
单元长度
运算前
运算后
IN1
IN2(OUT) IN1
VB0
AC0 VB0
1
1 1
00110011
11110000 00110011
00110011
00110000 00110011
IN2(OUT)
IN1 IN2(OUT)
AC1
VB0 AC2
1ห้องสมุดไป่ตู้
ENO
OUT
EN IN N
ENO
OUT
数据块传送指令把从输入 (IN)指定地址的N个连续 字节、字、双字的内容传送 到从输出(OUT)指定地址 开始的N个连续字节、字、 双字的存储单元中去。
VB20 VB21 31 VB22 32 VB23 33 VB24 34
数组1
30
VB100 数组2 30
VB101 VB102 VB103 31 32 33
4.除法指令
DIV-I DIV-DI
EN ENO IN1 IN2 OUT
DIV-R
EN ENO IN1 IN2 OUT
DIV
EN ENO IN1 IN2 OUT
EN ENO IN1 IN2 OUT
影响特殊存储器位:SM1.0(零)、SM1.1(溢出)、 SM1.2(负)、SM1.3(除数为0)。
完全乘法与完全除法指令
WXOR_B
EN IN1 IN2 XORB IN1, OUT ENO OUT
INV_B
EN IN ENO OUT
INVB OUT
说明:(1)逻辑运算指令的操作数均为无符号操作数。 (2)按操作数长度可分为字节、字和双字逻辑运算,IN1、 IN2、OUT操作数的数据类型为:B、W、DW。 (3)逻辑运算指令影响特殊标志位存储器位:SM1.0(零)。
2、减法指令
SUB-I SUB-DI SUB-R
EN ENO IN1 IN2 OUT
EN ENO IN1 IN2 OUT
EN ENO IN1 IN2 OUT
减法指令可分为整数、双整数、 实数减法指令;
执行操作:IN1-IN2=OUT
加法/减法指令影响的特殊存储器位:SM1.0(零);
SM1.1(溢出);SM1.2(负)。
例:将英寸转换为厘米。 1英寸=2.54厘米 步骤:将C10中的整数值英 寸→双整数英寸→实数英寸 →实数厘米→整数厘米
(四)BCD码与整数的转换
(1)BCD码转为整数(BCDI)指令, BCD_I I_BCD 将输入端(IN)指定的BCD码转换成 EN ENO EN ENO 整数,并将结果存放到输出端(OUT) OUT OUT IN IN 指定的存储单元中去。输入数据的范 围是0~9999(BCD码)。 (2)整数转为BCD码(IBCD)指令,将输入端(IN)指定的 整数转换成BCD码,并将结果存放到输出端(OUT)指定的存 储单元中去。输入数据的范围是0~9999。 (3)指令影响的特殊存储器位:SM1.6(非法BCD)
1、平方根指令:SQRT