位指令 I0.0 I0.1 Q 8.0 Q 8.1 I 1.0 ( MCR< ) (MCRA) Q 8.0 I 0.0 I 1.1 ( ) SR S Q R I1.2 I1.3 M0.0 Q 9.3 目录 页 基本逻辑指令:与,或 ....................................................................................................................... 2 位逻辑指令:异或 (XOR) ................................................................................................................... 3 逻辑操作结果,首次检查:举例….......................................................................................................... 4 常开和常闭触点,传感器和符号.............................................................................................................. 5 练习8.1: 常开点与常闭点........................................................................................................................... 6 赋值、置位和复位.................................................................................................................................. 7 触发器的置位/复位 ............................................................................................................................... 8 连接器 ............................................................................................................................................. 9 练习8.2: 基本逻辑操作指令.................................................................................................................. 10 影响RLO的指令 …………............................................................................................ ........................ 11 主控继电器功能 ................................................................................................................................... 12 无条件跳转 (不依赖于RLO) .................................................................................................................... 13 有条件跳转 (依赖于RLO) .................................................................................................................... 14 RLO 边沿检测 …........................................................................................................... ...................... 15 信号边沿检测 ….................................................................................................................................. 16 练习8.3:瓶装线编程 (模式选择) …………. .......................................................................................... 17
基本逻辑指令:与, 或 LAD FBD STL L1 (Q 4.0) S1 (I 0.0) S2 (I 0.1) L2 (Q 4.1) 电路图 I0.0 I0.1 Q 4.0 Q 4.1 LAD = Q 4.0 & I 0.0 I 0.1 Q 4.1 FBD A I0.0 A I0.1 = Q 4.0 = Q 4.1 STL AND L3 (Q 4.2) S3 (I 0.2) S4 (I 0.3) I0.2 I0.3 Q 4.2 I 0.2 I 0.3 >=1 = Q 4.2 O I0.2 O I0.3 = Q 4.2 逻辑表 AND I 0.0 I 0.1 Q 4.0 0 0 0 1 1 0 1 1 OR I 0.2 I 0.3 Q 4.2 0 0 0 1 1 0 1 1 OR
基本逻辑指令:异或 (XOR) LAD FBD STL A I0.4 I 0.4 & AN I0.5 I0.4 I0.5 O Q 4.0 >=1 = Q 4.0 & I 0.4 I 0.5 FBD STL A I0.4 AN I0.5 O AN I0.4 A I0.5 = Q4.0 I 0.4 I 0.5 XOR = Q4.0 X I0.4 X I0.5 = Q4.0 逻辑表 XOR I 0.4 I 0.5 Q 4.0 0 0 0 1 1 0 1 1 规则 异或操作(XOR)满足下面的规则:当两个信号中仅有一个满足时,输出信号状态才是“1”。(两个中有一个时才是“1”) 注意 ! 这个规则不能使用于多个地址的异或逻辑操作! (n个中有一个时才是“1”) 三个输入的异或指令,旧的RLO 和另一个输入作异或运算。
逻辑操作结果,首次检查,举例 1 1 例 1 信号状态 检查结果 逻辑操作结果 首次检查 例 2 信号状态 检查结果 逻辑操作结果 首次检查 例 3 信号状态 检查结果 逻辑操作结果 首次检查 A I 1.0 AN I 1.1 A M 4.0 = Q 4.0 = Q 4.1 A I 2.0 信号状态 逻辑操作由系列的指令组成,检查信号的状态和指令,设置Q,M,T,C 或D。这些信号包括输入(I)、输出(Q)、位存储器(M)、定时器(T)、计数器(C)或数据位(D)。 检查结果 当程序执行时,得到检查结果。如果满足检查条件,检查结果就是“1”,如果不满足,就是“0”。 首次检查 首次检查结果存放在逻辑操作结果(RLO)中。 逻辑操作结果 当执行下面的检查指令时, 逻辑操作结果 (RLO) 和检查结果运算, 得到新的RLO。 当执行逻辑操作的最后一个检查指令时,RLO 保持不变。后面跟着使用相同 RLO的一些指令。 注 首次检查的结果的存放和逻辑操作无关。所以,语句表程序中首次检查是AND或者是OR都没有区别。要使程序转换成其他的编程语言,应该使用恰当的指令。
常开和常闭触点,传感器和符号 PLC程序中的解释 过程 动作 不动作 传感器 是 ... 输入端 有电压 吗? 输入端 的信号 状态 检查信号状态“1” 检查信号状态“0” 传感器 是 ... 符号 / 指令 检查 结果 符号 / 指令 检查 结果 有 1 Yes 1 No 常开 触点 LAD: 常开触点 LAD: 常闭触点 无 No Yes 1 & FBD: & FBD: 常闭 触点 动作 无 No Yes 1 过程 在一个过程中,传感器的常开和常闭触点和安全规章有关系。 限位开关和安全开关总是采用常闭触点,所以,如果传感器回路出现断线,不会造成危险事件。 出于同样的原因,常闭触点也用于关闭机械。 符号 在梯形图中,“常开触点”的符号检查信号的“1”状态,“常闭触点”的符号检查信号的“0”状态。 过程信号的“1”状态是由常开触点提供,或是由常闭触点提供,是没有区别。 举例 如果机器中的常闭触点不动作,其“常开触点”符号的检查结果是“1”。 不动作 有 1 Yes 1 No A I x.y STL: AN I x.y STL:
练习8.1:常开点与常闭点 LAD FDB STL 任务:当 S1 动作和S2 不动作时,在所有三个例子中灯应该点亮! 硬件 I1.0 S1 Q 4.0 可编程控制器 I 1.0 I 1.1 Q 4.0 可编程控制器 I 1.0 I 1.1 Q 4.0 可编程控制器 Light Light Light 软件 I 1.0 I 1.1 Q 4.0 I1.0 I1.1 Q 4.0 I1.0 I1.1 Q 4.0 LAD Q 4.0 I 1.0 I1.1 & Q 4.0 I1.0 I1.1 & Q 4.0 I1.0 I1.1 & FDB 练习 完成上面的程序,可以得到如下的功能:当开关S1动作而S2不动作时,在三种情况下指示灯都亮。 注意 ! 根据它们是用在硬件回路中还是作为软件中的符号,“常开触点”和“常闭触点”有不同的含义。 ....... I1.0 ....... I1.1 ....... Q 4.0 ....... I1.0 ....... I1.1 ....... Q 4.0 ....... I1.0 ....... I1.1 ....... Q 4.0 STL
赋值,置位,复位 ( ) (S) (R) LAD FBD STL 赋值 置位 复位 A I 1.0 A I 1.1 = Q 4.0 ( ) Q 4.0 I 1.0 I 1.1 & = A I 1.0 A I 1.1 = Q 4.0 赋值 (S) Q 4.1 I 1.2 I 1.3 & S A I 1.2 A I 1.3 S Q 4.1 置位 (R) Q 4.1 I 1.4 >=1 R I 1.5 O I 1.4 O I 1.5 R Q 4.1 复位 赋值 赋值指令把RLO 传送到指定的地址 (Q, M, D),当RLO 变化时,相应地址的信号状态也变化。 置位 如果 RLO=“1”,指定的地址被设定为状态“1”,而且一直保持到它被另一个指令复位为止。 复位 如果RLO= “1”,指定的地址被复位为状态“0”,而且一直保持到它被另一个指令置位为止。
触发器的置位 / 复位 LAD FBD STL SR R Q S I1.2 I1.3 M0.0 = Q5.3 复位 优先 Q 5.3 A I 1.2 S M 0.0 A I 1.3 R M 0.0 A M 0.0 = Q 5.3 RS S Q R I1.3 I1.2 M0.0 = Q5.3 置位 优先 Q 5.3 A I 1.3 R M 0.0 A I 1.2 S M 0.0 A M 0.0 = Q 5.3 触发器 触发器有置位输入和复位输入,根据输入端的RLO=1,对存储器位置位或复位。 如果两个输入端同时出现RLO=1,根据优先级决定。 优先级 在LAD 和 FBD 中,有置位优先和复位优先有不同的符号。 在STL中,最后编写的指令具有高优先级。 注 如果用置位指令把输出置位,当CPU全启动时它被复位。 在上面的例中,如果 M 0.0 声明保持,当 CPU 全启动时,它就一直保持置位状态,被启动复位的Q5.3 会再次被赋值“1”。
连接器 ( ) LAD A I 1.0 A I 1.1 = M 0.0 A M 0.0 A I 2.0 A I 2.1 NOT ( ) M0.0 I 2.0 I 2.1 M 1.1 NOT Q 4.0 A I 1.0 A I 1.1 = M 0.0 A M 0.0 A I 2.0 A I 2.1 NOT = M 1.1 A M 1.1 = Q 4.0 STL I 1.0 I 1.1 & I 2.0 I 2.1 M0.0 M1.1 Q 4.0 = FBD 连接器 连接器是中间赋值元件,它把当前RLO 保存到指定地址。 当它和其他元件串联时,“连接器”指令和触点一样插入。 连接器不能: • 直接连接到电源母线 • 直接跟一个分支 • 用在分支结尾 可以用“NOT”元件对连接器进行取反操作。
练习8.2: 基本逻辑操作指令 目标: 理解通用逻辑元件和组合位逻辑操作,熟悉 S7 LAD/STL/FBD 编辑器并输入逻辑 操作指令。 2. 从前一个练习(离线)中选择 OB1 程序块。 3. 删除程序段。. 4. 按照上面幻灯片输入逻辑指令。对每个功能使用一个程序段。 5. 保存、装入并调试。 (当装入时,指明 CPU中OB 1 被覆盖或被替换)。 结果: 已经用一个线性化程序块替换了CPU中的程序块。线性化的程序块包含不同的基 本逻辑操作单元。调试后可以看到逻辑操作的功能。
影响RLO的指令 LAD FBD STL A I0.0 A I0.1 NOT = Q4.0 ( ) ( SAVE ) & A I1.6 ( ) NOT 不存在 CLR 不存在 SET I1.6 ( SAVE ) SAVE & A I1.6 = Q4.1 BR ( ) A BR = Q 4.1 NOT 把RLO取反。 CLR 把RLO复位 (目前仅用在STL中!). SET 把RLO 置位(目前仅用在STL中!). SAVE 把RLO保存到状态寄存器中的“BR”。 BR 用来重新检查保存的RLO。 Status word 15 8 1 BR RLO
主控继电器功能 ( MCRA ) ( MCR< ) ( ) ( MCR> ) ( MCRD ) LAD ( S ) & FBD I0.7 ( ) Q4.5 M0.6 I0.4 ( S ) Q8.0 M69.0 I 2.7 M5.5 ( MCR< ) ( MCRD ) ( MCR> ) I0.0 MCR< & I0.0 MCRA S I0.4 Q8.0 MCR> = M5.5 M69.0 I 2.7 MCRD I0.7 Q4.5 M0.6 FBD MCRA // 激活 A I0.0 // 允许 MCR MCR( // 打开 MCR A I0.7 // NO 触点 = Q4.5 // 输出线圈 = M0.6 //输出线圈 A I0.4 // NO 触点 S Q8.0 // 置位输出 )MCR // 关闭 MCR AN M5.5 // 紧急触点 AN I 2.7 // 紧急触点 = M69.0 // 输出线圈 MCRD // 取消 STL MCR 主控继电器是一个用来接通或断开电流的逻辑主开关。中断的路径代表写入零值而不是计算值或不修改当前存储器值。 举例 如果MCR 条件不满足: • “0” 分配给输出线圈 • “置位线圈”和“复位线圈”指令不改变当前值 • “MOVE”指令把数0传到指定目的地址 MCRA MCRA 指令启动主控继电器功能。 MCR( “MCR(”打开一个MCR 区,并触发一个把RLO 传到MCR堆栈的指令,堆栈有8 (对于STL) 级。这就是说,在“MCRA”和 “MCRD”指令之间最多有8级嵌套。 )MCR “)MCR”指令结束一个 MCR 区。 (对于STL) MCRD “Deactivate Master Control Relay”指令取消MCR 功能。不再打开MCR 区,直到另一个“MCRA”指令起作用。
无条件跳转 (不依赖于 RLO) ( JMP ) ( ) LAD .... M5.5 I 2.7 M69.0 FBD NEW1 Network 1 Network 2 : Network x ( ) M69.0 I 2.7 M5.5 LAD NEW1 JMP .... & M5.5 I 2.7 = M69.0 Network 1 Network 2 : Network x FBD Network 1 JU NEW1 Network 2 : Network x NEW1: AN M5.5 AN I 2.7 = M69.0 STL 跳转指令 在LAD/FBD中,在线圈符号上面输入作为标示的标号或符号。在STL中,它跟在跳转指令后面。 标号最多有4个字符,第一个字符必须使用字母或“_”。 编号标志着程序继续执行的地点,在跳转指令和标号之间的任何指令和段都不执行。 可以向前或向后跳转。 跳转指令和跳转目的必须在同一个块中 (最大跳转长度 = 64k字节)。在一个块中跳转目的只能出现一次。 跳转指令可以用在FB、FC和OB中。 插入标号 在LAD 和FBD中,利用程序元件浏览器插入一个标号: Program Elements -> Logic Control / Jump -> Label. 在STL中,在指令的左面输入标号,程序从这里继续执行。 JMP 无条件跳转指令使程序跳转到一个标号,而和RLO无关。
条件跳转 (依赖于 RLO) (JMP) (JMPN) LAD FBD STL A I0.0 A I0.1 JC NEW1 NEW1 & I0.0 I0.1 JMP (JMP) 如果RLO=1 就跳转 A I0.2 A I0.3 JCN NEW2 JMPN I0.2 I0.3 NEW2 I 0.2 I 0.3 如果RLO=0 就跳转 (JMPN) & JC 只有当RLO是“1”时,条件跳转“JC”才执行。 如果RLO 是“0”,不执行跳转,RLO 设定为“1”,继续执行程序下一条指令。 JCN 只有当RLO是“0”时,条件跳转“JCN”才执行。 如果RLO 是“1”,不执行跳转,继续执行程序下一条指令。 注 STL 提供其他的跳转指令,这些指令在其他的编程课中讨论。
RLO - 边沿检测 P N LAD P = & N FBD STL I1.0 I1.1 M1.0 M8.0 M1.1 M8.1 I1.0 A I1.0 A I1.1 FP M1.0 = M8.0 A I 1.0 A I 1.1 FN M1.1 = M8.1 STL OB1-循环 I1.0 I1.1 RLO M1.0 M8.0 M8.1 M1.1 例如 RLO 边沿 当逻辑操作结果变化时,产生RLO 边沿。 正边沿 当RLO 从“0”变化到“1”时,“FP”检查指令产生一个扫描周期的信号“1” (例如:在 M 8.0) 。 允许系统检测边沿变化,RLO 也必须保存在一个FP 位存储器中或数据位中 (例如:M 1.0)。 负边沿 当RLO从“1”变化到“0”时,"FN"检查指令产生一个扫描周期的信号“1” (例如:在 M 8.1) 。 允许系统检测边沿变化,RLO 也必须保存在一个FN 位存储器中或数据位中 (例如:M 1.1)。
信号 - 边沿检测 LAD = FBD STL I1.1 M8.0 POS M_BIT M1.0 Q I1.0 M8.1 NEG M1.1 & I1.0 M8.1 NEG M1.1 FBD A I1.0 A ( A I1.1 FP M1.0 ) = M8.0 A ( A I1.1 FN M1.1 = M8.1 STL I1.0 I1.1 例如 信号边沿 当信号变化时,产生信号边沿。 举例 输入 I 1.0 作为静态允许,输入 I 1.1 作为动态监视,检测每个信号变化。 正边沿 只要I 1.0的信号状态是“1”,当 I1.1 的信号状态从“0”变化到“1”时,“POS”检查指令在输出上产生一个扫描周期的“1”状态(见上例)。 要允许系统检测边沿变化,I 1.1 的信号状态必须保存到一个M_BIT (位存储器或数据位)中,例如:M 1.0。 负边沿 只要I 1.0的信号状态是“1”,当 I1.1 的信号状态从“1”变化到“0”时,“NEG”检查指令在输出上产生一个扫描周期的“1”状态(见上例)。 要允许系统检测边沿变化,I 1.1 的信号状态必须保存到一个M_BIT (位存储器 或数据位)中,例如:M 1.1。 M1.0 M1.1 OB1-周期 M8.0 M8.1
练习8.3:灌装线编程 (模式选择) M 设备 ON/OFF: 手动/自动模式: I 0.0 = 启动 (瞬态常开触点开关) I 0.4 = 启动 (瞬态常开触点开关) I 0.4 = 手动/自动 (开关) I 0.1 = 停止 (瞬态常闭触点开关) I 0.5 = 接受模式 (瞬态常开触点开关) I 0.2 = 向前点动(瞬态常开触点开关) I 0.3 = 向后点动 (瞬态常开触点开关) 瓶子传感器 I 8.6 任务 写瓶装线程序的模式区,使之满足下面的要求: • 输入I 0.0 (常开瞬态触点开关) 使装置接通 ON。 • 输入 I 0.1 (常闭瞬态触点开关)使装置停止OFF。 • 当装置接通时,输出Q 4.1 处的指示器点亮。 • 当装置接通时,可以选择操作模式: - 当I 0.4=0时,选择手动模式;当I 0.4=1 时,选择自动模式。 - 输入I 0.5 的脉冲接受设定的模式。 • 选择的模式指示器如下: 手动 = Q 4.2,自动 = Q 4.3. • 当改变模式或装置停止时,以前选择的模式必须取消。 • 在手动模式,传送带可以用开关I 0.2向前点动 Q8.5;用I 0.3向后点动Q8.6. 操作 1. 编写操作模式的控制程序,使用图中给出的I/O地址和设备。 2. 在项目“My Project”下,建立一个名为“FILL”的S7程序。 3. 在FC 15中写瓶装线的模式选择程序。 4. 打开 (离线) OB1,输入一个FC15调用。 (在 STL中采用指令“CALL FC 15”)。 5. 保存程序,下载并在培训设备上调试。 结果 应该工作正常。 M Q 8.5 传送带向前 Q 8.6 传送带向后