程序控制类指令PPT课件
三菱PLC功能指令ppt课件

4.5.1概述
定义 可编程控制器的基本指令——基于继电器、定时器、计数 器类软元件,主要用于逻辑处理的指令。 功能指令(应用程序)——用于数据的传送、运算、变换 及程序控制等功能。
3
概述
功能指令 的特点
➢ 功能强大 ➢ 指令处理的数据多 ➢ 数据在存储单元中流转的过程复杂
2、子程序调用指令及应用
一、子程序调用指令的使用要素及梯形图表示
子程序调用指令要素
指令名称 子程序调用 子程序返回
助记符
CALL CALL(
P) SRET
指令代 码位数 FNC01
(16)
FNC02
操作数 [D·]
指针 P0~P62 嵌套 5级
无
程序步
3步(指令标 号)1步
1步
11
子程序调用指令及应用
1步
18
中断指令
中断是计算机所特有的一种工作方式。 中断子程序是为某些特定的控制功能而设定的。
特定的控制功能的共同特点:要求响应时间小于机器 的扫描周期。
三类中断:
➢ 输入中断 ➢ 定时器中断 ➢ 计数器中断
19
指针I
输入中断用指针。输入中断用指针I00□~I50□,共6点。 6个输入中断仅接收对应于输入口 X000~X005的信号触发。 这些输入口无论是硬件设置还是软件管理上都与一般的输 入口不同,可以处理比扫描周期短的输入中断信号。上升沿 或下降沿指对输入信号类别的选择。
图8-11 外部输入中断子程序示例
22
例:
说明:图中一开始为允许中断,当X1从OFF至ON且保持ON, 程序跳到指针I101处执行中断,即执行第13行,将K100 送到D1,然后返回主程序,对定时器T0计时,当计时达 到D12当前值K100时,T0触点闭合,Y0得电。
4.5 程序控制类指令

•根据两个无符号数比较结果转移
•JBE(JNA): ZF∨CF=1 则转移 •JNBE(JA): (ZF =0)∧(CF=0 )则转移
•比较两个带符号数,并根据比较结果转移
•JL(JNGE): SF OF=1 且ZF=0则转移
•JNL(JGE): SF OF=0或ZF=1则转移 •JLE(JNG): SF OF=1或ZF=1则转移 •JNLE(JG): SF OF=0 且ZF=0则转移
I P LOP2的段内偏移地址
CS LOP2的段地址
段间间接转移
JMP DWORD PTR [BX] I P [BX] CS [BX+2]
条件转移指令
形式: JX 短目标地址 X :1~3个英文字母,表示条件。 跳转范围: -128~+127字节(只有短转移,是相 对转移 ) 功能: 当指令中给出的条件满足时转移,可分 为依据单个标志位的条件转移指令和依据若干 个标志位组合的条件转移指令。
(1)、 CALL( Call a procedure)调用
段内直接调用
CALL addr(16位);一般用标号表示如:
CALL subp1; subp1为具有near属性的标号
段间直接调用 CALL addr(32位);一般用标号表示,如:
CALL subp; subp为具有far属性的标号
间接调用:
•测试CX的值为零转移 :JCXZ
例1
、比较1000H、1001单元的两个数,将大数
存2000H单元中。
MOV BX,1000H ;第一数送AL MOV AL, [BX] INC BX ;指向第二数 CMP AL,[BX] ;两数比较 JA LOP1 ;大于转 MOV AL,[BX] ;大数AL送 LOP1:MOV [2000H],AL HLT
第10讲-可编程序控制器的指令系统2

0状态,T37的常开触点断开,Q0.0变为OFF,同时使T38的IN输入端
变为0状态,其常闭触点接通,T37又开始定时;
以后Q0.0的线圈将这样周期性地“通电”和“断电”,直到I0.0变
为OFF,Q0.0线圈“通电” 时间等于T38的设定值,“断电”时间等
于T37的设定值。
12
灭2S 亮3S
电气控制及PLC技术 西门子S7-200
STL
CTU Cxxx,PV CTD Cxxx,PV CTUD Cxxx,PV
计数器的指令格式
电气控制及PLC技术 西门子S7-200
LAD
指令使用说明
(1)梯形图指令符号中:CU为加 计数脉冲输入端;CD为减计数脉冲 输入端;R为加计数复位端;LD为 减计数复位端;PV为预置值
(2)Cxxx 为计数器的编号,范围 为:C0~C255
25
定时器的扩展
电气控制及PLC技术 西门子S7-200
60秒即1分钟定时 60个1分钟即1小时
26
电气控制及PLC技术 西门子S7-200
补充2:计数器指令应用举例*
• 计数器指令扩展( 200000次)
• S7-200系列PLC计数器最大的计数范围是32767,若须更大
的计数范围,则须进行扩展。如图6-40所示计数器扩展电路。
设定值(60S)。 • I0.0为OFF时,100ms定时器T37和计数器C4处于复位状态,它们不能
工作。 • I0.0为ON时,其常开触点接通,T37开始定时,60s后T37定时时间到,
其当前值等于设定值,它的常闭触点断开,使它自己复位,复位后T37 的当前值变为0,同时它的常闭触点接通,使它自己的线圈重新“通电” 又开始定时,T37将这样周而复始地工作,直到I0.0变为OFF。 • T37产生的脉冲送给C4计数器,记满60个数(即1h)后,C4当前值等 于设定值60,它的常开触点闭合。设T37和C4的设定值分别为KT和KC, 对于100ms定时器总的定时时间为:T=0.1KTKC(s)。
程序控制指令

中断 溢出时中断
INT 中断类型 INTO
中断返回
IRET 5
1.转移指令
➢转移指令的实质: 改变IP(或者CS和IP)的内容。
➢对标志位flags的影响: 所有转移指令不会影响标志位flags。
➢分类: 分为无条件转移和条件转移两种。
2020/2/17
6
(1) 无条件转移指令 - JMP
本指令无条件转移到指定的目标地址, 以执行 从该地址开始的程序段。根据设置CS、IP的方法 ,JMP指令可实现短\近\远距离跳转, 指令分成4 种情况。
由于是段内转移,故转移后CS内容保持不变
2020/2/17
8
无条件段内转移
• 直接转移: JMP Lable
近地址标号
┇
• 转移目标地址:
位移量
JMP Lable
代
码
┇
段
段基地址CS不变;
CS : IP=Label
偏移地址IP=当前IP+位移量(16位)
┇
2020/2/17
9
②段内间接转移
转移的目标地址由寄存器或存储单元的 内容给出。
例中的DWORD PTR表示转移地址是一个 双字。
2020/2/17
15
无条件段间转移
• 间接转移: JMP DWORD PTR[BX]
2020/2/17
CS : IP
[BX]
IP CS
┇
JMP
┇
指令码
┇
XXH XXH XXH XXH
┇
代 码 段 1
代 码 段 2
数 据 段
16
JMP DWORD PTR [SI]的机器码
2020/2/17
3.3.5 程序控制类指令

1. 无条件转移指令(1)jmp段内直接短程转移Jmp short标号jmp short loop1next:下一条指令………loop1:……….(loop1也可能在跳转指令前)跳转距离范围是-128-127(2) 段内直接近程转移Jmp near ptr标号跳转距离范围是-32768-32767(3)段内直接转移Jmp bx ; IP<—bxJmp word ptr [1000h] ;IP<—word ptr[1000h](4)段间直接转移Jmp far ptr标号(5)段间间接转移Jmp dword ptr [1000h] ;IP<—word ptr[1000h],CS<—word ptr[1002h] 2. 过程调用指令call(1)段内直接调用Call near ptr过程名<=> Call过程名可以暂把过程名理解为标号先把下条指令的有效地址入栈(为了能够以后恢复),然后跳转到新地址Push ip; ip为该跳转指令的下一条指令的有效地址Ip<—ip+loop loop表示跳转距离(2)段内间接调用Call word ptr [1000h]被调用过程的有效地址保存在内存ds:[1000h]处Push ipIp<—word ptr [1000h](3)段间直接调用Call far ptr过程名Push cs ;先入csPush ip ;再入ipIp<—过程入口地址的偏移量Cs<—过程入口地址的段基址(4)段间间接调用Call dword ptr [1000h]Push cs ;先入csPush ip ;再入ipIp<—word ptr [1000h]Cs<—word ptr [1002h]3. 过程返回指令ret,类似C语言中的return;段内返回, 格式:ret作用相当于pop ip,回到调用过程时保存的地址继续执行下条指令段间返回,格式:ret相当于pop ipPop cs回到调用过程时保存的地址继续执行下条指令带立即数返回,格式:ret n除返回原来的ip和cs外,还做sp=sp+n适用于过程带参数的情况,计算机调用函数或过程时,先把参数的值入栈,再把返回地址(下条指令地址)入栈。
S7-1200第08讲:移动操作,转换,程序控制,字逻辑运算,移位与循环移位指令

移动指令:
VariantGet:读取 SRC 参数所指向的变量,并将其写入到 DST参数的变 量中。
VariantPut:将 SRC 参数所引用的变量写入到 DST参数所指向的变量中。
CountOfElements:计算 IN参数指向的数组中所含数组元素的数目。
GET_ERR_ID:指示发生程序块执行错误,并报告错误的 ID(标识符代 码)。
RUNTIME:测量整个程序、各个块或命令序列的运行时间。
字逻辑运算指令:
AND、OR 和 XOR 逻辑运算指令: 所选数据类型将 IN1、IN2 和 OUT 设置为
相同的数据类型。 IN1 和 IN2 的相应位值相互组合,在参数
NORM_X:标准化通过参数 MIN 和 MAX指定的值范围内的参数 VALUE: OUT = (VALUE - MIN) / (MAX - MIN),其中 (0.0 <= OUT <= 1.0)
程序控制指令:
JMP:RLO(逻辑运算结果)= 1 时跳 转:如果有能流通过 JMP 线圈 (LAD), 则程序将从指定标签后的第一条指令 继续执行。
FLOOR:将实数(Real 或LReal)转换为小于或等于所选实数的最大整数 (IEEE“向负无穷取整”)。
TRUNC:TRUNC 用于将实数转换为整数。实数的小数部分被截成零(IEEE - 取整为零)。
SCALE_X:按参数 MIN 和 MAX所指定的数据类型和值范围对标准化的实 参数 VALUE(其中,0.0 <= VALUE <=1.0)进行标定: OUT = VALUE (MAX - MIN) + MIN
控制转移类指令ppt课件(全)
(4)CJNE @Ri,#data,rel 该指令功能:若(( Ri ))≥ data,(CY)=0; 若(( Ri ))<data ,CY=1; 若(( Ri ))≠ data,则PC←(PC)+rel,转移; 若(( Ri ))=data,则程序顺序执行.
例:如果(A) ≠ 00H,转移到CX1;如果(R1) ≠ 10H, 转移到CX2;如果(A) ≠(60H),转移到CX3。程序段 如下:
(2)指令长短不一样。LJMP是3字节指令;AJMP、 SJMP是2字节指令;JMP是1字节指令。
(3)指令机器码构成不同。AJMP、LJMP、JMP后跟 的是绝对地址,而SJMP后跟的是相对地址。
(4)地址特点不同。LJMP、AJMP、SJMP的转移目标 地址是固定的,程序执行过程中不变;JMP的转移目 标地址随程序的执行是动态变化的。
1. 长跳转指令 LJMP (3字节) LJMP addr16 ; PC addr16
•执行该指令时, 将目标语句的16位地址addr16装入 PC, 程序无条件转向指定的目标语句执行。 •由于长跳转指令提供的是16位地址,对应64KB的程 序存储器地址空间,所以可跳转到64KB程序存储器 地址空间的任何地方。 •实际应用中长跳转汇编指令写作“LJMP 目标语句 标号”的形式,如“LJMP LOOP”。
• 指令对A、DPTR和标志位均无影响。
注意:以上四条指令结果均不影响程序状态 字寄存器 PSW 。
5.LJMP、AJMP、SJMP、JMP四条无条件转移指令的 区别:
(1)转移范围不一样。LJMP、JMP转移范围是64KB; AJMP转移范围是与当前PC值同一个2KB区间;SJMP 转移范围是相对当前PC值的-128B~+127B范围内。
PLC功能指令(课件PPT)
6
⑵ 位组合数据 因为4位BCD码表示1位十进制数据,所以在
FX系列PLC中,用相邻的4个位元件作为一个组合, 表示一个十进制数,表达形式为KnX、KnY、KnM、 KnS等。n—指4位BCD码的个数。例如:
K1X0表示由X3~X0这 4位输入继电器的组合; K3Y0表示由Y13~Y10、Y7~Y0这12位输出继 电器的组合; K4M10表示由M25~M10这16位辅助继电器的组 合。
特殊用
D8000~ D8255
256点
FX2N FX2NC
D0~
D199 128点①
D200~
D511 312点②
D512~
D7999 7488点③
根据参数设定, 可以将D1000以 上作为文件寄存 器使用
D8000~
D8255 256点
① 非停电保持领域,通过设定参数可变更停电保持领域; ② 停电保持领域,通过设定参数可变更非停电保持领域; ③ 无法通过设定参数变更停电保持的特性。
14
15
5. 比较指令 比较指令CMP 是将源操作数 [S1] 和 [S2] 的数据进行比较, 然后将目标操作数 [D]进行相应的操作。如图4-10所示,X0 =1时,将C20的当前值与常数K100进行比较。若当前值小 于K100,[D]指定的M0自动置1(即Y0接通);若当前值等 于K100,M1自动置1(即Y1接通);若当前值大于K100, M2自动置1(即Y2接通)。在X0 断开,即不执行CMP 指令 时,M0~M2 保持X0断开前的状态。因此若要清除比较结果 需要用RST或ZRST指令。 【说明】数据比较是进行代数值大小比较(即带符号比较)。 所有的源数据均按二进制处理。
16
【应用举例】有一高性能的密码锁,由两组密码数据锁 定。开锁时只有输入两组正确的密码,才能打开锁,锁打开 后,经过5s再重新锁定。
课件 PPT 可编程序控制器及其应用 三菱 第三版课题三 顺序控制设计法及顺序控制指令应用
课题三 顺序控制设计法及顺序控制指令应用
(2)第i程序步用逻辑代数书写的过程为每一步Mi的产 生都是由前一步压动行程开关或按下按钮(转换条件)Xi 产生,则
Mi XiMi1 产生后应该有一段时间区域保持不变,故应该有自保 (自锁),则:
Mi XiMi1 Mi 每一步的消失都是随后一步的出现而消失:
双出线接近开关的接线 a)无感应物 b)有感应物
课题三 顺序控制设计法及顺序控制指令应用
任务2 液体自动混合装置控制系统设计与装调
1.掌握状态继电器的功能及步进顺控指令的功能及应 用,熟悉顺序功能图及其编程方法。
2.掌握单序列结构顺序功能图的画法,并能通过顺序 功能图进行步进顺序控制系统的设计。
课题三 顺序控制设计法及顺序控制指令应用
(3)如需小车停下,只要按下停止按钮SB1即可实现。
课题三 顺序控制设计法及顺序控制指令应用
一、顺序控制设计法
顺序控制设计法是用输入信号控制代表各步的编程元 件(如辅助继电器M 和状态继电器S),再用它们控制输出信 号。步是根据输出信号的状态来划分的。顺序控制设计法 是一种先进的设计方法,很容易被初学者接受,程序的调 试、修改和阅读也很容易,并且大大缩短了设计周期,提 高了设计效率。
课题三 顺序控制设计法及顺序控制指令应用
3)当液位上升到SL1时,关闭电磁阀YV2,搅拌电动机 开始搅拌。
4)搅拌电动机工作20s后停止搅拌,混合液阀门打开, 放出混合液体。
5)当液位下降到SL3时,开始计时,且装置继续放液, 将容器放空,计时满20s后,混合液阀门关闭,自动开始下 一个周期。
(3)停止操作 当按下停止按钮SB2后,液体混合装置在完成当前的工 作循环后才停止操作。
在实际生产中往往会遇到设备工作台或送料小车的多地自动 往返循环控制的情况,如图所示为送料小车三地自动往返循环控 制工作画面。
C程序设计教程课件PPT课件
哈希查找
通过哈希函数将元素的关键字转 换为数组的索引,然后在对应位 置进行查找。时间复杂度为O(1)。
THANKS
感谢观看
选择排序
每次从未排序序列中选出最小 (或最大)元素,放到已排序
序列的末尾。时间复杂度为 O(n^2)。
插入排序
将未排序元素插入到已排序序 列中的适当位置,以达到排序 的目的。时间复杂度为O(n^2)。
常见排序算法实现原理及性能比较
快速排序
采用分治策略,通过一趟排序将待排序序列分割成独立的两部分,其中一部分的所有元素都比另一部分的 所有元素小,然后再对这两部分继续进行排序。时间复杂度为O(nlogn)。
示例1
使用fprintf()和fscanf()函数实现 文件的读写操作。
示例2
使用fgetc()和fputc()函数实现文 件的字符读写操作。
示例3
使用fgets()和fputs()函数实现文 件的字符串读写操作。
示例4
使用fread()和fwrite()函数实现 文件的数据块读写操作。
数据存储格式选择(如:文本、二进制)
01
文本格式
02
二进制格式
03
选择依据
将数据以字符形式存储,便于查看和编 辑,但占用空间较大。
将数据以二进制形式存储,占用空间较 小,读写效率高,但不便于直接查看和 编辑。
根据实际需求选择数据存储格式,如需 要频繁读写大量数据且对存储空间有要 求时,可以选择二进制格式;如需要方 便查看和编辑数据时,可以选择文本格 式。
算法概念及评价标准
算法概念
为解决特定问题而规定的一系列操作步骤,具有有穷性、确定性、可行性、输 入和输出五个基本特性。
评价标准
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
转移指令 循环控制 子程序调用 中断控制
3.9 转移指令
通过修改指令的偏移地址或段地址及偏移地 址实现程序的转移
无条件转移指令 无条件转移到目标地址,执行新的指令
有条件转移指令 在具备一定条件的情况下转移到目标地址
无条件转移指令
格式:
JMP OPRD
目标地址
与JMP在 同一代码段
与JMP不在 同一代码段
2)用于无符号数的条件转移指令 ① JA/JNBE ;高于/不低于等于转移,
CF∨ZF=0 ② JNA/JBE ;不高于/低于等于转移,
CF∨ZF=1 ③ JB/JNAE ;低于/不高于等于转移,CF=
1 ④ JNB/JAE ;不低于/高于等于转移,CF=
3)用于带符号数的条件转移指令 ① JG/JNLE 大于/不小于等于转移,(SF ∨OF)∨ ZF=
STRING DB ‘Personal Computer’ …
MOV BX,OFFSET STRING DEC BX MOV CX,17 NEXT: INC BX CMP [BX],BYTE PTR 20H LOOPNE NEXT
…
方法二: MOV DI,OFFSET STRING MOV AL,20H MOV CX,17
段内直接寻址
IP
JMP FAR Label
远地址标号
┇
JMP
代
XXH
码
XXH
段
XXH
1
XXH
Label与
CS
┇
代
JMP之间
Label
码
的位移量
段
┇
2
无条件段间转移
段内间接寻址 JMP DWORD PTR[BX]
[BX] IP
CS
代
┇
码
JMP
段 1
┇
代
指令码
码
段
┇
2
XXH
XXH
数
XXH
据
XXH
段
执行原程序
断点恢复
段内调用
子过程与原调用程序在同一代码 段,在调用之前只需保护断点的
入口 地址
偏移地址
格式: CALL NEAR PROC
断点
近过程名
段内调用例
CALL TIMRE
直接调用
CALL WORD PTR[SI]
间接调用
段间调用
子过程与原调用程序不在同一代码段, 在调用之前需保护断点的段基地址和偏 移地址。先将断点的CS压栈,再压入IP
0 ② JGE/JNL 大于等于/不小于转移,(SF ∨OF)=0 ③ JL/JNGE 小于/不大于等于转移,(SF ∨OF)=1 ④ JLE/JNG 小于等于/不大于转移,(SF ∨OF)∨ ZF=
1
转移指令例
统计内存数据段中以TABLE为首地 址的100个8位符号数中正数、负数 和零元数的个数。
转移指令例(流程图)
将存放各元素个 数的单元清零
取首地址 设串长度
取一个字节数
为负?
N
Y
为零?
Y
N 正数个数加1
负数个数加1
零元素加1
3.10 循环控制指令
控制程序在以当前IP为中心的-128~+127 范围内循环执行
循环次数由CX寄存器指定
LOOP LOOPZ LOOPNZ
无条件循环指令
从堆栈中弹出断点地址,返回原程序 格式:
RET RET指令一般位于子程序的最后
3.12中断指令
中断与过程调用:
中断是随机事件或异常事件引起,调用则是事 先已在程序中安排好
响应中断请求不仅要保护断点地址,还要保护 PSW内容
调用指令在指令中直接给出子程序入口地址, 中断指令只给出中断向量码,入口地址则在向 量码指向的内存单元中
格式: CALL FAR PROC
段间调用例
CALL FAR TIMRE CALL DWORD PTR[SI]
段间调用例
格式:
CALL FAR PROC
格式例:
CALL FAR TIMRE
SI
CALL DWORD PTR[SI]
CS
IP
CALL
代
码
┇
段
XXH
XXH
数
XXH
据
XXH
段
返回指令
1. 中断指令
格式: INT n
说明: nх4
中断类型码 n=0 〜 255
n х4
入口的偏移地址 入口的段地址
存放中断服务子程序入口 地址的单元的偏移地址
该单元在数据段,段地址=DS
XXH
XXH
数
XXH
据
XXH
段
┇
代
┇
码 段
中断指令的执行过程
将PSW压入堆栈; 将INT指令的下一条指令的CS、IP压栈; 由n× 4得到存放中断向量的地址; 将中断向量(中断服务程序入口地址)
原则上可实现在整个内存空间的转移
无条件转移指令 段内转移
转移的目标地址在当前代码段内
指令中直接给 出目标地址
由指令中的寄存器 或存储器操作数指 出目标地址
段内直接寻址
段内间接寻址
无条件段内转移
段内直接寻址 JMP Label
近地址标号
位移量
┇
JMP
代
码
┇
段
Label
下一条要执行指令的
┇
偏移地址=当前IP+位移量
格式: LOOP LABEL
循环条件: CX ≠ 0
操作: CX JNZ 符号地址
条件循环指令
格式:
LOOPZ LABEL LOOPE LABEL 循环条件: CX ≠ 0 ZF=1
格式:
LOOPNZ LABEL LOOPNE LABEL 循环条件: CX ≠ 0 ZF=0
例:在一个由17个字符组成的字符串STRING中,现 在查找该字符串中是否包含空格字符(其ASCII码为 20H),若未找到或尚未查完,则继续查找,直到找 到第一个空格字符或查完了才退出循环。
无条件段内转移 段内间接寻址
JMP BX JMP WORD PTR[BX]
IP
BX=1200
┇
JMP
代
┇
码 段
指令码
┇
XXH XXH
数 据 段
┇
无条件转移指令——段间转移
转移的目标地址不在当前代码段内
指令中直接给 出目标地址
段间直接寻址
由指令中的32位存 储器操作数指出目 标地址
段间间接寻址
无条件段间转移
REPNE SACSB
JZ NEXT
JMP NFOUND NEXT: … NFOUND:…
3.11 子程序调用返回指令
段内调用 段间调用
段内直接调用 段内间接调用 段间直接调用 段间间接调用
调用指令与转移指令的比较
用于调用一个子过程 调用前须保护断点地址 子过程执行结束后要返回原调用处继续
┇
条件转移指令
在满足一定条件下,程序转移到目标地 址继续执行
条件转移指令均为段内短转移,即转移 范围为: -128~+127
条件转移指令的应用
1)简单条件(直接标志)转移指令(共10条) 根据CF、ZF、SF、OF、PF分别为1或0,共有10种状态,
设置了10种转移指令: JE/JZ JS JO JC JP ;标志为1转移 JNE/JNZ JNS JNO JNC JNP ;标志为0转