第一章 绪论 -...

52
2 第一章 绪论 3.1 位逻辑指令 3.1.1 基本位逻辑指令 位逻辑指令的运算结果用两个二进制数字 1 0 来表示。可以对布尔操 作数( BOOL )的信号状态扫描并完成逻辑操作。逻辑操作结果称为 RLO(result of logic operation)语句表 STL 表示的基本位逻辑指令 z A And 逻辑z AN And Not 逻辑与非z O Or 逻辑z ON Or Not 逻辑或非z X Exclusive Or 逻辑异或z XN Exclusive Or Not 逻辑异或非z = Assign 赋值指令 z NOT Negate RLO RLO 取反 z SET Set RLO (=1) RLO=1 z CLR Clear RLO (=0) RLO=0 z SAVE Save RLO in BR Register RLO 的状态保存到 BR边沿信号识别指令。 位逻辑指令的运算规则:先与后或可以用括号将需先运算的部分括起来,运算规则为: 先括号内,后括号外梯形图 LAD 表示的基本位逻辑指令 z ---| |--- Normally Open Contact (Address) 常开触点 z ---|/|--- Normally Closed Contact (Address) 常闭触点 z ---(SAVE) Save RLO into BR Memory RLO 的状态保存到 BR z XOR Bit Exclusive OR 逻辑异或z ---( ) Output Coil 输出线圈 z ---( # )--- Midline Output 中间标志输出 z ---|NOT|---Invert Power Flow RLO 取反 功能图 FBD 表示的位逻辑指令 将在后面的指令详解中给出 概括:十分钟 利用投影仪

Transcript of 第一章 绪论 -...

  • 2

    第一章 绪论

    3.1 位逻辑指令

    3.1.1 基本位逻辑指令

    位逻辑指令的运算结果用两个二进制数字 1和 0来表示。可以对布尔操作数(BOOL)的信号状态扫描并完成逻辑操作。逻辑操作结果称为RLO(result of logic operation)。

    语句表 STL表示的基本位逻辑指令 A And 逻辑“与” AN And Not 逻辑“与非” O Or 逻辑“或” ON Or Not 逻辑“或非” X Exclusive Or 逻辑“异或” XN Exclusive Or Not 逻辑“异或非” = Assign 赋值指令 NOT Negate RLO RLO取反 SET Set RLO (=1) RLO=1 CLR Clear RLO (=0) RLO=0 SAVE Save RLO in BR Register 将 RLO的状态保存到 BR。

    边沿信号识别指令。 位逻辑指令的运算规则:“先与后或”。 可以用括号将需先运算的部分括起来,运算规则为: “先括号内,后括号外”。

    梯形图 LAD表示的基本位逻辑指令 ---| |--- Normally Open Contact (Address) 常开触点 ---|/|--- Normally Closed Contact (Address) 常闭触点 ---(SAVE) Save RLO into BR Memory

    将 RLO的状态保存到 BR XOR Bit Exclusive OR 逻辑“异或” ---( ) Output Coil 输出线圈 ---( # )--- Midline Output 中间标志输出 ---|NOT|---Invert Power Flow RLO取反

    功能图 FBD表示的位逻辑指令 将在后面的指令详解中给出

    概括:十分钟

    利用投影仪

    教 案 教 学 内 容 备 注

  • 1.逻辑“与”操作 当所有的输入信号都为“1”,则输出为“1”;只要输入信号有一个不为

    “1”,则输出为“0”。 例 3.1.1:功能图(FBD)语言如下:

    梯形图(LAD)语言如下:

    语句表(STL)语言如下:

    A I 0.0 A I 0.1 = Q 4.0

    2.逻辑“或”操作 只要有一个输入信号为“1”,则输出为“1”;所有输入信号都为“0”,输

    出才为“0”。 例 3.1.2:功能图(FBD)语言如下:

    当输入信号 I 0.0 和 I 0.1有一个以上为“1”时,输出信号 Q 4.0 为“1”。

    当输入信号 I 0.0 和 I 0.1都为“0”时,输出信号 Q 4.0 才为“0”。 梯形图(LAD)语言如下:

    语句表(STL)语言如下:

    O I 0.0 O I 0.1

    = Q 4.0

    注意编程语言

    的三种表达方

    式及各自的特

    点。

    教 案 教 学 内 容 备 注

    3

  • 3.逻辑异或操作 当两个输入信号其中一个为“1”而另一个为“0”时,输出信号为“1”;当

    两个输入信号都为“0”或者都为“1”时,输出信号为“0”。 例 3.1.3:功能图(FBD)语言如下:

    当输入信号 I 0.0 为“1”而 I 0.2为“0”或者 I 0.0 为“0”而 I 0.2为“1”时,

    输出信号 Q3.1 为“1”。当输入信号 I 0.0 和 I 0.2都为“0”或者 I 0.0 和 I 0.2都为“1”时,输出信号 Q 3.1为“0”。

    梯形图(LAD)语言如下:

    语句表(STL)语言如下:

    X I 0.0 X I 0.2

    = Q 3.1 4.逻辑取反操作

    逻辑取反操作对逻辑运算结果 RLO取反。 功能图(FBD)符号:

    梯形图(LAD)符号:

    ---|NOT|--- 语句表(STL)符号:

    NOT

    引导学生举出

    生活中异或关

    系的例子

    教 案 教 学 内 容 备 注

    4

  • 例 3.1.4:只有当 I 1.0 和 I 1.1相与的结果为“0”并且 I 1.2 和 I 1.3相与

    的结果为“1”或 I 1.4为“1”时,输出 Q 4.0才为“1”;否则 Q 4.0为“0”。 功能图(FBD)语言如下:

    梯形图(LAD)语言如下:

    语句表(STL)语言如下: A I 1.0 A I 1.1 NOT A( A I 1.2 A I 1.3 NOT O I 1.4 )

    = Q 4.0 5.中间输出符号 中间输出指令用于存储 RLO的中间值,该值是中间输出指令前的位逻

    辑操作结果。中间输出指令不能用于结束一个逻辑串,因此,中间输出指

    令不能放在逻辑串的结尾或分支的结尾处。

    特别要讲清楚

    中间符号的作

    教 案 教 学 内 容 备 注

    5

  • 例 3.1.5

    M 0.0的缓存器中存放着 I 1.0和 I 1.1相与后取反的结果; M 1.1的缓存器中存放着 I 1.2和 I 1.3相与后取反的结果; M 2.2的缓存器中存放着 I 1.4的逻辑运算结果; M 3.3的缓存器中存放上述整个逻辑运算的结果。 例 3.1.6

    M 0.0的缓存器中存放着 I 1.0和 I 1.1相与的结果; M 1.1的缓存器中存放着 I 1.0、I 1.1、I 1.2和 I 1.3四个输入信号相与

    后取反的结果; M 2.2的缓存器中存放着整个逻辑运算的结果。

    6.位逻辑操作规则: 位逻辑指令的运算规则:“先与后或”。 例 3.1.7:当输入信号 I 1.0 和 I 1.1 都为“1”,或输入信号 I 1.2 和 I 1.3

    都为“1”时,输出信号 Q 3.1 为“1”。否则输出信号 Q 3.1 为“0”。 功能图(FBD)语言如下:

    梯形图(LAD)语言如下:

    重点强调

    教 案 教 学 内 容 备 注

    6

  • 语句表(STL)语言如下: A I 1.0 A I 1.1 O A I 1.2 A I 1.3 = Q 3.1 例 3.1.8:当输入信号 I 1.0 或 I 1.1为“1”,并且 I 1.2 或 I 1.3为“1”时,

    输出信号 Q 3.1 为“1”。否则输出信号 Q 3.1 为“0”。 功能图(FBD)语言如下:

    梯形图(LAD)语言如下:

    语句表(STL)语言如下: A (

    O I 1.0 O I 1.1 ) A( O I 1.2 O I 1.3 ) = Q 3.1

    牢记位逻辑运

    算的规则。 重点是在语句

    表中

    课程 可编程控制技术 班级 电气工程自动化 学期 5

    课时 4h 累计课时 16h 教师 上课日期

    7

  • 8

    课程类型 理论,实验。

    第三章 指令系统

    课程名称

    (章、节)

    3.1 位逻辑指令 Bit Logic Instructions (3.1.2~3.1.4)

    教学目的

    要 求 使学生熟练掌握西门子 S7-300 系列可编程控制器的置位/复位指令。

    教学重点 置位/复位指令的符号,功能,使用条件。

    教学难点 置位/复位指令的记忆功能。

    主要教具

    设备材料 投影仪、S7-300 可编程控制器、计算机及编程软件

    课后记

    置位/复位指令对于较熟悉继电—接触器控制的学生来说是个较新的概念。

    同时又是非常重要的指令。注意引导学生结合数字电路的 RS 触发器以及继

    电—接触器系统中的“自保”结构充分理解。

    教 案

    教 学 内 容 备 注

  • 3.1.2置位/复位指令 置位/复位指令根据 RLO的值,来决定被寻址位的信号状态是否需要改

    变。若 RLO的值为 1,被寻址位的信号状态被置 1或清 0;若 RLO是 0,则被寻址位的信号保持原状态不变。对于置位操作,一旦 RLO为 1,则被寻址信号(输出信号)状态置 1,即使 RLO又变为 0,输出仍保持为 1;对于复位操作,一旦 RLO 为 1,则被寻址信号(输出信号)状态置 0,即使 RLO 又变为 0,输出仍保持为 0。

    语句表 STL表示的置位/复位指令

    R Reset 复位指令 S Set 置位指令

    梯形图 LAD表示的置位/复位指令 ---( S ) Set Coil 线圈置位指令 ---( R ) Reset Coil 线圈复位指令 SR Set-Reset Flip Flop 复位优先型 SR双稳态触发器指令 RS Reset-Set Flip Flop 置位优先型 RS双稳态触发器指令

    功能图 FBD表示的位逻辑指令

    强调“记忆功

    能”

    教 案

    教 学 内 容 备 注

    9

  • 1.置位/复位线圈指令 例 3.1.9:当 I 0.0和 I 0.1输入都为“1”或者 I 0.2输入为“0”时,Q 4.0被

    置位,即输出为“1”;不满足上述条件时,Q 4.0的输出状态不变。 功能图(FBD)语言如下:

    梯形图(LAD)语言如下:

    语句表(STL)语言如下: A I 0.0

    A I 0.1

    ON I 0.2

    S Q 4.0

    例 3.1.10:当 I 0.0和 I 0.1输入都为“1”或者 I 0.2输入为“0”时,Q 4.0被复位,即输出为“0”;不满足上述条件时,Q 4.0的输出状态不变。

    功能图(FBD)语言如下:

    梯形图(LAD)语言如下:

    语句表(STL)语言如下:

    A I 0.0

    A I 0.1

    ON I 0.2

    R Q 4.0

    注意与普通线

    圈符号的不同

    教 案 教 学 内 容 备 注

    10

  • 2.置位/复位双稳态触发器指令

    如果置位输入端为“1”,复位输入端为“0”,则触发器被置位。此后,即使置位输入端为 0,触发器也保持置位不变。如果复位输入端为 1,置位输入端为“0”,则触发器被复位。 置位优先型 RS 触发器的 R 端在 S 端之上,当两个输入端都为 1 时,

    下面的置位输入端最终有效。既置位输入优先,触发器被置位。 复位优先型 SR 触发器的 S 端在 R 端之上,当两个输入端都为 1 时,

    下面的复位输入端最终有效。既复位输入优先,触发器被复位。 例 3.1.11

    如果输入信号 I 0.0 = 1, I 0.0 = 0, 则M 0.0被复位,Q 4.0 = 0;

    I 0.0 = 0, I 0.0 = 1, 则M 0.0被置位,Q 4.0 = 1; I 0.0 = 0, I 0.0 = 0, 则M 0.0输出保持不变,Q 4.0

    输出不变; I 0.0 = 1, I 0.0 = 1, 则M 0.0被置位,Q 4.0 = 1。 例 3.1.12

    如果输入信号 I 0.0 = 1, I 0.0 = 0, 则M 0.0被复位,Q 4.0 = 0;

    I 0.0 = 0, I 0.0 = 1, 则M 0.0被置位,Q 4.0 = 1; I 0.0 = 0, I 0.0 = 0, 则M 0.0输出保持不变,Q 4.0

    输出不变; I 0.0 = 1, I 0.0 = 1, 则M 0.0被置位,Q 4.0 = 0。

    注意讲清楚置

    位优先型 RS 触发器和复位优

    先型 SR 触发器在功能图和语

    句表中的表示

    方法以及适用

    场合

    教 案 教 学 内 容 备 注

    11

  • 3.1.3 边沿信号识别指令

    1.RLO边沿信号识别指令 当信号状态变化时就产生跳变沿,当从 0 变到 1 时,产生一个上升沿

    (或正跳沿);若从 1变到 0,则产生一个下降沿(或负跳沿)。跳变沿检测的原理是:在每个扫描周期中把信号状态和它在前一个扫描周期的状态进

    行比较,若不同则表明有一个跳变沿。因此,前一个周期里的信号状态必

    须被存储,以便能和新的信号状态相比较。

    下降沿信号识别指令

    若 CPU检测到输入有一个负跳沿,将使得输出线圈在一个扫描周期内

    通电。对输入扫描的 RLO值存放在存储位中。 在 OB1的扫描周期中,CPU扫描并形成 RLO值,若该 RLO值是 0且

    上次 RLO值是 1,这说明 FN指令检测到一个 RLO的负跳沿,那么 FN指令把 RLO位置 1。如果 RLO在相邻的两个扫描周期中相同(全为 1或 0),那么 FN语句把 RLO位清 0。 例 3.1.13

    此节内容较难

    懂,适当慢一

    些。 强调“边沿”的

    概念

    教 案 教 学 内 容 备 注

    12

  • 若 CPU 检测到输入 I1.0 有一个负跳沿,将使得输出 Q4.0 的线圈在一个扫描周期内通电。对输入 I1.0 常开触点扫描的 RLO 值(在本例中,此RLO正好与输入 I1.0的信号状态相同)存放在存储位M1.0中。

    在 OB1的扫描周期中,CPU对 I1.0信号状态扫描并形成 RLO值,若该 RLO值是 0且存放在 M1.0中的上次 RLO值是 1,这说明 FN指令检测到一个 RLO的负跳沿,那么 FN指令把 RLO位置 1。如果 RLO在相邻的两个扫描周期中相同(全为 1或 0),那么 FN语句把 RLO位清 0。

    上升沿信号识别指令

    若 CPU检测到输入有一个正跳沿,将使得输出线圈在一个扫描周期内

    通电。对输入扫描的 RLO值存放在存储位中。 在 OB1的扫描周期中,CPU扫描并形成 RLO值,若该 RLO值是 1且

    上次 RLO值是 0,这说明 FN指令检测到一个 RLO的正跳沿,那么 FP指令把 RLO位置 1。如果 RLO在相邻的两个扫描周期中相同(全为 1或 0),那么 FP语句把 RLO位清 0。

    例 3.1.14

    若 CPU 检测到输入 I1.0 有一个正跳沿,将使得输出 Q4.0 的线圈在一

    个扫描周期内通电。对输入 I1.0 常开触点扫描的 RLO 值(在本例中,此 RLO

    正好与输入 I1.0 的信号状态相同)存放在存储位 M1.0 中。

    在 OB1的扫描周期中,CPU对 I1.0信号状态扫描并形成 RLO值,若该 RLO值是 1且存放在 M1.0中的上次 RLO值是 0,这说明 FN指令检测到一个 RLO的正跳沿,那么 FP指令把 RLO位置 1。如果 RLO在相邻的两个扫描周期中相同(全为 1或 0),那么 FP语句把 RLO位清 0。

    弄清“上升沿”

    与“下降沿”的

    概念与区别

    教 案 教 学 内 容 备 注

    13

  • 2.触点边沿信号识别指令

    触点下降沿信号识别指令

    在 OB1的扫描周期中,CPU对的状态与其上一个扫描周

    期的状态进行比较(上一个扫描周期的状态保存在中。若该状态是 0且存放在中的上次状态是 1,这说明 NEG指令检测到的负跳沿,那么 NEG 指令把 RLO 位置 1。如果在相邻的两个扫描周期中状态相同(全为 1或 0),那么 NEG指令把 RLO位清 0。 例 3.1.15

    当输入信号 I 0.0、I 0.0、I 0.2、I 0.4 全为“1”并且 I 0.3 有一

    个负跳变,则 Q 4.0 输出一个扫描周期的正脉冲信号。

    触点上升沿信号识别指令

    在 OB1 的扫描周期中,CPU 对的状态与其上一个扫描周

    期的状态进行比较(上一个扫描周期的状态保存在中。若该

    状态是 1且存放在中的上次状态是 0,这说明 POS

    指令检测到正跳沿,那么 POS 指令把 RLO 位置 1。如果

    在相邻的两个扫描周期中状态相同(全为 1 或 0),那么 POS

    指令把 RLO 位清 0。

    注意与前面指

    令的区别

    教 案 教 学 内 容 备 注

    14

  • 例 3.1.16

    当输入信号 I 0.0、I 0.0、I 0.2、I 0.4全为“1”并且 I 0.3 有一个正跳变,则 Q 4.0输出一个扫描周期的正脉冲信号。

    3.1.4 RLO 置位、清零、保存指令 置位指令 符号: SET

    功能: RLO = 1

    复位指令 符号: CLR 功能: RLO = 0 例 3.1.17

    RLO保存指令 符号: SAVE 功能: (RLO) → BR

    说明: 将 RLO的状态保存到状态字寄存器中的 BR位中。

    强调尽对 RLO操作

    课程 可编程控制技术 班级 电气工程自动化 学期 5

    课时 4h 累计课时 20h 教师 上课日期

    15

  • 16

    课程类型 理论,实验。

    第三章 指令系统

    课程名称

    (章、节)

    3.2 定时器指令 Time Instructions(3.2.1~3.2.4)

    教学目的

    要 求

    使学生熟练掌握西门子 S7-300 系列可编程控制器的脉冲定时器及扩展脉冲

    定时器及有关指令。

    教学重点 西门子 S7-300 系列的脉冲定时器及扩展脉冲定时器。

    教学难点 脉冲定时器及扩展脉冲定时器的特性、区别、适用场合。

    主要教具

    设备材料 投影仪、S7-300 可编程控制器、计算机及编程软件

    课后记 定时器应用较为广泛,生产生活中的例子也不少,但一定要引导学生分清楚

    各种定时器的区别,不同类型定时器输出信号与输入信号的关系

    教 案

    教 学 内 容 备 注

  • 17

    3.2 定时器指令

    3.2.1 定时器的结构

    S7 中定时时间由时基和定时值两部分组成,定时时间等于时基与定时值

    的乘积。当定时器运行时,定时值不断减 1,直至减到 0,减到 0 表示定时

    时间到。定时时间到后会引起定时器触点的动作。

    定时器的第 0到第 11位存放 BCD码格式的定时值,三位 BCD码表示的范围是 0~999。第 12,13位存放二进制格式的时基。

    从下表中可以看出:时基小定时分辨率高,但定时时间范围窄;时基大

    分辨率低,但定时范围宽。

    时 基 二进制时基 分辨率 定 时 范 围 10 s 00 0.01 s 10ms至 9s_990ms

    100ms 0l 0.1 s 100ms至 1m_39s_900ms 1 s 10 1s 1s至 16m_39s

    10 s 11 10 s 10s至 2h_46m_30s

    当定时器启动时,累加器 1低字的内容被当作定时时间装入定时字中。

    这一过程是由操作系统控制自动完成的,用户只需给累加器 l装入不同的数

    值,即可设置需要的定时时间。

    推荐采用下述直观的句法: L W#16# txyz

    其中:t,x,y,z均为十进制数; t=时基,取值 0,1,2,3,分别表示时基为:10ms、100ms、1s、10s。

    xyz=定时值,取值范围:1到 999。 也可直接使用 S5中的时间表示法装入定时数值,例如:

    L S5T# aH_bbM_ccS_dddMS 其中:a=小时,bb=分钟,cc=秒,ddd=毫秒. 范围:1MS 到 2H_46M_30S;此时,时基是自动选择的,原则是:根据定

    时时间选择能满足定时范围要求的最小时基。

    此节是定时器

    的基础知识

    若某些同学理

    解上有困难,可

    暂时放一放

  • 教 案 教 学 内 容 备 注

    S7—300提供了多种形式的定时器:脉冲定时器(SP)、扩展定时器(SE)、接通延时定时器(SD)、带保持的接通延时定时器(SS)和断电延时定时器(SF)。

    下图给出了各种定时器的工作状态。

    注意五种定时

    器各自的特点

    教 案 教 学 内 容 备 注

    18

  • 3.2.2 脉冲定时器 Pulse Timer 脉冲定时器时序如下:

    例 3.2.1 STL 语句表如下:

    A I 0.0

    L S5T#10s \\装入定时时间到 ACCU1 SP T5 \\启动脉冲定时器 T5 A I 0.1

    R T 5 \\定时器 T5复位 A T 5

    = Q 4.0 FBD 功能图如下:

    时序图如下:

    结合实际例子

    让同学充分理

    解。

    教 案 教 学 内 容 备 注

    19

  • 3. 2. 3 定时器再启动指令 FR Enable Timer 格式: FR

    定时器再启动指令 FR用于重新装载定时时间,定时器以新装入的时间值运行。下面结合一个具体的例子来说明。

    STL语句表如下: A I 2.0 FR T1 \\再启动定时器 T1 A I 2.1 L S5T#10s \\装入定时时间到 ACCU1 SP T1 \\启动脉冲定时器 T1 A I 2.2 R T1 \\定时器 T1复位 A T1 = Q4.0 时序如下:

    (1)在定时器运行期间,使能输入端 I 2.0有一个从“0”到“1”的变化,此时,定时器 T1被再启动,定时时间恢复到预置初值从新开始计时。 I 2.0有一个从“1”到“0”的变化没有作用。

    (2)虽然定时器没有运行,当使能 输入端 I 2.0有一个从“0”到“1”的变化,同时定时器启动输入端 I 2.1 处于高电平状态,此时,定时器 T1也被启动。 (3)当定时器启动输入端 I 2.1 处于低电平状态,尽管使能输入端 I 2.0

    有一个从“0”到“1”的变化,此时,定时器 T1也不能启动。

    此点是难点注

    意讲深讲透

    教 案 教 学 内 容 备 注

    20

  • 3.2.4 扩展脉冲定时器 Extended Pulse Timer

    例 3.2.2 STL 语句表如下:

    A I 0.0

    L S5T#2s \\装入定时时间到 ACCU1 SE T5 \\启动扩展脉冲定时器 T5 A I 0.1

    R T 5 \\定时器 T5复位 A T 5

    = Q 4.0

    FBD 功能图如下:

    时序图如下:

    特别注意与脉

    冲定时器的不

    同点

    课程 可编程控制技术 班级 电气工程自动化 学期 5

    课时 4h 累计课时 24h 教师 上课日期

    21

  • 22

    课程类型 理论,实验。

    第三章 指令系统

    课程名称

    (章、节)

    3.2 定时器指令 Time Instructions(3.2.5~3.2.7)

    教学目的

    要 求

    使学生熟练掌握西门子 S7-300 系列可编程控制器的延时接通定时器等有关

    指令。

    教学重点 西门子 S7-300 系列的延时接通定时器。

    教学难点 延时接通定时器的特性、区别、适用场合。

    主要教具

    设备材料 投影仪、S7-300 可编程控制器、计算机及编程软件

    课后记 延时接通定时器生产实际中用得最为广泛,此种类型的定时器要求同学必须

    熟练掌握。

    教 案

    教 学 内 容 备 注

  • 3.2.5 接通延时定时器 ON-Delay Timer 接通延时定时器时序如下:

    例 3.2.3

    STL 语句表如下:

    A I 0.0

    L S5T#2s \\装入定时时间到 ACCU1 SD T5 \\启动延时接通定时器 T5 A I 0.1

    R T 5 \\定时器 T5复位 A T 5

    = Q 4.0

    FBD 功能图如下:

    时序图如下:

    重点之重点

    结合习题讲深

    讲透

    教 案 教 学 内 容 备 注

    23

  • 3.2.6 保持型接通延时定时器 Retentive ON-Delay Timer 保持型接通延时定时器时序如下:

    例 3.2.4

    STL 语句表如下:

    A I 0.0 L S5T#2s \\装入定时时间到 ACCU1 SS T5 \\启动保持型延时接通定时器 T5 A I 0.1 R T 5 \\定时器 T5复位 A T 5

    = Q 4.0 FBD 功能图如下:

    时序图如下:

    注意与接通延

    时定时器的区

    教 案 教 学 内 容 备 注

    24

  • 3.2.7 关断延时定时器 Off - Delay Timer 关断延时定时器时序如下:

    例 3.2.5

    STL 语句表如下:

    A I 0.0

    L S5T#2s \\装入定时时间到 ACCU1 SF T5 \\启动关断延时接通定时器 T5 A I 0.1

    R T 5 \\定时器 T5复位 A T 5

    = Q 4.0

    FBD 功能图如下:

    时序图如下:

    此种定时器时

    下降沿触发。与

    前四种不同

    课程 可编程控制技术 班级 电气工程自动化 学期 5

    课时 4h 累计课时 28h 教师 上课日期

    25

  • 26

    课程类型 理论,实验。

    第三章 指令系统

    课程名称

    (章、节)

    3.3 计数器指令 Counter Instructions

    3.4 装入和传输指令 Load and Transfer Instructions

    教学目的

    要 求

    使学生熟练掌握西门子 S7-300 系列可编程控制器的计数器指令以及装入和

    传输指令。

    教学重点 计数器指令以及装入和传输指令。

    教学难点 不同类型数据的传输方式。

    主要教具

    设备材料 投影仪、S7-300 可编程控制器、计算机及编程软件。

    课后记 计数器也是电器控制系统中的重要部件,注意讲清楚计数值的输出形式

    教 案

    教 学 内 容 备 注

  • 27

    3.3 计数器指令

    3.3.1 计数器的结构

    计数器是一种由位和字组成的复合单元,计数器的输出由位表示,其计

    数值存储在字存储器中。在 CPU 的存储器中留出了计数器区域,该区域用于

    存储计数器的计数值。每个计数器为 2 个字节(Byte),称为计数字。在 S7

    —300 中,计数器区为 512 个字节(Byte),因此最多允许使用 256 个计数器。

    计数器的第 0到第 11位存放 BCD码格式的计数值,三位 BCD码表示的范围是 0~999。第 12~15位没有用途。

    S7中的计数器用于对 RLO正跳沿计数。S7中有三种计数器,它们分别

    是:加计数器、减计数器和可逆计数器。只要计数器的计数值不是“0”,计数器的输出就为“1”。 当计数器启动时,累加器 1低字的内容被当作计数初值装入计数字中。

    这一过程是由操作系统控制自动完成的,用户只需给累加器 l装入不同的数值,即可设置需要的计数初值。

    L C# xyz 其中: xyz=记数初值,取值范围:1到 999。 FBD符号:

    可逆计数器 加计数器 减计数器

    端子说明: CU —— 加计数输入 CD —— 减计数输入 S —— 预置输入 PV —— 设置计数初值 R —— 复位输入 Q —— 计数器状态输出

    CV —— 当前计数值输出(十六进制格式)

    注意与定时器

    结构的异同点

  • 教 案 教 学 内 容 备 注

    例 3.3.1 FBD 功能图如下:

    STL 语句表如下:

    A I 0.0

    CU C 10 \\计数器加计数

    A I 0.1

    CD C 10 \\计数器减计数 A I 0.2

    S C 10 \\计数初值预置

    L C#55 \\装入计数初值到 ACCU1 A I 0.3

    R C 10 \\计数器 C10复位 A C 10

    = Q 4.0

    当输入信号 I 0.2 由“0”变为“1”时,计数初值 55 被装入计数器 C10;

    如果输入信号 I 0.0 由“0”变为“1”,计数器 C10 的计数值加 1(除非 C10的计数值已达到 999);

    如果输入信号 I 0.1 由“0”变为“1”,计数器 C10的计数值减 1;(除非 C10的计数值已减到 0);

    如果输入信号 I 0.3 由“0”变为“1”,计数器 C10 被复位,计数值为 0;

    只要计数器 C10 的计数值不为 0,则 Q 4.0 输出就为“1”。

    3.3.2 计数器再启动指令 FR Enable Counter 格式: FR 类似于定时器再启动指令 FR,计数器再启动指令用于重新装载

    计数初值,计数器以新装入的计数值运行。

    要求熟记计数

    器各端子的名

    称及作用

    教 案 教 学 内 容 备 注

    28

  • 29

    3.4 装入和传输指令

    3.4.1 装入和传输指令

    装入(L)和传送(T)指令可以在存储区之间或存储区与过程输入、输出

    之间交换数据。L指令将源操作数装入累加器 l中,而累加器原有的数据移

    入累加器 2中,累加器 2中原有的内容被覆盖。T指令将累加器 1中的内容

    写入目的存储区中,累加器的内容保持不变。L和 T指令可对字节(8 位)、

    字(16 位)、双字(32 位)数据进行操作,当数据长度小于 32 位时,数据在

    累加器右对齐(低位对齐),其余各位填 0。基本的装入和传送指令如下:

    L 通用装入指令 L STW 将状态字寄存器的内容装入到累加器 1 LAR1 AR2 将地址寄存器 2的内容装入到地址寄存器 1 LAR1 将 32 位的长整数装入到地址寄存器 1 LAR1 将累加器 1的内容装入到地址寄存器 1 LAR2 将 32 位的长整数装入到地址寄存器 2 LAR2 将累加器 1的内容装入到地址寄存器 2 T 通用传输指令 T STW 将累加器 1的内容传输到状态字寄存器 TAR1 AR2 将地址寄存器 1的内容传输到地址寄存器 2 TAR1 将地址寄存器 1的内容传输到目的单元(32 位) TAR2 将地址寄存器 1的内容传输到目的单元(32 位) TAR1 将地址寄存器 1的内容传输到累加器 1 TAR2 将地址寄存器 1的内容传输到累加器 2 CAR 交换地址寄存器的 1的内容和地址寄存器 2的内容交换

    利用投影仪 概括讲解

    教 案

  • 3.4.2 状态字

    状态字用于表示 CPU 执行指令时所具有的状态。一些指令是否执行或以

    何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字

    中的某些位,也能在位逻辑指令或字逻辑指令中访问并检测他们。状态字

    的结构如下:

    31⋯⋯⋯⋯⋯9 8 7 6 5 4 3 2 1 0

    BR CC1 CC0 OS OV OR STA RLO FC

    (1) 首位检测位( FC) 状态字的位 0称为首位检测位。若 FC位的状态为 0,则表明一个梯形逻

    辑网络的开始,或指令为逻辑串的第一条指令。CPU 对逻辑串第一条指令的

    检测(称为首位检测)产生的结果直接保存在状态字的 RLO 位中,经过首

    次检测存放在 RLO 中的 0 或 1 被称为首位检测结果。 FC位在逻辑串的开始时总是 0,在逻辑串指令执行过程中 FC位为 1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将 FC清 0。 (2) 逻辑操作结果(RLO)

    状态字的位 1称为逻辑操作结果 RLO(Result of Logic Operation)。

    该位存储逻辑指令或算术比较指令的结果。在逻辑串中,RLO 位的状态能够

    表示有关信号流的信息。RLO 的状态为 1,表示有信号流(通);为 0,表示

    无信号流(断)。可用 RLO 触发跳转指令。

    (3) 状态位(STA)

    状态字的位 2称为状态位。状态位不能用指令检测,它只是在程序测试

    中被 CPU 解释并使用。如果一条指令是对存储区操作的位逻辑指令,则无

    论是对该位的读或写操作,STA 总是与该位的值取得一致;对不访问存储区

    的位逻辑指令来说,STA 位没有意义,此时它总被置为 1。

    (4) 或位(OR)

    状态字的位 3 称为或位(OR)。在先逻辑“与”后逻辑“或”的逻辑串

    中,OR 位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。

    其它指令将 OR 位清 0。

    (5) 溢出位(OV)

    状态字的位 4称为溢出位。溢出位被置 1,表明一个算术运算或浮点数

    比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。后面的

    算术运算或浮点数比较指令执行结果正常的话 OV 位就被清 0。

    (6) 溢出状态保持位(OS)

    状态字的位 5称为溢出状态保持位(或称为存储溢出位)。OV 被置 1

    时 OS 也被置 1;OV 被清 0时 OS 仍保持。所以它保存了 OV 位,可用于指明

    在先前的一些指令执行中是否产生过错误。只有下面的指令才能复位OS位:

    JOS(OS=1 时跳转);块调用指令和块结束指令。

    此节是重点又

    是难点对各状

    态位的要求不

    同 一般了解 熟练掌握 一般了解 充分理解 熟练掌握 熟练掌握

    教 案 30

  • 31

    教 学 内 容 备 注

    (7) 条件码 1(CC1)和条件码 0(CC0)

    状态字的位 7和位 6称为条件码 1和条件码 0。这两位结合起来用于表示在累加器 1 中产生的算术运算或逻辑运算结果与 0 的大小关系;比较指令的执行结果或移位指令的移出位状态。详见表 4.4.2.1 和表 4.4.2.2。

    4.4.2.1 算术运算后的 CC1 和 CC0

    CCl CCO 算术运算

    无溢出

    整数算术运算

    有溢出

    浮点数算术运算

    有溢出

    0 0 结果=0 整数加时产生负

    范围溢出 平缓下溢

    0 1 结果<0

    乘时负范围溢

    出;加、减、取负

    时正溢出

    负范围溢出

    1 0 结果>0 乘、除时正溢出;

    加、减时负溢出 正范围溢出

    1 1 - 在除时除数为 0 非法操作

    4.4.2.2 比较、移位和循环移位、字逻辑指令后的 CC1 和 CC0

    CCl CCO 比较指令 移位和循环指令 字逻辑指令

    0 0 累加器 2=累加器 1 移位=0 结果=0

    0 1 累加器 2<累加器 1 - -

    1 0 累加器 2>累加器 1 - 结果≠0

    1 1 不规范

    (只用于浮点数比较) 移出位=1 -

    (8) 二进制结果位(BR)

    状态字的位 8称为二进制结果位。它将字处理程序与位处理联系起来,

    在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确(异

    常)。将 BR 位加入程序后,无论字操作结果如何,都不会造成二进制逻辑

    链中断。在 LAD 的方块指令中,BR 位与 ENO 有对应关系,用于表明方块指

    令是否被正确执行:如果执行出现了错误,BR 位为 0,ENO 也为 0;如果功

    能被正确执行,BR 位为 1,ENO 也为 1。

    在用户编写的 FB 和 FC 程序中,必须对 BR 位进行管理,当功能块正确

    运行后使BR位为1,否则使其为0。使用STL指令SAVE或LAD指令——(SAVE),

    可将 RLO 存入 BR 中,从而达到管理 BR 位的目的。当 FB 或 FC 执行无错误

    时,使 RLO 为 1 并存入 BR,否则,在 BR 中存入 0。

    充分理解

    熟练掌握

    教 案 教 学 内 容 备 注

  • 32

    3.4.3 读取或传送状态字

    LSTW //将状态字中 0—8位装入累加器 1中,累加器 9—31 位被清

    0

    TSTW //将累加器 1中的内容传送到状态字中

    注:对 S7-300 系列的 CPU, LSTW 不对状态字中的 SC、STA、OR 位进

    行操作,仅将状态字中的 1,4,5,6,7 位装入累加器 1的对应位。

    3.4.4 装入时间值或计数值

    定时器字中的剩余时间值以二进制格式保存,用 L指令从定时器字中读

    出二进制时间值装入累加器 1中,称为直接装载。也可用 LC 指令以 DCD 码

    格式读出时间值,装入累加器 1 低字中,称为 BCD 码格式读出时间值。以

    BCD 码格式装入时间值可以同时获得时间值和时基,时基与时间值相乘就得

    到定时剩余时间。

    L T1 //将定时器 T1 中二进制格式的时间值直接装入累加器 1 的低字

    LC T1 //将定时器 T1 中的时间值和时基以 BCD 码格式装入累加器 1 低

    字中

    对当前计数值也可以直接装载和以 BCD 码格式读出当前计数值。

    L C1 //将计数器 C1 中计数值以二进制格式装入累加器 1的低字中

    LC C1 //将计数器 C1 中的计数值以 BCD 码格式装入累加器 1低字中

    3.4.5 地址寄存器装入和传送

    对于地址寄存器,可以不经过累加器 1 而直接将操作数装入或传出,

    或将两个地址寄存器的内容直接交换。

    指令格式: LAR1

    说明:将操作数的内容装入地址寄存器 1(ARl);

    指令格式: LAR2

    说明:将操作数的内容装入地址寄存器 2(AR2);

    指令格式:TAR1

    说明:将 ARl 的内容传送给存储区或 AR2;

    指令格式:TAR2

    说明:将 ARl的内容传送给存储区或 AR2; 指令格式:CAR

    说明:交换 ARl 和 AR2 的内容

    熟练掌握

    一般了解

    教 案 教 学 内 容 备 注

  • 例 3.4.2

    LARl P#I0.0 //将输入位 I0.0 的地址指针装入 ARl

    LAR2 P#0.0 //将二进制数 2#00000000 00000000 00000000 00000000

    装入 AR2

    LAR1 P#Start //将符号名为 Start 的存储器的地址指针装入 ARl

    LARl AR2 //将 AR2 的内容装入 ARl

    LARl DBD20 //将数据双字 DBD 20 的内容装入 ARl

    TARl AR2 //将 ARl 的内容传送至 AR2

    TAR2 //将 AR2 的内容传送至累加器 1

    TARl MD 20 //将 ARl 的内容传送至存储器双字 MD 20

    CAR //交换 ARl 和 AR2 的内容

    3.4.6.传送指令

    FBD 符号:

    端子说明: EN —— 允许输入端 IN —— 源数据输入端 OUT —— 目的操作数输出 ENO —— 允许输出端

    例 3.4.3

    语句表如下:

    A I 0.0 JNB _0001 L MW 10 T DBW 12 SET // 使 RLO为 1 SAVE // 使 BR为 1 CLR _0001: A BR = Q 4.0

    重点要求

    课程 可编程控制技术 班级 电气工程自动化 学期 5

    课时 4h 累计课时 32h 教师 上课日期

    33

  • 34

    课程类型 理论,实验。

    第三章 指令系统

    课程名称

    (章、节)

    3.5 比较指令 Comparision Instructions

    3.6 转换指令 Conversion Instructions

    教学目的

    要 求 使学生掌握西门子 S7-300 系列可编程控制器的比较指令以及转换指令。

    教学重点 比较指令。

    教学难点 不同类型数据的转换。

    主要教具

    设备材料 投影仪、S7-300 可编程控制器、计算机及编程软件

    课后记

    学习本章可以让学生结合学习单片机的有关指令充分理解,同时又要注意与

    单片及类似指令的不同点。

    这两节内容都只要求理解即可

    教 案

    教 学 内 容 备 注

  • 35

    3.5.比较指令

    比较指令用于比较累加器 2与累加器 1中的数据大小。比较时应确保两个数的数据类型相同,数据类型可以是整数、长整数或实数.若比较的结果

    为真,则 RLO为 1,否则为 0。比较指令影响状态字,用指令测试状态字有关位,可得到两个数更详细的情况。 3.5.1 比较两个整数或长整数

    指令 说 明 = =I = =D

    比较累加器 2低字中的整数是否等于累加器 1低字中的整数 比较累加器 2中的长整数是否等于累加器 1中的长整数

    <>I <>D

    比较累加器 2低字中的整是否不等于累加器 1低字中的数 比较累加器 2中的长整数是否不等于累加器 1中的长整数

    >I >D

    比较累加器 2低字中的整数是否大于累加器 l低字中的整数 比较累加器 2中的长整数是否大于累加器 1中的长整数

    <I <D

    比较累加器 2低字中的整数是否小于累加器 1低字中的整数 比较累加器 2中的长整数是否小于累加器 l中的长整数

    >=I >=D

    比较累加器 2低字中的数是否大于等于累加器 l低字中的数 比较累加器 2中的长整数是否大于等于累加器 1中的长整数

    <=I <=D

    比较累加器 2低字中的整是否小于等于累加器 1低字中的整 比较累加器 2中的长整数是否小于等于累加器 1中的长整数

    例 3.5.1: 比较存储字MW10和输入字 IW10中整数的大小。如果两个整数相等,

    则输出 Q 4.0为 1;若MW10中的数大,则输出 Q 4.1为 1;若 IW10中的数大,则输出 Q 4.2为 1。

    L MW 10 // 第一个待比较的数装入累加器 1

    L IW // 第二个待比较的数装入累加器 l,第一个数被装入累加

    器 2

    ==I

    = Q 4.0 // 若(MW 10)=(IW10),则 Q 4.0 为 l,否则为 0

    >I

    = Q 4.1 // 若(MW 10)>(1W10),则 Q 4.1 为 1,否则为 0

    <I

    = Q 4.2 // 若(MWl0)<(IWl0),则 Q 4.2 为 l,否则为 0

    利用投影仪讲

    教 案

    教 学 内 容 备 注

  • 36

    3.5.2 比较两个实数 指 令 说 明 = =R 比较累加器 2中的 32位实数是否等于累加器 l中的实数 <>R 比较累加器 2中的 32位实数是否不等于累加器 l中的实数 >R 比较累加器 2中的 32位实数是否大于累加器 1中的实数 <R 比较累加器 2中的 32位实数是否小于累加器 1中的实数 >=R 比较累加器 2中的 32位实数是否大于等于累加器 1中的数 <=R 比较累加器 2中的 32位实数是否小于等于累加器 l中的数

    例 3.5.2: 如果存储双字 MD 24 中的实数大于 1.0,则输出 Q 4.1 为 1;若小于 1.0

    则输出 Q 4.2 为 1。

    L MD 24 L +1.359E+02

    >R

    = Q 4.1 //若(MD 24)>+1.359E+02,Q 4.1 为 1,否则为 0

    <R

    = Q 4.2 //若(MD 24)<+1.359E+02,Q 4.2 为 l,否则为 0

    例 3.5.3 这是一个限值监测程序,当数据字 DBWl5 的值大于 l05 时,输出 Q 4.0

    为 1;当数据字 DBWl5 的值小于 77 时,输出 Q 4.1 为 1;数值在 77 到 105

    范围内时,输出 Q 4.0 和 Q 4.1 均为 0。下面是与其对应的语句表程序:

    L DBW 15

    L +l05

    >I

    = Q 4.0

    L DBW 15

    L +77

    <I

    = Q 4.1

    一般了解,不作

    为重点

    教 案

    教 学 内 容 备 注

  • 3.6. 转换指令

    转换指令将累加器 1 中的数据进行类型转换,转换的结果仍在累加器 l中。能够实现的转换操作有:BCD码和整数及长整数间的转换,实数和长整数间的转换,数的取反、取负,字节扩展等。 在 STEP 7中,整数和长整数是以补码形式表示的。BCD码数值有两种:

    一种是字(16 位)格式的 BCD 码数,其数值范围从-999 到+999;另一种是双字(32位)格式的 BCD码数,范围从-9999999到+9999999。 3.6.1 BCD和整数间的转换

    指令 说 明 BTI 将累加器 1低字中的 3位 BCD码数转换为 16位整数 BTD 将累加器 1中的 7位 BCD码数转换为 32位整数 ITB 将累加器 1低字中的 16位整数转换为 3位 BCD码数 ITD 将累加器 l低字中的 16位整数转换为 32位整数 DTB 将累加器 1中的 32位整数转换为 7位 BCD码数 DTR 将累加器 1中的 32位整数转换为 32位浮点数

    BTI 指令

    SLT 格式: BTI

    说明:将累加器 1低字中的 3位 BCD码数转换为 16位整数,装入累加器 1的低字中(0~11位);低字的最高位(15位)为符号位。

    累加器 1的高字及累加器 2的内容不变。 例 3.6.1 L MW 10

    BTI

    T MW20

    BTD 指令

    SLT 格式: BTD

    说明:将累加器 1中的 7位 BCD码数转换为 32位整数,装入累加器 1中,(0~27位);最高位(31位)为符号位。

    注意 BCD 码的

    格式

    教 案

    教 学 内 容 备 注

    37

  • ITB 指令

    SLT 格式: ITB

    说明: 将累加器 1低字中的 16位整数转换为 3位 BCD码数,16位整数的范围是-999~+999。如果欲转换的数据超出范围,则有溢出发生,同时将 OV 和 OS 位置位。

    累加器 1的低字中(0~11位)存放三位 BCD码。(12~15)位作为符号位,(0000)表示正数,(1111)表示负数。累加器 1高字(16~31位)不变。

    例 3.6.2

    L MW 10

    ITB

    T MW20

    ITD 指令

    SLT 格式: ITD

    说明: 将累加器 l低字中的 16位整数转换为 32位整数,16位整数的范围是-999~+999。如果欲转换的数据超出范围,则有溢出发生,同时将 OV 和 OS 位置位。 累加器 1 的低字中(0~11 位)存放三位 BCD码。(12~15)位

    作为符号位,(0000)表示正数,(1111)表示负数。累加器 1 高字(16~31位)不变。

    例 3.6.3 L MW 10

    ITB

    T MW20

    注意转换后符

    号位的情况

    教 案

    教 学 内 容 备 注

    38

  • DTB 指令

    SLT 格式: DTB

    说明: 将累加器 1中的 32位整数转换为 7位 BCD码数,32位整数的范围是-9999999~+9999999。如果欲转换的数据超出范围,则有溢出发生,同时将 OV 和 OS 位置位。 累加器 1中(0~27位)存放 7位 BCD码。(28~31)位作为符

    号位,(0000)表示正数,(1111)表示负数。 例 3.6.4

    L MD 10

    DTB

    T MD20

    DTR 指令

    SLT 格式: DTR

    说明: 将累加器 1中的 32位整数转换为 32位浮点数(IEEE-FP) 例 3.6.5

    L MD 10

    DTR

    T MD20

    一般了解,不作

    为重点

    教 案

    教 学 内 容 备 注

    39

  • 40

    3.6.2 实数和长整数间的转换

    指 令 说 明 RND 将实数化整为最接近的整数。 RND+ 将实数化整为大于或等于该实数的最小整数 RND- 将实数化整为小于或等于该实数的最大整数 TRUNC 取实数的整数部分(截尾取整)

    因为实数的数值范围远大于 32 位整数,所以有的实数不能成功地转换为 32位整数。如果被转换的实数格式非法或超出了 32位整数的表示范围,则在累加器 1中得不到有效结果,而且状态字中的 OV和 OS被置 1。

    上面的指令都是将累加器 1 中的实数化整为 32 位整数,因化整的规则不同,所以在累加器 1中得到的结果也不一致,如下表

    累加器 l内容 执行的 指令 化整前 化整结果

    说 明

    RND +99.5 +100 将实数化整为最接近的整数

    RND+ +99.5 +100 将实数化整为大于或等于该实数的最小整数

    RND- +99.5 +99 将实数化整为小于或等于该实数的最大整数

    TRUNC +99.5 +99 只取实数的整数部分(截尾取整)

    3.6.3 数的取反取负

    指 令 说 明

    INVI 对累加器 l低字中的 16 位整数求反码

    INVD 对累加器 1中的 32 位整数求反码

    NEGI 对累加器 1低字中的 16 位整数求补码。相当于乘-1

    NEGD 对累加器 1中的 32 位整数求补码。相当于乘-1

    NEGR 对累加器 1中的 32 位实数的符号位求反码

    对累加器中的数求反码,即逐位将 0变为 1,1变为 0。对累加器中的整数求补码,则逐位取反,再对累加器中的内容加 1。对一个整数求补码相当于对该数乘以-1。实数取反是将符号位取反。

    此节内容要求

    一般了解

    注意与计算机

    中反码、补码意

    义上的区别

    教 案

    教 学 内 容 备 注

  • INVI 指令

    INVD 指令

    NEGI 指令

    NEGD 指令

    NEGR 指令

    注意各条指令

    的意义及相互

    区别

    教 案

    教 学 内 容 备 注

    41

  • 3.6.4 字节交换指令

    CAW 累加器 1低字字节交换指令 格式: CAW 说明: 将累加器 1低字的高位字节和低位字节交换,高字不变。

    ACCU1_H-H ACCU1_H-L ACCU1_L-H ACCU1_L-L

    CAW 指令执行前 数据 A 数据 B 数据 C 数据 D

    CAW 指令执行后 数据 A 数据 B 数据 D 数据 C

    CAD 累加器 1字节交换指令

    格式: CAD

    说明:累加器 1中的 4个字节进行整字节交换。交换顺序如下:

    ACCU1_H-H ACCU1_H-L ACCU1_L-H ACCU1_L-L

    CAD 指令执行前 数据 A 数据 B 数据 C 数据 D

    CAD 指令执行后 数据 D 数据 C 数据 B 数据 A

    注意两条指令

    的区别

    课程 可编程控制技术 班级 电气工程自动化 学期 5

    课时 4h 累计课时 36h 教师 上课日期

    42

  • 43

    课程类型 理论,实验。

    第三章 指令系统

    课程名称

    (章、节)

    3.7 算术运算指令 Math Instructions

    教学目的

    要 求 使学生掌握西门子 S7-300 系列可编程控制器的算术运算指令。

    教学重点 西门子 S7-300 系列的算术运算指令。

    教学难点 浮点数的运算。

    主要教具

    设备材料 投影仪、S7-300 可编程控制器、计算机及编程软件

    课后记 西门子 S7 系列可编程序控制器的算术运算功能非常强大,这里我们只要求

    学生掌握整数算术运算指令,对浮点数算术运算指令只要求一般理解

    教 案

    教 学 内 容 备 注

  • 3.7 算术运算指令

    3.7.1 整数算术运算指令 在 STEP 7中可以对整数、长整数和实数进行加、减、乘、除算术运算。

    算术运算指令在累加器 1和 2中进行,在累加器 2中的值作为被减数或被除数。算术运算的结果保存在累加器 1中,累加器 1原有的值被运算结果覆盖,累加器 2中的值保持不变。

    CPU在进行算术运算时,不必考虑 RLO,对 RLO也不产生影响。学习算术运算指令必须注意算术运算的结果将对状态字的某些位产生影响,这些

    位是:CC1和 CC0,OV,OS。在位操作指令和条件跳转指令中,经常要对这些标志位进行判断来决定进行什么操作。

    +I 16位整数相加指令 -I 16位整数相减指令 *I 16位整数相乘指令 / I 16位整数除法指令 +D 32位整数相加指令 -D 32位整数相减指令 * D 32位整数相乘指令 / D 32位整数除法指令 MOD 32位整数除法取余数指令

    例 3.7.1

    L MW0 // 将MW 0中的值装入累加器 1低字 L MW2 // 将 MW 2 中的值装入累加器 1 低字,累加器 1

    低字中的原值移入累加器 2低字 +I // 将累加器 l低字和累加器 2中的低字相加

    T MW10 // 将运算结果送到MW 10 * FBD 格式

    与 STL 语句表指令不同处在于多了使能输入端 EN 和使能输出端 ENO。只

    有当 I 0.0=1 时,才进行加法运算。如果运算的结果超出范围或者 I 0.0

    =0,则 Q 4.0=0。

    注意算术运算

    指令对 CC1 和

    CC0,OV,OS 的

    影响

    教 案 教 学 内 容 备 注

    44

  • 3.7.2 浮点数算术运算指令 S7300系列 CPU 可以处理符合 IEEE标准的 32位浮点数。可以完成 32

    位浮点数的加、减、乘、除运算,以及取绝对值、平方、开平方、指数、对

    数、三角函数、反三角函数等指令。 基本的浮点数算术运算指令

    STL 指令

    FBD符号 说 明

    +R

    将累加器 1,2 中的 32 位浮点数相加,32位结果保存在果加器 1中。

    -R

    用累加器 2 中的 32 位浮点数减去累加器 1中的浮点数,结果保存在累加器 1中。

    *R

    将累加器 l,2 中的 32 位浮点数相乘,32位乘积保存在累加器 1中。

    /R

    用累加器 2 中的 32 位浮点数除以累加器 1中的浮点数,32位商保存在累加器 1中。

    ABS

    对累加器 l中的 32位浮点数取绝对值。

    一般介绍,不做

    重点

    教 案 教 学 内 容 备 注

    45

  • 扩展的浮点数算术运算指令

    STL指令 FBD符号 说 明

    SQR 求累加器 1中的 32位浮点数的平方值。

    SQRT 求累加器 1中的 32位浮点数的开平方值

    EXP 求累加器 1中的 32位浮点数以 e为底的指数

    LN 求累加器 1中的 32位浮点数的自然对数

    SIN 求累加器 1中的 32位浮点数的正弦值

    COS 求累加器 1中的 32位浮点数的余弦值

    TAN 求累加器 1中的 32位浮点数的正切值

    ASIN 求累加器 1中的 32位浮点数的反正弦值

    ACOS 求累加器 1中的 32位浮点数的反余弦值

    ATAN 求累加器 1中的 32位浮点数的反正切值

    利用投影仪

    课程 可编程控制技术 班级 电气工程自动化 学期 5

    课时 4h 累计课时 40h 教师 上课日期

    46

  • 47

    课程类型 理论,实验。

    第三章 指令系统

    课程名称

    (章、节)

    3.8 移位和循环指令 Shift and Rotate Instructions

    3.9 数据块指令 Data Block Instructions

    3.10 字逻辑指令 Word Logic Instructions

    教学目的

    要 求

    使学生掌握西门子 S7-300 系列可编程控制器的移位和循环指令、数据块指

    令、字逻辑指令。

    教学重点 数据块指令。

    教学难点 移位和循环指令的应用。

    主要教具

    设备材料 投影仪、S7-300 可编程控制器、计算机及编程软件

    课后记 本节移位和循环指令同单片机有关指令雷同。注意引导同学结合计算机汇编

    语言指令来学习,有助于帮助加深理解。

    教 案 教 学 内 容 备 注

  • 3.8 移位和循环指令

    3.8.1 移位指令 移位指令可以可以将累加器 1 的低字或整个累加器的内容进行左移或右移一定的位数。二进制数左移一位相当于将原数值乘以 2。右移一位相当于将原数值除以 2。 参数 N 表示移位的次数。移出的空位根据不同的指令由 0或符号位的状态填充。最后移出的位的状态同时被装入到状态字的 CC1位,CC0和 OV位被复位。

    SSI 16位整数右移指令 SSD 32位整数右移指令 SLW 逻辑字左移指令 SRW 逻辑字右移指令 SLD 逻辑双字左移指令 SRD 逻辑双字右移指令 例 3.8.1

    FBD符号:

    STL指令格式: SSI

    1.当使能输入端 EN = 1时,执行整数右移指令。将来自输入端 IN的 16位整数右移 N位后,由 OUT端输出。

    2.N端输入要移位的次数,如果 N 大于 16则其作用与 N = 16 相同。 3.移出的空位由符号位的状态填充,如果是正数,以 0 填充,如果是负

    数,以 1填充。 4.如果 N不等于 0,则执行该指令后,CC0和 OV位总是等于 0。 5.ENO = EN

    注意各条指令

    执行前后操作

    数的变化。

    教 案 教 学 内 容 备 注

    48

  • 3.8.2 循环指令 RLD 32位左循环指令 RRD 32位右循环指令 RLDA 32位带 CC1位左循环指令 RRDA 32位带 CC1位右循环指令

    例 3.8.2

    FBD符号:

    * STL指令格式: RLD

    说明: 1.当使能输入端 EN = 1时,执行双字左循环指令。将来自输入端 IN的 32位双字左循环 N位后,由 OUT端输出。

    2.N端输入要移位的次数。 3.如果 N不等于 0,则执行该指令后,CC0和 OV位总是等于 0。

    4.ENO = EN

    结合实例讲解

    循环指令的意

    义及应用

    教 案 教 学 内 容 备 注

    49

  • 50

    3.9 数据块指令

    打开数据块 指令格式:OPN 说明:打开一个数据块作为 shared数据块(DB)或者作为 instance

    数据块(DI)。 可以同时打开一个 shared数据块和一个 instance数据块。

    例 4.9.1: OPN DB 10 // 打开数据块 DB 10作为 shared数据块 L DB W35 // 将 DB 10的数据字W35装入到累加器

    1的低字。 T M W22 // 将累加器 1的低字传输到M W22。 OPN DI 20 // 打开数据块 DI 20作为 instance数据块 L DI B12 // 将 DI 20的数据字节 B12装入到累加

    器 1的低字 T DB B37 // 将累加器 1的低字传输到 DB 10的字

    节 37中。 交换 shared数据块和 instance数据块

    指令格式:CDB 说明:交换 shared数据块和 instance数据块。

    shared数据块变成 instance数据块, instance数据块变成 shared数据块。

    装 shared数据块的长度到累加器 1 指令格式:L DBLG 说明:将 shared数据块的长度装到累加器 1。

    装 shared数据块的数目到累加器 1 指令格式:L DBNO 说明:将 shared数据块的数目装到累加器 1。

    装 instance数据块的长度到累加器 1 指令格式:L DILG 说明:将 instance数据块的长度装到累加器 1。

    装 instance数据块的数目到累加器 1 指令格式:L DINO 说明:将 instance数据块的数目装到累加器 1。

    此为重点要求

    必须掌握。 一般了解

    教 案 教 学 内 容 备 注

  • 3.10字逻辑指令 字逻辑指令将两个字(16位)或两个双字(32位)逐位进行逻辑运算。两个

    数中的一个在累加器1中,另一个可以在累加器2中或在指令中以立即数(常数)的方式给出,字逻辑运算指令的逻辑运算结果放在累加器 1低字中,双字逻辑运算结果存放在累加器 1中累加器 2的内容保持不变。

    逻辑运算结果影响状态字的标志位。如果逻辑运算的结果为 0,则 CCl位被复位为 0。如果逻辑运算的结果非 0,则 CCl被置为 1。

    在任何情况下,状态字中的 CC0和 OV位都被复位为 0。 AW 16位字逻辑与指令 OW 16位字逻辑或指令 XOW 16位字逻辑异或指令 AD 32位双字逻辑与指令 OD 32位双字逻辑或指令 XOD 32位双字逻辑异或指令 例 3.10.1 FBD 符号:

    *STL语句格式: AW

    说明:当使能输入端 EN输入为“1”时,将来自 IN1和 IN2端的两个16位二进制数据逐位相与,结果由 OUT端输出。使能输出端 ENO=使能输入端 EN。 IN1 = 0101010101010101 IN2 = 0000000000001111

    OUT = 0000000000000101 例 3.10.2 FBD符号:

    *STL 语句格式: XOW

    说明:当使能输入端 EN输入为“1”时,将来自 IN1和 IN2端的两个16位二进制数据逐位相异或,结果由 OUT端输出。使能输出端 ENO=使能输入端 EN。

    重点掌握 特别注意其用

    途、意义

    课程 可编程控制技术 班级 电气工程自动化 学期 5

    课时 2h 累计课时 42h 教师 上课日期

    51

  • 52

    课程类型 理论,实验。

    第三章 指令系统

    课程名称

    (章、节)

    3.11 逻辑控制指令 Logic Control Instructions

    3.12 程序控制指令 Program Control Instructions

    教学目的

    要 求

    使学生掌握西门子 S7-300 系列可编程控制器的逻辑控制指令、程序控制指

    教学重点 逻辑控制指令、程序控制指令

    教学难点 逻辑控制指令的条件转移指令

    主要教具

    设备材料 投影仪、S7-300 可编程控制器、计算机及编程软件

    课后记

    此节内容不多,但很重要。只有充分掌握了本节的内容,才能编写出有一

    定水平的实际应用程序,要引导学生对此有足够的重视。认真学习,争取做

    到对逻辑控制指令和程序控制指令运用自如。

    教 案

    教 学 内 容 备 注

  • 53

    3.11 逻辑控制指令 逻辑控制指令是指逻辑块内的跳转和循环指令。跳转或循环指令的操作

    数是地址标号,该地址标号指出程序要跳往何处,标号最多为 4个字符,第一个字符必须是字母,其余字符可为字母或数字。 3.11.1 无条件跳转指令

    JU 无条件跳转指令 JL 跳转表格指令

    3.11.2 件跳转指令 JC 当 RLO = 1 时跳转 JCN 当 RLO = 0 时跳转 JCB 当 RLO = 1 并且 BR = 1 时跳转 JNB 当 RLO = 0 并且 BR = 0 时跳转 JBI 当 BR = 1 时跳转 JNBI 当 BR = 0 时跳转 JO 当 OV = 1 时跳转 JOS 当 OS = 1 时跳转 JZ 累加器 1中的计算结果为零跳转 JNZ 累加器 1中的计算结果不为零跳转 JP 累加器 1中的计算结果为正数跳转 JM 累加器 1中的计算结果为负数跳转 JPZ 累加器 1中的计算结果大于等于零跳转 JMZ 累加器 1中的计算结果小于等于零跳转 JUO 计算结果溢出跳转

    3.11.3 程序控制指令 BE 块结束指令 BEC 条件块结束指令

    RLO=1,结束当前块的扫描,将控制返还给调用块. 若 RLO=0,则将 RLO 置 1,程序继续在当前块内扫描

    BEU 无条件块结束指令 该指令无条件结束当前块的扫描,将控制返还给调用块

    重点讲解要求

    学生熟练掌握