嵌入式
返回首页

西门子和三菱系列PLC的基本逻辑指令

2023-04-13 来源:elecfans

取指令与输出指令(LD/LDI/LDP/LDF/OUT)


(1)LD(取指令) 一个常开触点与左母线连接的指令,每一个以常开触点开始的逻辑行都用此指令。

(2)LDI(取反指令) 一个常闭触点与左母线连接指令,每一个以常闭触点开始的逻辑行都用此指令。

(3)LDP(取上升沿指令) 与左母线连接的常开触点的上升沿检测指令,仅在指定位元件的上升沿(由OFF→ON)时接通一个扫描周期。

(4)LDF(取下降沿指令) 与左母线连接的常闭触点的下降沿检测指令。

(5)OUT(输出指令) 对线圈进行驱动的指令,也称为输出指令。


取指令与输出指令的使用说明:
1)LD、LDI指令既可用于输入左母线相连的触点,也可与ANB、ORB指令配合实现块逻辑运算;

2)LDP、LDF指令仅在对应元件有效时维持一个扫描周期的接通。

3)LD、LDI、LDP、LDF指令的目标元件为X 、Y 、M 、T、C、S;4)OUT指令可以连续使用若干次(相当于线圈并联),对于定时器和计数器,在OUT指令之后应设置常数K或数据寄存器。

5)OUT指令目标元件为Y、M、T、C和S,但不能用于X。

触点串联指令(AND/ANI/ANDP/ANDF)
(1)AND(与指令) 一个常开触点串联连接指令,完成逻辑“与”运算。
(2)ANI(与反指令) 一个常闭触点串联连接指令,完成逻辑“与非”运算。
(3)ANDP 上升沿检测串联连接指令。
(4)ANDF 下降沿检测串联连接指令。

71fdb1a8-bc71-11ed-bfe3-dac502259ad0.jpg

触点串联指令的使用的使用说明:

1)AND、ANI、ANDP、ANDF都指是单个触点串联连接的指令,串联次数没有限制,可反复使用。
2)AND、ANI、ANDP、ANDF的目标元元件为X、Y、M、T、C和S。
3)OUT M101指令之后通过T1的触点去驱动Y4称为连续输出。

触点并联指令(OR/ORI/ORP/ORF)
(1)OR(或指令) 用于单个常开触点的并联,实现逻辑“或”运算。
(2)ORI(或非指令) 用于单个常闭触点的并联,实现逻辑“或非”运算。
(3)ORP 上升沿检测并联连接指令。
(4)ORF 下降沿检测并联连接指令。

块操作指令(ORB / ANB)

(1)ORB(块或指令) 用于两个或两个以上的触点串联连接的电路之间的并联。

ORB指令的使用说明:

1)几个串联电路块并联连接时,每个串联电路块开始时应该用LD或LDI指令;

2)有多个电路块并联回路,如对每个电路块使用ORB指令,则并联的电路块数量没有限制;

3)ORB指令也可以连续使用,但这种程序写法不推荐使用,LD或LDI指令的使用次数不得超过8次,也就是ORB只能连续使用8次以下。

(2)ANB(块与指令) 用于两个或两个以上触点并联连接的电路之间的串联。

ANB指令的使用说明:
1)并联电路块串联连接时,并联电路块的开始均用LD或LDI指令;

2)多个并联回路块连接按顺序和前面的回路串联时,ANB指令的使用次数没有限制。也可连续使用ANB,但与ORB一样,使用次数在8次以下。

置位与复位指令(SET/RST)

(1)SET(置位指令) 它的作用是使被操作的目标元件置位并保持。

(2)RST(复位指令) 使被操作的目标元件复位并保持清零状态。SET、RST指令的使用,当X0常开接通时,Y0变为ON状态并一直保持该状态,即使X0断开Y0的ON状态仍维持不变;只有当X1的常开闭合时,Y0才变为OFF状态并保持,即使X1常开断开,Y0也仍为OFF状态

SET 、RST指令的使用说明:
1)SET指令的目标元件为Y、M、S,RST指令的目标元件为Y、M、S、T、C、D、V 、Z。RST指令常被用来对D、Z、V的内容清零,还用来复位积算定时器和计数器。

2)对于同一目标元件,SET、RST可多次使用,顺序也可随意,但最后执行者有效。

微分指令(PLS/PLF)
(1)PLS(上升沿微分指令) 在输入信号上升沿产生一个扫描周期的脉冲输出

(2)PLF(下降沿微分指令) 在输入信号下降沿产生一个扫描周期的脉冲输出。
利用微分指令检测到信号的边沿,通过置位和复位命令控制Y0的状态。

PLS、PLF指令的使用说明:
1)PLS、PLF指令的目标元件为Y和M;

2)使用PLS时,仅在驱动输入为ON后的一个扫描周期内目标元件ON,M0仅在X0的常开触点由断到通时的一个扫描周期内为ON;使用PLF指令时只是利用输入信号的下降沿驱动,其它与PLS相同。

主控指令(MC/MCR)

1)MC(主控指令) 用于公共串联触点的连接。执行MC后,左母线移到MC触点的后面。

2)MCR(主控复位指令) 它是MC指令的复位指令,即利用MCR指令恢复原左母线的位置。

在编程时常会出现这样的情况,多个线圈同时受一个或一组触点控制,如果在每个线圈的控制电路中都串入同样的触点,将占用很多存储单元,使用主控指令就可以解决这一问题。

MC、MCR指令利用MC N0 M100实现左母线右移,使Y0、Y1都在X0的控制之下,其中N0表示嵌套等级,在无嵌套结构中N0的使用次数无限制;利用MCR N0恢复到原左母线状态。如果X0断开则会跳过MC、MCR之间的指令向下执行。

MC、MCR指令的使用说明:
1)MC、MCR指令的目标元件为Y和M,但不能用特殊辅助继电器。MC占3个程序步,MCR占2个程序步;

2)主控触点在梯形图中与一般触点垂直。主控触点是与左母线相连的常开触点,是控制一组电路的总开关。与主控触点相连的触点必须用LD或LDI指令。

3)MC指令的输入触点断开时,在MC和MCR之内的积算定时器、计数器、用复位/置位指令驱动的元件保持其之前的状态不变。非积算定时器和计数器,用OUT指令驱动的元件将复位,22中当X0断开,Y0和Y1即变为OFF。

4)在一个MC指令区内若再使用MC指令称为嵌套。嵌套级数最多为8级,编号按N0→N1→N2→N3→N4→N5→N6→N7顺序增大,每级的返回用对应的MCR指令,从编号大的嵌套级开始复位。

堆栈指令(MPS/MRD/MPP)
堆栈指令是FX系列中新增的基本指令,用于多重输出电路,为编程带来便利。在FX系列PLC中有11个存储单元,它们专门用来存储程序运算的中间结果,被称为栈存储器。
(1)MPS(进栈指令) 将运算结果送入栈存储器的第一段,同时将先前送入的数据依次移到栈的下一段。
(2)MRD(读栈指令) 将栈存储器的第一段数据(最后进栈的数据)读出且该数据继续保存在栈存储器的第一段,栈内的数据不发生移动。
(3)MPP(出栈指令) 将栈存储器的第一段数据(最后进栈的数据)读出且该数据从栈中消失,同时将栈中其它数据依次上移。

堆栈指令的使用说明:
1)堆栈指令没有目标元件;

2)MPS和MPP必须配对使用;

3)由于栈存储单元只有11个,所以栈的层次最多11层。

逻辑反、空操作与结束指令(INV/NOP/END)
1)INV(反指令) 执行该指令后将原来的运算结果取反。反指令的使用如图10所示,如果X0断开,则Y0为ON,否则Y0为OFF。使用时应注意INV不能象指令表的LD、LDI、LDP、LDF那样与母线连接,也不能象指令表中的OR、ORI、ORP、ORF指令那样单独使用。

2)NOP(空操作指令) 不执行操作,但占一个程序步。执行NOP时并不做任何事,有时可用NOP指令短接某些触点或用NOP指令将不要的指令覆盖。当PLC执行了清除用户存储器操作后,用户存储器的内容全部变为空操作指令。

3)END(结束指令) 表示程序结束。若程序的最后不写END指令,则PLC不管实际用户程序多长,都从用户程序存储器的第一步执行到最后一步;若有END指令,当扫描到END时,则结束执行程序,这样可以缩短扫描周期。在程序调试时,可在程序中插入若干END指令,将程序划分若干段,在确定前面程序段无误后,依次删除END指令,直至调试结束。

FX系列PLC的步进指令

1.步进指令(STL/RET)
步进指令是专为顺序控制而设计的指令。在工业控制领域许多的控制过程都可用顺序控制的方式来实现,使用步进指令实现顺序控制既方便实现又便于阅读修改。

FX2N中有两条步进指令:STL(步进触点指令)和RET(步进返回指令)。

STL和RET指令只有与状态器S配合才能具有步进功能。如STL S200表示状态常开触点,称为STL触点,它在梯形图中的符号为-|| ||- ,它没有常闭触点。我们用每个状态器S记录一个工步,例STL S200有效(为ON),则进入S200表示的一步(类似于本步的总开关),开始执行本阶段该做的工作,并判断进入下一步的条件是否满足。一旦结束本步信号为ON,则关断S200进入下一步,如S201步。RET指令是用来复位STL指令的。执行RET后将重回母线,退出步进状态。

2.状态转移图
一个顺序控制过程可分为若干个阶段,也称为步或状态,每个状态都有不同的动作。当相邻两状态之间的转换条件得到满足时,就将实现转换,即由上一个状态转换到下一个状态执行。我们常用状态转移图(功能表图)描述这种顺序控制过程。用状态器S记录每个状态,X为转换条件。如当X1为ON时,则系统由S20状态转为S21状态。

状态转移图中的每一步包含三个内容:本步驱动的内容,转移条件及指令的转换目标。

步驱动Y0,当X1有效为ON时,则系统由S20状态转为S21状态,X1即为转换条件,转换的目标为S21步。

步进指令的使用说明

1)STL触点是与左侧母线相连的常开触点,某STL触点接通,则对应的状态为活动步;

2)与STL触点相连的触点应用LD或LDI指令,只有执行完RET后才返回左侧母线;

3)STL触点可直接驱动或通过别的触点驱动Y、M、S、T等元件的线圈;

4)由于PLC只执行活动步对应的电路块,所以使用STL指令时允许双线圈输出(顺控程序在不同的步可多次驱动同一线圈);

5)STL触点驱动的电路块中不能使用MC和MCR指令,但可以用CJ指令;

6)在中断程序和子程序内,不能使用STL指令。

西门子PLC编程指令

1、位逻辑指令

1.1  -||-    常开接点(地址)
1.2  -|/|-   常闭接点(地址)
1.3  XOR     位异或
1.4  -|NOT|- 信号流反向
1.5  -( )    输出线圈
1.6  -(#)-   中间输出
1.7  -(R)    线圈复位
1.8  -(S)    线圈置位
1.9  RS     复位置位触发器
1.10  RS     置位复位触发器
1.11 -(N)-   RLO下降沿检测
1.12 -(P)-   PLO上升沿检测
1.13 -(SAVE) 将RLO存入BR存储器
1.14 MEG     地址下降沿检测
1.15 POS     地址上升沿检测
 

2、比较指令
2.1  CMP?I   整数比较
2.2  CMP?D   双整数比较
2.3  CMP?R   实数比较

3、转换指令
3.1  BCD_IBCD码转换为整数
3.2  I_BCD    整数转换为BCD码
3.3  I_DINT   整数转换为双整数
3.4  BCD_DIBCD码转换为双整数
3.5  DI_BCD   双整数转换为BCD码
3.6  DI_REAL  双整数转换为浮点数
3.7  INV_I    整数的二进制反码
3.8  INV_DI   双整数的二进制反码
3.9  NEG_I    整数的二进制补码
3.10 NEG_DI   双整数的二进制补码
3.11 NEG_R    浮点数求反
3.12 ROUND    舍入为双整数
3.13 TRUNC    舍去小数取整为双整数
3.14 CEIL    上取整
3.15 FLOOR   下取整

4、计数器指令
4.1  S_CUD   加减计数
4.2  S_CU    加计数器
4.3  S_CD    减计数器
4.4  -(SC)   计数器置初值
4.5  -(CU)   加计数器线圈
4.6  -(CD)   减计数器线圈

5、数据块指令
5.1  -(OPN)  打开数据块:DB或DI

6、逻辑控制指令

6.1  -(JMP)  无条件跳转
6.2  -(JMP)  条件跳转
6.3  -(JMPN) 若非则跳转
6.4  LABEL   标号

7、整数算术运算指令
7.1  ADD_I  整数加法
7.2  SUB_I  整数减法
7.3  MUL_I  整数乘法
7.4  DIV_I  整数除法
7.5  ADD_DI 双整数加法
7.6  SUB_DI 双整数减法
7.7  MUL_DI 双整数乘法
7.8  DIV_DI 双整数除法 
7.9  MOD_DI 回送余数的双整数

8、浮点算术运算指令

8.1  基础指令
8.1.1 ADD_R 实数加法
8.1.2 SUB_R 实数减法
8.1.3 MUL_R 实数乘法
8.1.4 DIV_R 实数除法
8.1.5 ABS   浮点数绝对值运算


8.2  扩展指令
8.2.1 SQR   浮点数平方
8.2.2 SQRT  浮点数平方根
8.2.3 EXP   浮点数指数运算
8.2.4 LN    浮点数自然对数运算
8.2.5 SIN   浮点数正弦运算
8.4.6 COS   浮点数余弦运算
8.2.7 TAN   浮点数正切运算
8.2.8 ASIN  浮点数反正弦运算
8.2.9 ACOS  浮点数反余弦运算
8.2.10ATAN  浮点数反正切运算

9、赋值指令
9.1   MOVE  赋值

10、程序控制指令
10.1 -(Call)  从线圈调用FC/SFC(无参数)
10.2 CALL_FB  从方块调用FB
10.3 CALL_FC  从方块调用FC
10.4 CALL_SFB 从方块调用SFB
10.5 CALL_SFC 从方块调用SFC
10.6 -(MCR<)  主控继电器接通
10.7 -(MCR>)  主控继电器断开
10.8 -(MCRA)  主控继电器启动
10.9 -(MCRD)  主控继电器停止
10.10 -(RET)  返回

11、移位和循环指令

11.1  移位指令
11.1.1  SHR_I  整数右移
11.1.2  SHR_DI 双整数右移
11.1.3  SHL_W  字左移
11.1.4  SHR_W  字右移
11.1.5  SHL_DW 双字左移
11.1.6  SHR_DW 双字右移

11.2  循环指令
11.2.1  ROL_DW 双字左循环
11.2.2  ROR_DW 双字右循环

12、状态位指令
12.1   OV -||- 溢出异常位
12.2   OS -||- 存储溢出异常位
12.3   UO -||- 无序异常位
12.4   BR -||- 异常位二进制结果
12.5   ==0-||- 结果位等于'0'
12.6   <>0-||- 结果位不等于'0'
12.7   >0-||-  结果位大于'0'
12.8   <0-||-  结果位小于'0'
12.9   >=0-||-  结果位大于等于'0'
12.10  <=0-||- 结果位小于等于'0'

13、定时器指令
13.1   S_PULSE  脉冲S5定时器
13.2   S_PEXT   扩展脉冲S5定时器
13.3   S_ODT    接通延时S5定时器
13.4   S_ODTS   保持型接通延时S5定时器
13.5   S_OFFDT  断电延时S5定时器
13.6   -(SP)    脉冲定时器线圈
13.7   -(SE)    扩展脉冲定时器线圈
13.8  -(SD)     接通延时定时器线圈
13.9  -(SS)     保持型接通延时定时器线圈
13.10  -(SF)    断开延时定时器线圈

14、字逻辑指令
14.1   WAND_W   字和字相'与'
14.2   WOR_W    字和字相'或'
14.3   WAND_DW  双字和双字相'与'
14.4   WOR_DW   双字和双字相'或'
14.5   WXOR_W   字和字相'异或'
14.6   WXOR_DW  双字和双字相'异或“


进入嵌入式查看更多内容>>
相关视频
  • PX4固件二次开发课程

  • RISC-V嵌入式系统开发

  • NuttX Workshop 2024

  • 自己动手写操作系统

  • SOC系统级芯片设计实验

  • 自己动手做一台计算机

最新器件
精选电路图
  • 基于IC555的可变PWM振荡器电路

  • 优化电路板布局的简单方法

  • 如何使用LED驱动器LM3915制作振动计

  • 分享一个电网倾角计电路

  • 电谐波图形均衡器示意图

  • 一种构建12V和230V双直流电源的简单方法

    相关电子头条文章