S7-200PLC编程及应用(廖常初第2版)习题参考答案报告 下载本文

第4章习题答案

1.填空

1)如果方框指令的EN输入端有能流且执行时无错误,则ENO输出端 有能流输出 。 2)字符串比较指令的比较条件只有 == 和 <> 。

3)主程序调用的子程序最多嵌套_8_层,中断程序调用的子程序_不能_嵌套。 4)VB0的值为2#1011 0110,循环右移2位然后左移4位为2# 1101 0000 。 5)读取实时时钟指令TODR读取的日期和时间的数制为 BCD码 。

6)执行“JMP 2”指令的条件 满足 时,将不执行该指令和 LBL 2 指令之间的指令。 7)主程序和中断程序的变量表中只有 临时 变量。

8)S7-200 SMART有6个高速计数器,可以设置13种不同的工作模式。 9)HSC0的模式3的时钟脉冲为I0.0,用I0.1控制方向。

2.在MW4小于等于1247时,令M0.1为ON并保持,反之将M0.1复位为OFF。 LDW<= MW4, 1247 S M0.1, 1

LDW> MW4, 1247 R M0.1, 1

3.编写程序,在I0.0的上升沿将VW10~VW58清零。 LD I0.0 EU

FILL 0, VW10, 25

5.编写程序,将VW0中以0.01Hz为单位的0~99.99Hz的整数格式的频率值,转换为4位BCD码,送给QW0,通过4片译码芯片和七段显示器显示频率值(见图3-6)。

LD SM0.0 MOVW VW0, QW0 IBCD QW0

6.用I0.0控制接在QB0上的8个彩灯是否移位,每1s移1位。用I0.1控制左移或右移,首次扫描时将彩灯的初始值设置为十六进制数16#0E(仅Q0.1~Q0.3为ON),设计出梯形图程序。

7.用I1.0控制接在QB0上的8个彩灯是否移位,每1s移1位。用IB0设置彩灯的初始值,在I1.1的上升沿将IB0的值传送到QB0,设计出梯形图程序。

8.用实时时钟指令设计控制路灯的程序,20:00时开灯,06:00时关灯。

LD TODR LDB>= OB< =

SM0.0 VB0

// 读实时钟,小时值在VB3

// 20点~0点(日期、时间值用BCD码表示) // 0点~6点 // 点亮路灯

VB3, 16#20 VB3, 16#06 Q0.0

9.用实时时钟指令设计控制路灯的程序,在5月1日~10月31日的20:00开灯,06:00关灯;在11月1日~下一年4月30号的19:00开灯,7:00关灯。

LD

SM0.0

TODR

VB0 // 读实时钟,小时值在VB3,月日在VW1

LDW>= VW1, 16#1031 OW< VW1, 16#0501 = M0.0

LDB>= VB3, 16#20 OB< VB3, 16#06 AN M0.0 OB< VB3, 16#07 A M0.0 OLD = Q0.1

//冬季

//夏季

// 19点~7点开灯

LDB>= VB3, 16#19

// 20点~6点开灯

//冬季ON

10.半径(<10000的整数)在VW10中,取圆周率为3.1416。编写程序,用浮点数运算指令计算圆周长,运算结果四舍五入转换为整数后,存放在VW20中。

LD ITD DTR *R MOVW

SM0.0 VW10, AC1 AC1, AC1 3.1416, AC1 AC1, VW20

// 整数转换为双整数 // 双整数转换为实数 // 乘以3.1416

// 乘积四舍五入转换为双整数 // 低16位送VW20

ROUND AC1, AC1

第11题 编写语句表程序,实现运算VW2–VW4 = VW6。

LD I0.2 MOVW VW2, VW6 -I VW4, VW6

12.AIW2中A/D转换得到的数值0~32000正比于温度值0~1200?C。在I0.0的上升沿,将AIW2的值转换为对应的温度值存放在VW10中,设计出梯形图程序。 公式: T = 1200*N/32000

LD I0.3 MOVW AIW2, AC0 AENO

MUL 1200, AC0 AENO

/D 27648, AC0 AENO

MOVW AC0, VW10

13.以0.1度为单位的整数格式的角度值在VW0中,在I0.0的上升沿,求出该角度的正弦值,运算结果转换为以10?6为单位的双整数,存放在VD2中,设计出程序。

LD I0.0

EU LPS

ITD VW0, AC0 AENO

DTR AC0, AC0 AENO

/R 10.0, AC0 LRD

*R 0.01745329, AC0 AENO

SIN AC0, AC0 LPP

*R 1000000.0, AC0 AENO

ROUND AC0, VD2

16.编写程序,用字节逻辑运算指令,将VB0的高4位置为2#1001,低4位不变。 LD V0.4 MOVB VB0, LB0 AENO

ANDB 16#0F, LB0 AENO

MOVB LB0, VB0 ORB 16#90, VB0

17.编写程序,前后两个扫描周期VW4的值不变将M0.2复位,反之将M0.2置位。 LD I0.4 MOVW VW4, AC0 AENO

XORW VW6, AC0 AENO LPS

AW= AC0, 0 R M0.2, 1 LRD

AW<> AC0, 0