基本数据处理指令(1)
PLC功能指令—数据处理指令

2. 数据传送指令应用举例
【例题5.1】 设有8盏指示灯,控制要求是:当I0.0接通时,全部灯亮;当I0.1 接通时,奇数灯亮;当I0.2接通时,偶数灯亮;当I0.3接通时,电路图
例题5.1控制关系表
输入继电器
I0.0 I0.1 I0.2 I0.3
Q0.7 ● ●
Q0.6 ●
●
Q0.5 ● ●
输出继电器位
Q0.4 ●
●
Q0.3 ● ●
Q0.2 ●
●
Q0.1 ● ●
Q0.0 ●
●
输出继电器字节
QB0 16#FF 16#AA 16#55
0
例题5.1程序
模块五 功能指令
5.1
数据处理指令
一、转换指令
转换指令是对操作数的类型进行转换,并输出到指 定的目标地址中去。转换指令包括数据的类型转换、数 据的编码和译码指令以及字符串类型转换指令。
1、BCD码与整数之间的转换 2.双字整数转换为实数 3.四舍五入取整指令 4.截位取整指令 5.整数与双整数的转换 6.字节与整数的转换指令
转换指令如图:
二、传送指令
1.数据传送指令MOV
(1)数据传送指令的梯形图使用指令盒形式。指令盒由操作码MOV,数据 类型(B/W/DW),使能输入端EN,使能输出端ENO,源操作数IN和目标操作 数OUT构成。
(2)ENO可作为下一个指令盒EN的输入,即几个指令盒可以串联在一行 ,只有前一个指令盒被正确执行时,后一个指令盒才能执行。
51单片机汇编指令及伪指令小结

51单片机汇编指令及伪指令小结51单片机汇编指令及伪指令小结51单片机是一种广泛应用的基于汇编语言的微控制器。
它的汇编指令集非常丰富,包括了基本的数据处理、逻辑运算、分支跳转、数据存储和输入输出等指令。
汇编指令的灵活运用可以实现各种复杂的功能,因此掌握51单片机的汇编指令是开发嵌入式系统的重要基础。
1. 基本数据处理指令51单片机汇编指令集包括了一系列基本的数据处理指令,如加法(add)、减法(sub)、乘法(mul)、除法(div)等。
这些指令用于实现对数据的基本运算操作。
2. 逻辑运算指令逻辑运算指令用于实现各种逻辑运算,如与(and)、或(or)、非(not)、异或(xor)等。
这些指令通常用于处理数据的开关控制、状态判断等功能。
3. 分支跳转指令分支跳转指令用于实现程序的流程控制。
常用的分支跳转指令包括无条件跳转(jmp)、条件跳转(jz、jnz、jc、jnc等)、循环跳转(loop)等。
这些指令可以根据条件和需求设置程序的执行流程,实现各种循环、分支等功能。
4. 数据存储指令数据存储指令用于实现数据的存储和加载操作。
常用的存储指令包括将数据存储到寄存器或内存中(mov)、将数据从寄存器或内存中加载(ld)等。
这些指令通过对数据的存储和加载,实现对数据的读写操作。
5. 输入输出指令输入输出指令用于实现与外设的数据通信。
常用的输入输出指令包括从端口输入(instr)、输出到端口(outstr)等。
这些指令通过与外部设备的数据交互,实现嵌入式系统与外设的连接。
除了以上的基本指令外,51单片机还提供了一些伪指令,用于程序的组织和调试。
这些伪指令包括宏指令、条件编译指令、调试指令等。
1. 宏指令宏指令是一种通过宏展开的方式来扩展汇编代码的指令。
它通过提前定义一些宏,并在代码中使用这些宏来生成更复杂的汇编代码。
宏指令的好处是可以简化代码的书写,使得程序的逻辑更清晰。
2. 条件编译指令条件编译指令用于根据编译时的条件来选择性地编译代码。
PLC的技术与性能指标

PLC的技术与性能指标参考资料:/s/blog_71facf000100ufy5.htmlPLC的技术与性能指标一、PLc的主要技术指标(一)I/O点数I/O点数(输人/输出点数)是指PLc外部输人、输出端子的总数。
I/()点数越多,外部可接的输人器件和输出器件也就越多,控制规模就越大,这是PLC最重要的一项指标。
一般按plc点数多少来区分机型的大小。
通常plc的点数是针对开关量逻辑控制的,而A/D D/A通道可通过相应的折算来统计。
如果PLC采用16位的CPU则一路A/D)或D/A折算为16点I/O如果PLC采用32位的CPU,则一路A/D或D/A,折算为32点I/()a(二)扫描速度扫描速度反映了PLC运行速度的快慢。
扫描速度快,意味着PLC可运行较为复杂的控制程序,并有可能扩大控制规模和控制功能。
因此扫描速度是PLC最重要的一项硬件性能指标。
扫描速度一般以执行1000步指令所需的时间来衡量,故单位为“毫秒/千步”。
有时也以执行一步指令的时间计算,如“毫秒/步”、“纳秒/步”。
一般大型PLC的扫描速度较快。
是因为采用多个高性能CPU并行工作的方式运行。
(三)指令条数PLC的指令条数是衡量其软件功能强弱的主要指标。
PLC具有的指令条数越多。
指令种类越丰富。
说明其软件功能越强。
一般PLC具有以下几种类型的指令。
(1)基本指令。
用于逻辑控制,实现各类逻辑和时序控制。
(2》数据处理指令。
用一f数据处理,实现对数据的译码、编码、传送、移位等功能。
(劝数据运算指令,用于数据处理,实现对数据的加,减、乘、除和比较、浮点数运算、逻辑量运算等功能。
4流程控制指令.用于控制复杂的和多个独立功能程序的流程,使程序简练、易读。
〔5)特殊控制指令,用十特殊功能的控制,如A/D .D/A 1、通信、高速输人了输出控制、中断控制、PID控制等。
〔6)系统控制指令,用于监视及记录PIrt的上作状态。
提高系统的可靠性。
(四)内存容量系统程序存放在系统程序存储器中,存储容量指用户程序存储器的容量。
S7-200系列PLC的数据处理指令

VW200 1110 0010 1010 1101
第一次循环移位后
溢出
第一次移位后
溢出
AC0
1010 0000 0000 0000
1 VW200 1100 0101 0101 1010
1
第二次循环移位后 AC0 0101 0000 0000 0000
0 标志位(SM1.0 )=0 溢出标志位(SM1.1 )= 0
中。
在梯形图中,可以设定OUT和IN指向同一内存单元,这
样
可节省内存。
(6)双字的循环右移/左移指令
指令
说明
ROR_ 双字的循环右移/左移指令把源双字IN指定的内容向右/左循环
DW 移N位,结果存入OUT指定的目标字中。
EN
操作数:
IN
IN:VD,ID,QD,MD,SMD,AC,HC,*VD,*AC,
可节省内存。
执行结果对特殊标志位影响。SM1.0(0),SM1.1 溢出
。
CPU212和CPU214无此指令。
(5) 字的循环右移/左移指令
指令
说明
ROR_W 字的循环右移/左移指令把源字IN指定的内容向右/左循环移
EN
N位,结果存入OUT指定的目标字中。
IN
操作数:
N OUT
IN:VW,T,C,IW,QW,MW,SMW,AC,AIW, 常
N:VB,IB,QB,MB,SMB,AC,常数,*VD ,
*AC,SB
(6)字的块传送指令
指令
说明
BLKMOV_W
字的块传送指令:
EN
将从IN开始的连续N个字的数据块的内容复制到
IN1
从字OUT开始的数据块里。N的有效范围是1~255
PLC的基本指令及程序设计

PLC的基本指令及程序设计PLC(可编程逻辑控制器)是一种常用的工业自动化设备,它通过运行预先编写好的程序控制工业设备和机器的运行。
在PLC中,程序是通过一系列基本指令来实现的。
本文将介绍PLC的基本指令及程序设计。
1.输入输出指令:用于与外部设备的输入输出进行交互。
常见的输入指令有I(输入)、X(通用输入)、IX(输入寄存器)等;常见的输出指令有O(输出)、Y(通用输出)、Q(输出寄存器)等。
2.数据处理指令:用于对数据进行处理和计算。
常见的数据处理指令有AND(与)、OR(或)、XOR(异或)、NOT(非)等逻辑指令;还有MOV(移动)、ADD(加)、SUB(减)、MUL(乘)、DIV(除)等算术指令。
3.定时器指令:用于实现定时控制功能。
常见的定时器指令有TON(ON延时)、TOF(OFF延时)、RTO(重新同步ON延时)等。
4.计数器指令:用于实现计数功能。
常见的计数器指令有CTU(上升沿计数)、CTD(下降沿计数)、CTC(脉冲计数)等。
5.转移指令:用于实现程序的跳转和转移。
常见的转移指令有JMP(无条件跳转)、CALL(调用)、RET(返回)等。
PLC的程序设计通常采用类似于传统计算机编程的方法。
首先需要将整个工程分解成一个个的功能模块,然后对每个模块编写相应的程序。
在编写程序时,需要按照以下步骤进行:1.了解需求:明确控制的目标和要求。
2.设计输入输出:确定需要使用的输入输出设备和信号,将其与PLC连接。
3.设计程序结构:根据需求将整个程序划分为多个功能模块,确定各个模块的输入输出。
4.编写程序:对每个功能模块编写相应的程序。
可以根据之前介绍的基本指令选择合适的指令进行编写。
6.优化程序:根据实际情况对程序进行优化,提高系统的性能和稳定性。
在程序设计过程中,还需要注意以下几点:1.确保程序的可读性:使用有意义的变量名和注释来提高程序的可读性,方便后续的维护与修改。
2.注意程序的实时性:PLC在工控系统中通常需要实时响应各种输入信号,因此需要确保程序的执行速度和响应快。
汇编语言指令大全X86和X87汇编指令大全(带注释)

汇编语⾔指令⼤全X86和X87汇编指令⼤全(带注释)⽬录⼀、数据传输指令1. 通⽤数据传送指令.2. 输⼊输出端⼝传送指令.3. ⽬的地址传送指令.4. 标志传送指令.⼆、算术运算指令三、逻辑运算指令四、串指令五、程序转移指令六、伪指令七、处理机控制指令:标志处理指令浮点运算指令集1、控制指令2、数据传送指令3、⽐较指令4、运算指令其它1.机械码,⼜称机器码.2.需要熟练掌握的全部汇编知识(只有这么多)3.常见修改(机器码)4.两种不同情况的不同修改⽅法⼀、数据传输指令它们在存贮器和寄存器、寄存器和输⼊输出端⼝之间传送数据.1. 通⽤数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压⼊堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压⼊堆栈.POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压⼊堆栈.POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP 交换32位寄存器⾥字节的顺序XCHG 交换字或字节.(⾄少有⼀个操作数为寄存器,段寄存器不可作为操作数)CMPXCHG ⽐较并交换操作数.(第⼆个操作数必须为累加器AL/AX/EAX)XADD 先交换再累加.(结果在第⼀个操作数⾥)XLAT 字节查表转换.----BX指向⼀张256字节的表的起点,AL为表的索引值(0-255,即0-FFH);返回AL为查表结果.([BX+AL]->AL)2. 输⼊输出端⼝传送指令.IN I/O端⼝输⼊. ( 语法: IN 累加器, {端⼝号│DX} )OUT I/O端⼝输出. ( 语法: OUT {端⼝号│DX},累加器 )输⼊输出端⼝由⽴即⽅式指定时, 其范围是 0-255; 由寄存器 DX 指定时,其范围是 0-65535.3. ⽬的地址传送指令.LEA 装⼊有效地址.例: LEA DX,string ;把偏移地址存到DX.LDS 传送⽬标指针,把指针内容装⼊DS.例: LDS SI,string ;把段地址:偏移地址存到DS:SI.LES 传送⽬标指针,把指针内容装⼊ES.例: LES DI,string ;把段地址:偏移地址存到ES:DI.LFS 传送⽬标指针,把指针内容装⼊FS.例: LFS DI,string ;把段地址:偏移地址存到FS:DI.LGS 传送⽬标指针,把指针内容装⼊GS.例: LGS DI,string ;把段地址:偏移地址存到GS:DI.LSS 传送⽬标指针,把指针内容装⼊SS.例: LSS DI,string ;把段地址:偏移地址存到SS:DI.4. 标志传送指令.LAHF 标志寄存器传送,把标志装⼊AH.SAHF 标志寄存器传送,把AH内容装⼊标志寄存器.PUSHF 标志⼊栈.POPF 标志出栈.PUSHD 32位标志⼊栈.POPD 32位标志出栈.⼆、算术运算指令ADD 加法.ADC 带进位加法.INC 加 1.AAA 加法的ASCII码调整.DAA 加法的⼗进制调整.SUB 减法.SBB 带借位减法.DEC 减 1.NEG 求反(以 0 减之).CMP ⽐较.(两操作数作减法,仅修改标志位,不回送结果).AAS 减法的ASCII码调整.DAS 减法的⼗进制调整.MUL ⽆符号乘法.结果回送AH和AL(字节运算),或DX和AX(字运算),IMUL 整数乘法.结果回送AH和AL(字节运算),或DX和AX(字运算),AAM 乘法的ASCII码调整.DIV ⽆符号除法.结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算).IDIV 整数除法.结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算).AAD 除法的ASCII码调整.CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去)CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去)三、逻辑运算指令AND 与运算.XOR 异或运算.NOT 取反.TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL 逻辑左移.SAL 算术左移.(=SHL)SHR 逻辑右移.SAR 算术右移.(=SHR)ROL 循环左移.ROR 循环右移.RCL 通过进位的循环左移.RCR 通过进位的循环右移.以上⼋种移位指令,其移位次数可达255次.移位⼀次时, 可直接⽤操作码. 如 SHL AX,1.移位>1次时, 则由寄存器CL给出移位次数.如 MOV CL,04 SHL AX,CL四、串指令DS:SI 源串段寄存器 :源串变址.ES:DI ⽬标串段寄存器:⽬标串变址.CX 重复次数计数器.AL/AX 扫描值.D标志 0表⽰重复操作中SI和DI应⾃动增量; 1表⽰应⾃动减量.Z标志⽤来控制扫描或⽐较操作的结束.MOVS 串传送.( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. )CMPS 串⽐较.( CMPSB ⽐较字符. CMPSW ⽐较字. )SCAS 串扫描.把AL或AX的内容与⽬标串作⽐较,⽐较结果反映在标志位.LODS 装⼊串.把源串中的元素(字或字节)逐⼀装⼊AL或AX中.( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. ) STOS 保存串.是LODS的逆过程.REP 当CX/ECX<>0时重复.REPE/REPZ 当ZF=1或⽐较结果相等,且CX/ECX<>0时重复.REPNE/REPNZ 当ZF=0或⽐较结果不相等,且CX/ECX<>0时重复.REPC 当CF=1且CX/ECX<>0时重复.REPNC 当CF=0且CX/ECX<>0时重复.五、程序转移指令1. ⽆条件转移指令 (长转移)JMP ⽆条件转移指令CALL 过程调⽤RET/RETF 过程返回.2. 条件转移指令 (短转移,-128到+127的距离内)( 当且仅当(SF XOR OF)=1时,OP1<OP2 )JA/JNBE 不⼩于或不等于时转移.JAE/JNB ⼤于或等于转移.JB/JNAE ⼩于转移.JBE/JNA ⼩于或等于转移.以上四条,测试⽆符号整数运算的结果(标志C和Z).JG/JNLE ⼤于转移.JGE/JNL ⼤于或等于转移.JL/JNGE ⼩于转移.JLE/JNG ⼩于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ 等于转移.JNE/JNZ 不等于时转移.JC 有进位时转移.JNC ⽆进位时转移.JNO 不溢出时转移.JNP/JPO 奇偶性为奇数时转移.JNS 符号位为 "0" 时转移.JO 溢出转移.JP/JPE 奇偶性为偶数时转移.JS 符号位为 "1" 时转移.3. 循环控制指令(短转移)LOOP CX不为零时循环.LOOPE/LOOPZ CX不为零且标志Z=1时循环.LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.JCXZ CX为零时转移.JECXZ ECX为零时转移.4. 中断指令INT 中断指令INTO 溢出中断IRET 中断返回5. 处理器控制指令HLT 处理器暂停, 直到出现中断或复位信号才继续.WAIT 当芯⽚引线TEST为⾼电平时使CPU进⼊等待状态.ESC 转换到外处理器.LOCK 封锁总线.NOP 空操作.STC 置进位标志位.CLC 清进位标志位.CMC 进位标志取反.STD 置⽅向标志位.CLD 清⽅向标志位.STI 置中断允许位.CLI 清中断允许位.六、伪指令DW 定义字(2字节).PROC 定义过程.ENDP 过程结束.SEGMENT 定义段.ASSUME 建⽴段寄存器寻址.ENDS 段结束.END 程序结束.七、处理机控制指令:标志处理指令CMC 进位位求反指令STC 进位位置为1指令CLD ⽅向标志置1指令STD ⽅向标志位置1指令CLI 中断标志置0指令STI 中断标志置1指令NOP ⽆操作HLT 停机WAIT 等待ESC 换码LOCK 封锁浮点运算指令集1、控制指令(带9B的控制指令前缀F变为FN时浮点不检查,机器码去掉9B)FINIT 初始化浮点部件机器码 9B DB E3FCLEX 清除异常机器码 9B DB E2FDISI 浮点检查禁⽌中断机器码 9B DB E1FENI 浮点检查禁⽌中断⼆机器码 9B DB E0WAIT 同步CPU和FPU 机器码 9BFWAIT 同步CPU和FPU 机器码 D9 D0FNOP ⽆操作机器码 DA E9FXCH 交换ST(0)和ST(1) 机器码 D9 C9FXCH ST(i) 交换ST(0)和ST(i) 机器码 D9 C1iiiFSTSW ax 状态字到ax 机器码 9B DF E0FSTSW word ptr mem 状态字到mem 机器码 9B DD mm111mmmFLDCW word ptr mem mem到状态字机器码 D9 mm101mmmFSTCW word ptr mem 控制字到mem 机器码 9B D9 mm111mmmFLDENV word ptr mem mem到全环境机器码 D9 mm100mmmFSTENV word ptr mem 全环境到mem 机器码 9B D9 mm110mmmFRSTOR word ptr mem mem到FPU状态机器码 DD mm100mmmFSAVE word ptr mem FPU状态到mem 机器码 9B DD mm110mmmFFREE ST(i) 标志ST(i)未使⽤机器码 DD C0iiiFDECSTP 减少栈指针1->0 2->1 机器码 D9 F6FINCSTP 增加栈指针0->1 1->2 机器码 D9 F7FSETPM 浮点设置保护机器码 DB E42、数据传送指令FLDZ 将0.0装⼊ST(0) 机器码 D9 EEFLD1 将1.0装⼊ST(0) 机器码 D9 E8FLDPI 将π装⼊ST(0) 机器码 D9 EBFLDL2T 将ln10/ln2装⼊ST(0) 机器码 D9 E9FLDL2E 将1/ln2装⼊ST(0) 机器码 D9 EAFLDLG2 将ln2/ln10装⼊ST(0) 机器码 D9 ECFLDLN2 将ln2装⼊ST(0) 机器码 D9 EDFLD real4 ptr mem 装⼊mem的单精度浮点数机器码 D9 mm000mmmFLD real8 ptr mem 装⼊mem的双精度浮点数机器码 DD mm000mmmFLD real10 ptr mem 装⼊mem的⼗字节浮点数机器码 DB mm101mmmFILD word ptr mem 装⼊mem的⼆字节整数机器码 DF mm000mmmFILD dword ptr mem 装⼊mem的四字节整数机器码 DB mm000mmmFILD qword ptr mem 装⼊mem的⼋字节整数机器码 DF mm101mmmFBLD tbyte ptr mem 装⼊mem的⼗字节BCD数机器码 DF mm100mmmFST real4 ptr mem 保存单精度浮点数到mem 机器码 D9 mm010mmmFST real8 ptr mem 保存双精度浮点数到mem 机器码 DD mm010mmmFIST word ptr mem 保存⼆字节整数到mem 机器码 DF mm010mmmFIST dword ptr mem 保存四字节整数到mem 机器码 DB mm010mmmFSTP real4 ptr mem 保存单精度浮点数到mem并出栈机器码 D9 mm011mmmFSTP real8 ptr mem 保存双精度浮点数到mem并出栈机器码 DD mm011mmmFSTP real10 ptr mem 保存⼗字节浮点数到mem并出栈机器码 DB mm111mmmFISTP word ptr mem 保存⼆字节整数到mem并出栈机器码 DF mm011mmmFISTP dword ptr mem 保存四字节整数到mem并出栈机器码 DB mm011mmmFISTP qword ptr mem 保存⼋字节整数到mem并出栈机器码 DF mm111mmmFBSTP tbyte ptr mem 保存⼗字节BCD数到mem并出栈机器码 DF mm110mmmFCMOVB ST(0),ST(i) <时传送机器码 DA C0iiiFCMOVBE ST(0),ST(i) <=时传送机器码 DA D0iiiFCMOVE ST(0),ST(i) =时传送机器码 DA C1iiiFCMOVNB ST(0),ST(i) >=时传送机器码 DB C0iiiFCMOVNBE ST(0),ST(i) >时传送机器码 DB D0iiiFCMOVNE ST(0),ST(i) !=时传送机器码 DB C1iiiFCMOVNU ST(0),ST(i) 有序时传送机器码 DB D1iiiFCMOVU ST(0),ST(i) ⽆序时传送机器码 DA D1iii3、⽐较指令FCOM ST(0)-ST(1) 机器码 D8 D1FCOMI ST(0),ST(i) ST(0)-ST(1) 机器码 DB F0iiiFCOMIP ST(0),ST(i) ST(0)-ST(1)并出栈机器码 DF F0iiiFCOM real4 ptr mem ST(0)-实数mem 机器码 D8 mm010mmmFCOM real8 ptr mem ST(0)-实数mem 机器码 DC mm010mmmFICOM word ptr mem ST(0)-整数mem 机器码 DE mm010mmmFICOM dword ptr mem ST(0)-整数mem 机器码 DA mm010mmmFICOMP word ptr mem ST(0)-整数mem并出栈机器码 DE mm011mmmFICOMP dword ptr mem ST(0)-整数mem并出栈机器码 DA mm011mmmFTST ST(0)-0 机器码 D9 E4FUCOM ST(i) ST(0)-ST(i) 机器码 DD E0iiiFUCOMP ST(i) ST(0)-ST(i)并出栈机器码 DD E1iiiFUCOMPP ST(0)-ST(1)并⼆次出栈机器码 DA E9FXAM ST(0)规格类型机器码 D9 E54、运算指令FADD 把⽬的操作数 (直接接在指令后的变量或堆栈缓存器) 与来源操作数 (接在⽬的操作数后的变量或堆栈缓存器) 相加,并将结果存⼊⽬的操作数FADDP ST(i),ST 这个指令是使⽬的操作数加上 ST 缓存器,并弹出 ST 缓存器,⽽⽬的操作数必须是堆栈缓存器的其中之⼀,最后不管⽬的操作数为何,经弹出⼀次后,⽬的操作数会变成上⼀个堆栈缓存器了FIADD FIADD 是把 ST 加上来源操作数,然后再存⼊ ST 缓存器,来源操作数必须是字组整数或短整数形态的变数FSUB 减FSUBPFSUBR 减数与被减数互换FSUBRPFISUBFISUBRFMUL 乘FMULPFIMULFDIV 除FDIVPFDIVRFDIVRPFIDIVFIDIVRFCHS 改变 ST 的正负值FABS 把 ST 之值取出,取其绝对值后再存回去。
西门子PLC指令教程基本指令解析

图4.3 标准触点FBD例
LD +I I0.0 //使能输入端 //整数加法 //VW0+VW4=VW4
ቤተ መጻሕፍቲ ባይዱVW0, VW4
图4.1 整数加法
3. 梯形图的基本绘制规则 (1)Network (2)能流/使能 (3)编程顺序 (4)编号分配 (5)内、外触点的配合 (6)触点的使用次数 (7)线圈的使用次数 (8)线圈的连接
返回本节
LD O A =
I0.0 I0.1 I0.2 Q0.0
//装入常开触点 //或常开触点 //与常开触点 //输出触点
//如果本梯级中将 I0.1 的触点改 //为 Q0.0 的常开触点,则成为电 //机起动停止控制环节的梯形图。 LDN I0.0 ON AN = I0.1 I0.2 Q0.1 //装入常闭触点 //或常闭触点 //与常闭触点 //
1. 栈装载与指令
ALD ,栈装载与指令(与块)。在梯形图中用于将并联 电路块进行串联连接。 在语句表中指令ALD执行情况如表4.8所示。
2. 栈装载或指令
OLD,栈装载或指令(或块)。在梯形图中用于 将串联电路块进行并联连接。 在语句表中指令OLD执行情况如表4.9所示。
3. 逻辑推入栈指令
(4)RI,立即复位指令 用立即复位指令访问输出点时,从指令所指出的 位(bit)开始的N个(最多为128个)物理输出点 被立即复位,同时,相应的输出映像寄存器的内 容也被刷新。 用法: RI bit, N 例: RI Q0.0, 1 应用举例: 图4.9为立即指令应用中的一段程序,图4.10是程 序对应的时序图。
02 第4章 PLC基本指令及其应用(1-2)

七、 基本逻辑指令举例
例1.简单的报警电路
控制系统中,若设备发生故障,则应及时报警,最常 用的报警方式是报警灯。当故障信号产生时,报警灯 应呈闪烁状态。 梯形图: I/O分配: I0.3 M 1.0 输入: ( R ) 1 报警信号开关S1:I0.0 I0.0 M 1.0 ( S ) 系统复位按钮:I0.3 1 M1.0 SM0.5 输出:故障报警灯:Q0.0 Q 0.0
2
一、 触点指令
10.立即触点指令
立即触点指令采用中断工作方式,将输入口的状态 立即读入PLC,不受扫描周期的影响。只能用于输 入继电器I。
LDI AI OI LDNI ANI ONI
I
/I
表示开始、串联和并联一常开立即触点
表示开始、串联和并联一常闭立即触点
3
二、 输出指令
1.输出指令: =
2.立即输出指令
LAD:
编号
I0.0 IN PT
类型
使能输入端
Tn
TONR ?ms
TON TOF TONR
1ms 10ms 100ms
设定值 1~32767
STL: TONR Tn, PT
时基
22
2.工作过程
① 当输入端(IN)接通时,定时器开始计时,当 输入端IN断开时,定时器保持当前值不变。 ② 当使能输入端IN再次接通时,则定时器当前值 在原保持值基础上再往上加计数。 ③ 当定时器的当前值大于等于设定值(PT)时, 定时器状态位置“1”;但定时器当前值继续增加, 一直增至最大值32767 。 ④ 以后既使输入端再断开,定时器也不会复位, TONR定时器需用复位指令R进行复位,复位后 定时器当前值清零,定时器位为OFF 。 用于对许多间隔的累计定时
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
3
4
5
6
Q0.0 Q0.1 Q0.2 Q0.3 Q0.4 Q0.5
Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0
00000001
Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0
00000011
Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0
传送指令格式
字节
字
BLKMOV-B
EN ENO IN N OUT
BLKMOV-W
EN ENO IN N OUT
BMB IN,OUT,N
BMW IN,OUT,N
有效操作数:
双字
BLKMOV-DW
EN ENO IN N OUT
BMD IN,OUT,N
数据块传送指令把从 输入(IN)指定地址 的(N) 个连续字节、 字、双字的内容传送 到从输出(OUT)指定 地址开始的N个连续字 节、字、双字的存储 单元中去。
S7-200基本数据处理指令
3、定时器和计数器指令应用复习 例1:试计算如下程序的定时时间。
S7-200基本数据处理指令
例2:试分析如图所示程序的功能。
时钟控制梯形图
S7-200基本数据处理指令
Hale Waihona Puke 一、 数据处理指令一、数据传送指令
(一)单个数据传送
单个数据传送指令每次传送1个数据,传送数据的类型分为:字节传 送、字传送、双字传送和实数传送。
字节交换指令将输入字的高字节与低字节交换。
移位寄存器的操作数:
20
2019/8/28
字节交换操作数:
21
2019/8/28
S7-200基本数据处理指令
三、数据比较指令
1、数据类型
比较指令有整数和实数两种数据类型的比较。 比较运算符:=、<=、>=、<、>、<> 操作数类型:字节比较B(Byte);(无符号整数) 整数比较I(Int)/W(Word);(有符号整数) 双字比较DW(Double Int/Word);(有符号整数) 实数比较R(Real);(有符号双字浮点数) 被比较的数据可以是字节、整数、双字及实数。其中,字节比较是无符号的, 整数、双字、实数的比较是有符号的。 比较指令以触点形式出现在梯形图及指令表中,因而有“LD'’、 “A”、 “O”三种基本形式。 对于LAD,当比较结果为真时,指令使能点接通;对于STL,比较结果为真时, 将栈顶值置1。比较指令为上下限控制及事件的比较判断提供了极大的方便。
梯形图
示意图
S7-200基本数据处理指令 4、循环右移位指令(ROR)
使能输入有效时,字节、字或双字IN数据循环右移N位后,将结果输 出到OUT所指定的存储单元中,并将最后一次移出位送SM1.1。
梯形图
示意图
S7-200基本数据处理指令
5、寄存器移位指令和字节交换指令
移位寄存器指令(SHRB)把输入端DATA的数值移入移位寄存器, 而该移位寄存器是有S-BIT和N决定的。S-BIT--指定最低位N-- 指定移位寄存器的长度和移位的方向(正向N,反向-N).
梯形图
移位示意图
S7-200基本数据处理指令 2、右移位指令(SHR)
使能输入有效时,将输入的字节、字或双字IN由高位向低位右移N位 后(左端最高位MSB补0),将结果输出到OUT所指定的存储单元中,最后一 次移出位保存在SM1.1。
梯形图
示意图
左移和右移位指令格式
S7-200基本数据处理指令
把输入端(IN)指定的数据字 节右移或左移N位,结果存入OUT 单元。
(a)梯形图
(b)时序图
S7-200基本数据处理指令
2、边沿触发指令(EU、ED) (1)EU(Edge up):输入脉冲的上升沿使触点闭合(0N)一个扫描周期。 该指令无操作数。 (2)ED(Edge Down):输入脉冲的下降沿使触点闭合(ON)一个扫描周 期。该指令无操作数。
(a)梯形图
(b)时序图
00000111
Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0
00001111
Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0
00011111
25
2019/8/28
Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0
STL
传送指令格式
S7-200基本数据处理指令
例1:将变量存储器VW100中内容送到VW200中, 其程序如图所示。
MOVW VW100,VW200
S7-200基本数据处理指令
例2:电动机Y-△起动。
主电路及控制电路接线图
S7-200基本数据处理指令
S7-200基本数据处理指令
(二)数据块传送 数据块传送指令一次可完成N(N≤255)个数据的成组传送。 1、传送指令功能 (1)字节的数据块传送指令BMB,使能输入EN有效时,把从输入IN 字节开始的N个字节数据传送到以输出字节OUT开始的N个字节中。 (2)字的数据块传送指令BMW,使能输入EN有效时,把从输入IN 字开始的N个字的数据传送到以输出字0UT开始的N个字的存储区中。 (3)双字的数据块传送指令BMD,使能输入EN有效时,把从输入IN 双字开始的N个双字的数据传送到以输出双字0UT开始的N个双字的存储 区中。
00111111
Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0
00011111
Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0
00001111
Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0
00000111
Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0
电气控制与PLC
长沙民政职业技术学院电子信息工程学院 刘卫
S7-200基本数据处理指令
1、置位(S)和复位(R)指令 (1)置位指令S S(SET):置位指令,将从bit开始的N个元件置1并保持。 其中,N的 取值为1~255。 (2)复位指令R R(RESET):复位指令,将从bit开始的N个元件置0并保持。其中,N 的取值为1~255。
S7-200基本数据处理指令 例2: 8只彩灯循环点亮程序
四、 转换指令
四、 转换指令
四、 转换指令
谢谢
00000011
Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0
00000001
26
2019/8/2
8
27
2019/8/28
S7-200基本数据处理指令
例2: 要求:8只彩灯每隔1s不间断循环依次点亮。 提示:循环间隔时间可由SM0.5提供,另外要注意,在程 序执行中,每个扫描周期都会检测移位指令EN的RLO是否 等于1。若等于1,则进行移位操作。
功能:使能输入端EN有效时,把一个输入IN单字节无符号数、单字长 或双字长符号数送到OUT指定的存储器单元输出。
字节
字
双字
实数
LAD
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
S7-200基本数据处理指令 3、循环左移位指令(ROL)
使能输入有效时,字节、字或双字IN数据循环左移N位后,将结果输
出到OUT所指定的存储单元中,并将最后一次移出位送SM1.1。
梯形图
示意图
S7-200基本数据处理指令 4、循环右移位指令(ROR)
使能输入有效时,字节、字或双字IN数据循环右移N位后,将结果输 出到OUT所指定的存储单元中,并将最后一次移出位送SM1.1。
数值比较指令的表达形式及操作数
23
2019/8/28
S7-200基本数据处理指令
例1: 6只彩灯分接于Q0.0~Q0.5,开始工作后,Q0.0先 亮,以后每隔2秒依次点亮1盏灯直到6盏灯全亮2秒后,每隔 2秒熄灭1盏灯直到6盏灯全熄2秒后再循环。
12 34 56
12 34 56
亮灯顺序
灭灯顺序
1
11
2019/8/28
数据块传送指令举例:
S7-200基本数据处理指令
S7-200基本数据处理指令
二、数据移位指令 移位指令分为左、右移位和循环左、右移位及寄存器移位等指令。 1、左移位指令(SHL) 使能输入有效时,将输入的字节、字或双字IN由低位向高位左移N位 后(右端最低位LSB补0),将结果输出到OUT所指定的存储单元中,最后一 次移出位保存在SM1.1。