第3章 基本逻辑指令 新
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章
基本逻辑指令教学目标
3.1 概述
基本逻辑指令在语句表语言中是指对位存储单元的简单逻辑运算,在梯形图中是指对触点的简单连接和对标准线圈的输出。
语句表编程语言用指令助记符创建控制程序,它是一种面向具体机器的语言,可被PLC直接执行,一般来说,语句表语言更适合于熟悉可编程序控制器和逻辑编程方面有经验的编程人员。用这种语言可以编写出用梯形图或功能框图无法实现的程序,但利用语句表时进行位运算时需要考虑主机的内部存储结构。
S7-1200 PLC基本逻辑指令主要包括位逻辑指令、定时器指令、计数器指令、比较指令、数学指令、移动指令、转换指令、程序控制指令、逻辑运算指令以及移位和循环移位指令等。
3.2 PLC 的基本逻辑指令
3.2.1位逻辑指令
3.2.1.1 触点指令及线圈指令
1、常开触点与常闭触点
常开触点(见表3-2)在指定的位为1状态(0N)时闭合,为0状态(OFF)时断开。常闭触点在指定的位为1状态时断开,为0状态是闭合。
表3-2 位逻辑指令
指
令
2、NOT取反触点
NOT触点用来转换能流动输入的逻辑状态。如果没有能流流入NOT触点,则有能流流出(见图3-3a)。如果有能流流入NOT触点,则没有能流流出(见图3-3b)。
(a)
(b)
图3-3 NOT触点
3、输出线圈
线圈输出指令系统将线圈的状态写入指定的地址,线圈通电时写入1,断电时写入0如果是Q区的地址,CPU将输出的值传送给对应的过程映像输出。在RUN模式,CPU不停地扫描输入信号,根据用户程序的逻辑处理输入状态,通过向过程映像输出寄存器写入新的输出状态值来作出响应。在写输出阶段,CPU将存储在过程殃像寄存器中的新的输出状态传送给对应的输出电路。
可以用Q0.0:P的线圈将位数据值立即写入过程映像输出
Q0.0,同时直接写给对应的物理输出点。
反相输出线圈中间有“/”符号,如果有能流流过M4.1的反相输出线圈(见图3-4a),则M10.0的输出位为0状态,其常升触点断开(见图3-4b),反之M10.0的输出位为1状态,其常开触点闭合。
(a)
(b)
圈3-4 反相输出线圈
3.2.2 其他位逻辑指令
1、置位复位指令
S(Set,置位或置1)指令将指定的地址位置位(变为l状态并保持)。
R(Reset,复位或置O)指令将指定的地址位复位(变为O状态并保持)。
置位指令与复位指令最主要的特点是有记忆和保持功能。如果图3-5中I0.0的常开触点闭合,Q0.0变为1状态并保持该状态。即使I0.0的常开触点断开,Q0.0也仍然保持l状态(见图3-6中波形图)。在程序状态中,用Q0.0的S和R线圈连续的绿色圆弧和
绿色的字母表示l 状态,用间断的蓝色圆弧和蓝色的字母表示0状态。
图3-5 置位与复位指令 图3-6 波形图
I0.1的常开触点闭合时,Q0.0变为0状态并保持该状态,即使I0.1的常开触点断开,Q0.0也仍然保持0状态。
2、多点置位复位指令
SET_BF (Set bit field ,多点置位)指令将指定的地址开始的连续的若干个位地址置位(变为1状态并保持)。在图3-7的I0.0的上升沿(从O 状态变为l 状态),从Q0.0开始的4个连续的位被置位为1并保持l 状态。 RESET_BF (Reset bit field ,多点复位)指令将指定的地址开始的连续的若干个位地址复位(变为O 状态并保持)。在图3-7的I0.1的下降沿(从l 状态变为0状态),从Q0.0开始的4个连续的位被复位为0并保持O 状态。 与S7-200和S7-300/400不同,S7-1200的梯形圈允许在一个程序段内网络内输入多个独立电路(见图3-7)。
图3-7 边沿检测触点与多位置置位复位
3、置位优先锁存器与复位优先锁存嚣
SR 是复位优先锁存器见图3-8a ,其输入/输出关系见表3-9,两种锁存器的区别仅在于表的最下面一行。在置位(S)和复位(R1)信号同时为l 时,SR 锁存器的输出位M10.0被复位为0。Q0.0输出为0状态。
Q0.0I0.0I0.1
RS是置位优先锁存器见图3-8b,其输入/输出关系见表3-9,在置位(S)和复位(R1)信号同时为l时,RS锁存器的输出位M10.1被置位为1。Q0.1输出为1状态。
(a)
(b)
图3-8 SR锁存器与RS锁存器
表3-9 RS与SR锁存器的功能
4、边沿检测触点指令
图3-7中间有P的触点是上升沿检测触点,如果输入信号I0.0由O状态变为l状态(即输入信号I0.0的上升沿),则该触点接通一个扫描周期。边沿检测触点不能放在电路结束处。
P触点下面的M10.0为边沿存储位,用来存储上一次扫描循环时I0.0的状态。通过比较输入信号的当前状态和上一次循环的状态,来检测信号的边沿。边沿存储位的地址只能在程序中使用一次,它的状态不能在其他地方被改写。只能使用M、全局DB和静态局部变量(Static)来作边沿存储位,不能使用临时局部变量或I/O变量来作边沿存储位。
图3-7中间有N的触点是下降沿检测触点,如果输入信号I0.1由l状态变为O状态(即输入信号I0.1的下降沿),RESET_BF的线圈“通电”一个扫描循环周期。N触点下面的M10.1为边沿存储位。
5、边沿检测线圈指令
中间有P的线圈是上升沿检测线圈(见图3-10),仅在流进该线圈的能流的上升沿(线圈由断电变为通电),输出位M10.0为1状态。M11.0为边沿存储位。
中间有N的线圈是下降沿检测线圈(见图3-10),仅在流进该线圈的能流的下降沿(线圈由通电变为断电),输出位M10.1为1状态。M11.1为边沿存储位。
边沿检测线圈不会影响逻辑运算结果RLO,它对能流是畅通无阻的,其输入端的逻辑运算结果被立即送给线圈的输出端。边沿检测线圈可以放置在程序段的中间或程序段的最右边。
在运行时用外接的小开关使I0.0变为l状态,I0.0的常开触点闭台,能流经P线圈和N线圈流过Q0.0的线圈。在I0.0的上升沿,M10.0的常开触点闭合一个扫描周期,使Q0.1置位。在I0.0的下降沿,M10.1的常开触点闭合一个扫描周期,使Q0.1复位。
图3-10 边沿检测线圈指令
6、P_TRIG指令与N_TRIG指令
在流进P_TRIG指令的CLK输入端(见图3-11)的能流的上升沿(能流刚出现),Q端输出脉冲宽度为一个扫描用期的能流,使Q0.0置位。P_TRIG指令框下面的M10.0是脉冲存储器位。
在流进N_TRIG指令的CLK输入端的能流的下降沿(能流刚消失),Q端输出脉冲宽度为一个扫描周期的能流,使Q0.0复位。N_TRIG指令框下面的M10.1是脉冲存储器位。
P_TRIG指令与N_TRIG指令不能放在电路的开始处和结束处。
在设计程序时应考虑输入和存储位的初始状态,是允许还是应避免首次扫描的边沿检测。