5-3、使用置位、复位指令,编写两套电动机(两台)的控制程序,两套控制程序要求如下: ①、启动时,电动机M1先启动,才能启动电动机M2;停止时,电动机M1、M2同时停止。
②、启动时、电动机M1、M2同时启动;停止时,只有在电动机M2停止时,电动机M1才
能停止。
解①、编辑的程序如下:
LD I0.0 S Q0.0, 1 TON T37, 50 LD T37 A Q0.0 S Q0.1, 1 LD I0.1 R Q0.0, 1 R Q0.1, 1
解②、编辑的程序如下:
LD I0.0 S Q0.0,1 S Q0.1,1 LD I0.1 R Q0.1,1 TON T33,+500 LD T33 R
Q0.0,1
5-4、设计周期为5S,占空比为20%的方波输出信号程序(输出点可以使用Q0.0).
6
解:输出方波程序如下:
LD I0.0 LPS A Q0.0 TON T33, +100 LRD 、编写断电延时5S后,M0.0和Q0.0置位的程序。 解:电延时5S后,M0.0和Q0.0置位的程序如下: A T33 EU R Q0.0, 1 LRD AN Q0.0 TON T34, +400 LPP A T34 EU
S Q0.1, 1
I0.0 TOF T37, +50 R M0.0,1 R Q0.0,1 T37
M0.0, 1 Q0.0, 1
7
5-5
LD
S S
LDN
5-6、运用算术指令完成下列算式的运算:
①、[(100+200)×10]/3 程序如下:
②、计算6
解:678 =EXP [68*LN (6)]
LD I0.0 MOVW +100, AC0 +I +200, AC0 MOVW AC0, AC1 *I +10, AC1 MOVW AC1, AC2 /I +3, AC2
LD I0.0 LN 6, AC0 MOVR AC0, AC1 *R 68, AC1
结果:AC1 = 1123266021 ③、求Sin(65°)的函数值8
解:先将65°化为弧度值,然后再求Sin值,程序如下:
LD MOVR /R *R SIN
运行结果:VD0 = 0.90631
5-7、用逻辑操作指令编写一段数据处理程序,将累加器AC0与VW100存储单元数据实现逻
辑与操作,并将运算结果存入累加器AC0中。 解:程序如下:
LD I0.0 LPS
MOV-W 380,AC0 LRD
MOV-W 260,VW100 LPP
MOV-W AC0,AC1 ANDW VW100,AC1 结果 VW300=260 I0.0
3.141592, AC0 180.0, AC0 65.0, AC0 AC0, VD10
9
5-8、编写一段程序,将VB100开始的50个字的数据传送到VB1000开始的存储区中。 解:先将VB100开始的50个字赋值,然后才传送。程序如下:
LD I0.0
FILL 5555,VW100,50 BMB VB100,VB1000,100
5-9、分析寄存器移位和左、右移位指令的区别。
答:?、当移位次数N = 正数,为左移。每个扫描周期,整个寄存器内容全部左移一位: ①、数据从最低位S_Bit移入
②、数据从最高位SMB移出,并送SM1.1
?、当移位次数N = 负数,为右移。每个扫描周期,整个寄存器内容全部右移一位: ①、数据从最高位SMB移入
②、数据从最低位S_Bit移出,并送SM1.1
?、寄存器移位,不论左移、右移,数据再SMB-S_Bit区间移动,其余位不管; ?、最高位的计算公式
MSB.b = S?BIT的字节号 +
([N]-1+S-BIT的位号) (余数为MSB的位号)
8 得出:移位后的字节号和MSB.b的位号。 例:S?BIT = V33.4 N = 14 则MSB.b = v33.4 + = v33 +
([14]-1+4)
817 8 =v33 + 2 (余1)[余0则为V35.0,余1则为V35.1] =V35.1
5-10、编写一段程序,将VB0开始的256个字节存储单元清零。
10