第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