内容发布更新时间 : 2024/12/25 3:49:12星期一 下面是文章的全部内容请认真阅读。
14. 用循环移位指令设计一个彩灯控制程序,8路彩灯串按H1→H2→H3→…→H8的顺序依次点亮,且不断重复循环。各路彩灯之间的间隔时间为0.1s。
答:用PLC输出端点Q0.0~Q0.7分别控制彩灯H1~H8。I0.0接启动按钮开关常开触点,I0.1接停止按钮开关常开触点,控制程序见答案图19。
习题与思考题5-14: 彩灯控制程序(循环点亮) 网络1 // 起动/停止 LD I0.0 O M0.0 AN I0.1 = M0.0 网络2 // 停止 LD I0.1 R Q0.0, 8 网络3 // 灯1亮 LD M0.0 EU
S Q0.0, 1 网络4 // 计时0.1s LD M0.0
AN M0.1 TON T33, 10 网络5
LD T33 = M0.1
网络6 // 计时到后,循环左移 //,下一个灯亮 LD M0.1 RLB QB0, 1
答案图19
15. 用整数除法指令将VW100中的(240)除以8后存放到AC0中。 答:编程见答案图20。
26
习题与思考题5-15 网络1
LD M0.1
MOVW 240, VW100 MOVW VW100, AC0 /I +8, AC0
答案图20
16. 将AIW0中的有符号整数(3400)转换成(0.0~1.0)之间的实数,再将结果存人VD200。 答:S7-200 PLC的模拟量输入模块将模拟量转换成数字量后的典型量程范围为:
单极性:0~32000
双极性:-32000~32000
设模拟量输入量为双极性输入,则转换公式为
y?1x?0.5 64000式中,x为转换前的模拟量对应的数字量,y是转换后的实数值。
根据以上转换公式编制的程序如答案图21所示。
27
习题与思考题5-16 网络1
LD M0.1
ITD AIW0, AC0
DTR AC0, AC0
/R 64000.0, AC0
+R 0.5, AC0
MOVR AC0, VD200
答案图21
17. 将PID运算输出的标准化实数0.75先进行比例换算,然后再转换成一个有符号整数(INT),结果存入AQW2。
答:PID运算的输出结果为规格化的实数,范围在0~1.0之间。在将PID指令计算得到的PID回路的输出作为实际的模拟信号用于驱动实际负载之前,需要先将PID指令计算得到输出换算到实际需要的成比例的16位整数值,然后输出到模拟输出模块。转换公式如下
RScal?(Mn?Offset)*Span 式中,RSca1是与PID环路输出成比例的实数值;Mn是规格化的环路输出的实数值;Offset是偏移量,对单极输出是0.0,对双极输出是0.5;Span是实际输出的最大可能的数值减去最小可能的数值,对单极输出,典型值为32000,对双极输出,典型值为64000。
设输出为双极性(输出的整数范围为-32000~+32000),程序如答案图22所示。
28
习题与思考题5-17 网络1
LD M0.1
MOVR 0.75, AC0 -R 0.5, AC0
*R 64000.0, AC0
ROUND AC0, AC0
DTI AC0, LW0
MOVW LW0, AQW2
答案图22
18. 用定时中断设置一个每0.1s采集一次模拟量输入值的控制程序。 答:编程见答案图23。
习题与思考题5-18:
定时(0.1s)中断采集模拟量 网络1 // 首次扫描调用子程序0 LD SM0.1 CALL SBR0
答案图23
29
子程序0
网络1 // 网络标题
LD SM0.0
MOVB 100, SMB34
//设置中断0的时间间隔.01秒
ATCH INT0, 10 //连接中断服务程序 ENI
//全局性允许中断
中断程序0 网络1 // INT_0
// 每100 ms读取AIW2的值 LD SM0.0
MOVW AIW2, VW100
答案图23续
19. 按模式6设计高速计数器HSC1初始化子程序,设控制字节SMB47=16#F8。
答:要对高速计数器编程,必须完成下列基本任务:定义计数器和模式;设置控制字节;设置当前值(起始值);设置预设值(目标数值);分配和启用中断例行程序;激活高速计数器。
编程见答案图24。
20. 以输出点Q0.1为例,简述PTO多段操作初始化及其操作过程。
21. 用TODR指令从实时时钟读取当前日期,并将“星期”的数字用段码指令(SEG)显示出来。
答:执行读实时时钟指令TODR后,得到连续8个字节中的最高字节是“星期几”的BCD码,其中“1”表示星期日,“7”表示星期六,“0”被禁用,所以得到的参数需要修正。编程见答案图26。
30