指令基础及位逻辑指令

时间:2024-04-12 12:25:46

指令基础及位逻辑指令

一、指令基础

一、指令的概念

  1. 指令:程序的最小独立单位,用户程序由若干条顺序排列的指令构成。指令由操作码和操作数组成。 操作码用来表示使用什么样的操作,操作数用来指定操作的对象。
  2. 操作数:由标识符和参数组成。标识符又分为主标识符和辅助标识符。主标识符表示了存储区域,而辅助标识符表示了存储类型。参数表示的是存储区域的起始地址。下面给大家举个例子,来说明指令的概念。
    指令基础及位逻辑指令

二、S7-300中的系统存储区
S7-300的系统存储区集成在CPU中,不能被扩展,是主标识符所标识的存储区域。系统存储区根据功能分为不同的区域供用户使用, 如下表所示:
指令基础及位逻辑指令
三、S7-300中的常用存储类型

辅助标识符表示了存储类型,有四种,分别为位、字节、字和双字,不同类型所占用的存储空间是不一样的,一个双字包含了两个字,一个字包含了两个字节,一个字节包含了8个位。
指令基础及位逻辑指令
四、S7-300中块分类
指令基础及位逻辑指令
(1)有无存储区的区别: 简言之,存储区是用来存储数据的,有存储区,就意味着数据存储起来,断电不丢失;而无存储区,就意 味着数据只能暂存,断电会丢失掉。
(2)背景数据块与共享数据块的区:背景数据块是专用块,是供所对应的FB或SFB块使用 ,其他块使用不了;而共享数据块是通用块,是所有块都可以使用的。

二、位逻辑指令

位逻辑指令处理的对象为二进制位信号,位逻辑指令的运算结果用两个二进制数字1和0来表示 ,而逻辑运算结果我们往往用其英文简写RLO来指代。位逻辑指令包括触点与线圈、取反指令、置位和复位指令、SR和RS触发器指令、边沿检测指令等。

一、触点与线圈

  1. 常开触点
    当<操作数>中位值为0时,常开触点将断开,操作结果为0 ;当<操作数>中位值为1时,常开触点将接通,操作结果为1。
    指令基础及位逻辑指令

  2. 常闭触点 当<操作数>中位值为0时,常闭触点将接通,操 作结果为1;当<操作数>中位值为1时,常闭触点将断 开,操作结果为0 。
    指令基础及位逻辑指令

  3. 输出线圈 输出线圈可视为输出继电器的线圈;当输出线圈前端的逻辑运算结果,即RLO,为1时,<操作数>中位值将被设置为1;当输出线圈前端的RLO为0时,<操作 数>中位值将被设置为0。操作数所在的存储区可以是 :I,Q,M,L,D区。它表明了操作位值。
    指令基础及位逻辑指令

二、取反指令

该指令的功能为使其前端的RLO取反。
指令基础及位逻辑指令
三、置位和复位指令

  1. 置位指令当该指令前端的RLO为1时,<操作数>中位值将被置位为1,即使其前端的RLO又变为0;当该指令前端的RLO为0时,<操作数>中位值保持不变。
    指令基础及位逻辑指令

  2. 复位指令 当该指令前端的RLO为1时,<操作数>中位值将被 复位为0;当该指令前端的RLO为0时,<操作数>中位值保持不变。
    指令基础及位逻辑指令

四、 SR和RS触发器指令

1.SR触发器指令当参数S前端的RLO为0,参数R1前端的RLO为0 时,<操作数>中位值将不变;当参数S前端的RLO 为1,参数R1前端的RLO为0时, <操作数>中位值将被置位为1;当参数S前端的RLO为0,参数R1前 端的RLO为1时, <操作数>中位值将被复位为0; 当参数S前端的RLO为1,参数R1前端的RLO为1时, <操作数>中位值将被复位为0,也就是说复位优先于置位。
指令基础及位逻辑指令2. RS触发器指令当参数R前端的RLO为0,参数S1前端的RLO为0时, <操作数>中位值将不变;当参数R前端的RLO为1,参数S1前端的RLO为0时, <操作数>中位值将被复位为0;当参数R前端的RLO为0,参数S1前端的RLO为1时, <操作数>中位值将被置位为1; 当参数R前端的RLO为1,参数S1前端的RLO为1时, <操作数>中位值将被置位为1 ,也就是说置位优先于复位。
指令基础及位逻辑指令
五、边沿检测指令
该指令有两大类,一类是RLO信号检测指令, 一类是操作数信号检测指令。而RLO信号检测指令又分为RLO信号上升沿检测指令和RLO信号下降沿检测指令。

RLO信号检测指令

  1. RLO信号上升沿检测指令
    当该指令检测到其之前的RLO信号有“0”>“1”跳变时,该指令操作结果将产生一个扫描周期的1信号。
    指令基础及位逻辑指令
    指令基础及位逻辑指令

当I0.0有0到1的跳变时,该指令会检测到这个 跳变,它会使后面的输出在一个周期内为1,也就是使Q0.0在一个周期之内为1。这个周期的级别在毫秒级别上。

  1. RLO信号下降沿检测指令 当该指令检测到其之前的RLO信号有“1”>“0”跳变时,该指令操作结果将产生一个扫描周期的1信号。
    指令基础及位逻辑指令
    指令基础及位逻辑指令

I0.0从1到0产生一个跳变,这个跳变是下降沿的跳变。RLO下降沿指会检测到这个跳变,使后面的输出也就是Q0.0为1,这个为1的时间也是一个扫描周期。

六、操作数信号检测指令

  1. 操作数信号上升沿检测指令 操作数1上一个周期的逻辑值保存在操作数2中, 当前周期该指令将对其进行对比,检测到操作数1有 “0”->“1”跳变时,该指令操作结果将产生一个扫描周期的1信号。
    指令基础及位逻辑指令
    指令基础及位逻辑指令

M0.1是保存M0.0在上一个周期的逻辑数值,当这 个周期来的时候。M0.0的当前逻辑数值又会和M0.1里 面的数值,也就是它上一个周期的数值进行比较。如 果有一个产生从“0”->“1”跳变,该指令就会检测 到这个跳变,然后就使它后面的输出在一个扫描周期 之内为1,这里使Q0.0在一个扫描周期之内为1。

  1. 操作数信号下降沿检测指令 操作数1上一个周期的逻辑值保存在操作数2中, 当前周期该指令将对其进行对比,检测到操作数1有 “1”->“0”跳变时,该指令操作结果将产生一个扫 描周期的1信号。
    指令基础及位逻辑指令
    指令基础及位逻辑指令
    M0.1依然保存了M0.0在上一个周期当中的逻辑数 值,当本周期来的时候,M0.0的当前逻辑数值就会和 M0.1当中的数值,也就是它上一个周期的逻辑数值进 行比较,如果有出现一个“1”->“0”跳变,也就是出现一个下降沿的跳变,该指令就会检测到下降沿, 检测到下降沿之后,会使它后面的输出在一个周期之 内为1,在这个例子当中,也就是使Q0.0为1,为1的 时间是保持一个周期。