图6计数器指令实验程序 2、计数指令的应用 (1)任务 1)用CTU指令代替TON指令实现图5所示的加工工序要求。 2)用一个按扭开关(I0.2)控制三个灯(Q0.1,Q0.2,Q0.3),按扭一动作则1#灯亮,按三下2#灯亮,1#灯灭。再按三下3#灯亮,2#灯灭。再按三下是3#灯灭。再按一下又重复前面的工作。时序图如图7所示以此反复。 图7 时序图 3)用计数指令实现下述控制过程,其动作时序如图8所示: 图8 时序图 当I0.2=ON从1#灯亮到3#灯亮,每灯亮3S。当3#灯亮完达到1S后又从1#灯亮到3#灯亮如此循环下去。 (2)编程提示 1)CTU为加1计数器,应先预置数。计数脉冲可以是内部继电器提供(如任务1)中用PLC内部标准脉冲继电器),也可以是外部开关提供(如任务2)中用I0.2开关)。当复位信号到来时,CTU重新装入预置数,CTU加到预置值时,该继电器为ON。 2)在任务2)中,为了使各个灯能从亮一直可靠地维持到按下一组三下的最后一下之后再灭,可引用置位和复位指令。
3)CTUD为加/减可逆计数器,其加1或减1的功能转换由加/减输入为ON 或OFF来决定。当计数到预置值时,该继电器为ON;当复位信号到来时,重新置入预置值。 课后小结: 第十讲 算术、逻辑运算指令
教学对象 教学目标 教学重点 教学难点 教学方法 授课时间 使用教材 电气自动化技术专业学生 1、使学生掌握算术、逻辑运算指令的使用。2、使学生掌握算术、逻辑运算指令的应用。 算术、逻辑运算指令的应用 指令的灵活使用 讲授法、演示法、实验法 6学时 《可编程控制器原理及应用》田淑珍 机械工业出版社 2005年9月 教学过程 一、加法 1、整数加法 +I,整数加法指令。使能输入有效时,将两个单字长(16位)的符号整数IN1和IN2相加,产生一个16位整数结果OUT。 在LAD中,以指令盒形式编程,执行结果:IN1+IN2=OUT 在STL中,执行结果:IN1+OUT=OUT。 指令格式:+I IN1, OUT 例: 图3.27整数加法例 图3.27例中实现的功能是VW0+VW4=VW4。 本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负)。 2、双整数加法 +D,双整数加法指令。使能输入有效时,将两个双字长(32位)的符号双整数IN1和IN2相加,产生一个32位双整数结果OUT。 在LAD中,以指令盒形式编程,执行结果:IN1+IN2=OUT。 在STL中,执行结果:IN1+OUT=OUT。 指令格式:+D IN1, OUT 例: +D VD0,VD4 表3.11 两双整数相加例
操作数 IN1 IN2 OUT 地址单元 VD0 VD4 VD4 单元长度(n字节) 4 4 4 运算前值 120000 30281 30281 运算结果值 120000 150281 150281 本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负)。 3、实数加法 +R,实数加法指令。使能输入有效时,将两个双字长(32位)的实数IN1和IN2相加,产生一个32位实数结果OUT。 在LAD以指令盒形式编程,执行结果:IN1+IN2=OUT。 指令格式:+R IN1, OUT 例: +R VD0,VD4 表3.12实数相加例 操作数 IN1 IN2 OUT 地址单元 VD0 VD4 VD4 单元长度(n字节) 4 4 4 运算前值 200.03 302.815 302.815 运算结果值 200.03 502.815 502.815 本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负)。 二、 减法 减法指令是对有符号数进行相减操作。包括:整数减法、双整数减法和实数减法。这三种减法指令与所对应的加法指令除运算法则不同之外,其他方面基本相同。 在LAD中以指令盒形式编程,执行结果:IN1-IN2=OUT。 在STL中,执行结果:OUT-IN2=OUT。 指令格式:-I IN2, OUT (整数减法) -D IN2, OUT(双整数减法) -R IN2, OUT (实数减法) 例: -I AC0, VW4 表3.12整数减法 操作数 IN1 IN2 OUT 地址单元 VW4 AC0 VW4 单元长度(n字节) 2 2 2 运算前值 3000 2000 3000 运算结果值 1000 2000 1000 三、乘法 1、整数乘法 *I,整数乘法指令。使能输入有效时,将两个单字长(16位)的符号整数IN1和IN2相乘,产生一个16位整数结果OUT。 指令格式:*I IN1,OUT
例: *I VW0,AC0 2、完全整数乘法 MUL,完全整数乘法指令。使能输入有效时,将两个单字长(16位)的符号整数IN1和IN2相乘,产生一个32位双整数结果OUT。 在LAD以指令盒形式编程,执行结果:IN1*IN2=OUT。 本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负);SM1.3(被0除)。 指令格式: MUL IN1,OUT 例: MUL AC0,VD10 3、双整数乘法 *D,双整数乘法指令。使能输入有效时,将两个双字长(32位)的符号整数IN1和IN2相乘,产生一个32位双整数结果OUT。 在LAD中,以指令盒形式编程,执行结果:IN1*IN2=OUT。 在STL中,执行结果:IN1*OUT=OUT。 本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负);SM1.3(被0除)。 指令格式: *D IN1,OUT 例: *D VD0,AC0 4、实数乘法 *R,实数乘法指令。使能输入有效时,将两个双字长(32位)的实数IN1和IN2相乘,产生一个32位实数结果OUT。 在LAD中,以指令盒形式编程,执行结果:IN1*IN2=OUT。 在STL中,执行结果:IN1*OUT=OUT。 本指令影响的特殊存储器位:SM1.0(零);SM1.1(溢出);SM1.2(负);SM1.3(被0除)。 指令格式: *R IN1,OUT 例: *R VD0,AC0 以上乘法指令盒如下图所示 四、 除法 在LAD中,以指令盒形式编程,执行结果:IN1/IN2=OUT。 在STL中,执行结果: OUT/ IN2=OUT。 指令格式:/I IN2, OUT (整数除法) DIV IN2, OUT (整数完全除法)
/D IN2, OUT (双整数除法) /R IN2, OUT (实数除法) 指令盒如下图所示 例:DIV VW10, VD100 /I VW20, VW200 两条指令的编程及执行情况比较如图3.28所示。 图3.28除法指令应用 具体程序运行如下表所示3.13和3.14所示。 表3.13 完全除法指令 操作数 IN1 IN2 OUT 表3.14 对于除法指令 操作数 IN1 IN2 OUT
地址单元 VW102 VW10 VD100 单元长度(n字节) 2 2 4 运算前值 2003 40 203 运算结果值 50 40 VW100 VW102 3 50 地址单元 VW200 VW20 VW200 单元长度(n字节) 2 2 2 运算前值 2003 40 2003 运算结果值 50 40 50