1、位指令,基本逻辑指令:与, 或,基本逻辑指令:异或 (XOR),赋值,置位,复位,LAD,FBD,STL,触发器的置位 / 复位,置位与复位指令(1/3),1.置位(S)指令,置位与复位指令(2/3),2.复位(R)指令,置位与复位指令(3/3),RS和SR触发器指令(1/3),1.RS触发器,RS触发器为“置位优先”型触发器,当R端和S端的驱动信号同时为1时,触发器最终为置位状态,RS和SR触发器指令(2/3),2.SR触发器,SR触发器为“复位优先”型触发器,当R端和S端的驱动信号同时为1时,触发器最终为复位状态,RS和SR触发器指令(3/3),例:抢答器的设计抢答器有三个输入,分别为I0
2、.0、I0.1和I0.2,输出分别为Q4.0、Q4.1和Q4.2,复位输入是I0.4。要求:三人中任意抢答,谁先按按钮,谁的指示灯优先亮,且只能亮一盏灯,进行下一问题时主持人按复位按钮,抢答重新开始。要求:画出I/O分配表编写程序模拟调试,注意:存储位不能重复,否则程序出错!,例题:控制要求:两台交流加热器E1和E2以及一台交流电动机因功率太大不能同时工作,交流电动机要有正反转控制功能。三台电器的相互关系如下: (1)两台加热器E1和E2分别通过SB2和SB4接通工作,一旦电动机运行,不管是正转(SB6接通)还是反转(SB7接通),两个加热器都将断电。 (2)如果只有一台加热器E1或E2工作,
3、则电动机的运行不影响加热器工作。 (3)在第一种情况下,当电动机停止时,两个加热器恢复工作。如果电动机运行期间有E1或E2的停止信号输入,则该加热器不会恢复接通。 要求:根据控制要求选择I/O元件并进行赋值,画出I/O分配表;编写梯形图程序并模拟调试。,连接器,4.中间输出,在梯形图设计时,如果一个逻辑串很长不便于编辑时,可以将逻辑串分成几个段,前一段的逻辑运算结果(RLO)可作为中间输出存储在位存储器M中,该存储位可以当作一个触点出现在其他逻辑串中。中间输出只能放在梯形图逻辑串的中间,而不能出现在最左端或最右端。,两个等效的程序示例:,例题:风机运行监控系统,控制要求:某设备有三台风机散热降
4、温,当设备处于运行状态时,三台风机正常转动,则指示灯常亮;如果风机至少有两台以上转动,则指示灯以2Hz的频率闪烁;如果仅有一台风机转动,则指示灯以0.5Hz的频率闪烁;如果没有任何风机转动,则指示灯不亮。,练习:设计故障信息显示电路,若故障信号I0.0为1,使Q4.0控制的指示灯以1Hz的频率闪烁。操作人员按复位按钮I0.1后,如果故障已经消失,则指示灯熄灭,如果没有消失,指示灯转为常亮,直至故障消失。,若故障信号I0.0为1,使Q4.0控制的指示灯以1Hz的频率闪烁。操作人员按复位按钮I0.1后,如果故障已经消失,则指示灯熄灭,如果没有消失,指示灯转为常亮,直至故障消失。,RLO - 边沿检
5、测,例如,RLO的上升沿检测指令,RLO的下降沿检测指令,信号 - 边沿检测,例如,I1.0,I1.1,M1.0,M8.0,M8.1,M1.1,触点信号的上升沿检测指令,触点信号的下降沿检测指令,1.RLO的上升沿检测指令,2.RLO的下降沿检测指令,3.触点信号的上升沿检测指令,4.触点信号的下降沿检测指令,实例:地下停车场车辆出入PLC控制,控制要求: 在地下停车场的出入口处,同时只允许一辆车出入,在进出通道的两端设置有 红绿灯如图所示。光电开关I0.0和I0.1用来检测是否有车经过,光线被车遮住时,I0.0或I0.1为1状态。有车出入通道时(光电开关检测到车的前沿),两端的绿灯灭,红灯亮
6、,以警示两方后来的车辆不能进入通道;车离开通道时,光电开关检测到车的前沿,两端的绿灯亮,红灯灭,其他车辆可以进入通道。,1.S_PULSE(脉冲S5定时器,简称脉冲定时器),定时器指令,1.S_PULSE(脉冲S5定时器,简称脉冲定时器),定时器指令,1.S_PULSE(脉冲S5定时器,简称脉冲定时器),定时器指令,2.S_PEXT(扩展脉冲S5定时器,简称扩展脉冲定时器),定时器指令,2.S_PEXT(扩展脉冲S5定时器,简称扩展脉冲定时器),定时器指令,2.S_PEXT(扩展脉冲S5定时器,简称扩展脉冲定时器),定时器指令,3.S_ODT(接通延时S5定时器,简称接通延时定时器),定时器指
7、令,3.S_ODT(接通延时S5定时器,简称接通延时定时器),定时器指令,3.S_ODT(接通延时S5定时器,简称接通延时定时器),定时器指令,4.S_ODTS(保持型接通延时S5定时器,简称保持型接通延时定时器),定时器指令,4.S_ODTS(保持型接通延时S5定时器,简称保持型接通延时定时器),定时器指令,4.S_ODTS(保持型接通延时S5定时器,简称保持型接通延时定时器),定时器指令,5.S_OFFDT(断电延时S5定时器,简称断电延时定时器),定时器指令,5.S_OFFDT(断电延时S5定时器,简称断电延时定时器),定时器指令,5.S_OFFDT(断电延时S5定时器,简称断电延时定时
8、器),定时器指令,实例练习,1、电机星-角起动控制电路 2、例题:运输带控制实验(两条输送带) 3、卫生间冲水控制电路,计数器指令,数据传送指令,比较指令,移位指令,技能训练 多台电动机单个按钮控制,6,1,2,3,4,5,6,计数器的应用,总结分析,S_CUD(加/减计数器),S_CU(加计数器),S_CD(减计数器),线圈形式的计数器,6.1,1,2,3,4,计数器指令,1.S_CUD(加/减计数器),计数器指令,计数器指令,Cno为计数器的编号。 CU为加计数输入端,该端每出现一个上升沿,计数器自动加1,当计数器的当前值为999时,计数值保持为999,加1操作无效。 CD为减计数输入端,
9、该端每出现一个上升沿,计数器自动减1,当计数器的当前值为0时,计数值保持为0,此时的减1操作无效。 S为预置信号输入端,该端出现上升沿的瞬间,将计数初值作为当前值。 PV为计数初值输入端,初值的范围为0999。数格式为:C#xxx,如:C#6、C#999等。 R为计数器复位信号输入端,只要该端出现上升沿,计数器立即复位。 CV为以整数形式显示(或输出)的计数器当前值,如:16#0023、16#00ab等。该端可以接各种字存储器,也可以悬空。 CV_BCD为以BCD码形式显示(或输出)的计数器当前值,如:C#369、C#023等。该端可以接各种字存储器,也可以悬空。 Q为计数器状态输出端,只要计
10、数器的当前值不为0,计数器的状态就为1。该端可以连接位存储器,如Q4.0、M1.7等,也可以悬空。,2.S_CU(加计数器),计数器指令,3.S_CD(减计数器),计数器指令,4.线圈形式的计数器(1/2),计数器指令,4.线圈形式的计数器(2/2),计数器指令,计数器指令练习,例1:停车场车位计数PLC控制 例2:,MOVE指令为数据传送指令,能够复制字节(B)、字(W)或双字(D)数据对象,数据传送指令,比较指令整数比较指令(1/2),比较指令整数比较指令(2/2),比较指令双整数比较指令(1/2),比较指令双整数比较指令(2/2),比较指令实数比较指令(1/2),比较指令实数比较指令(2
11、/2),移位指令基本移位指令(1/2),移位指令基本移位指令(2/2),移位指令循环移位指令,通常一个电路的起动和停止控制是由2个按钮分别完成的,当一个PLC控制多个这种需要起停操作的电路时,将占用很多的I/O资源。一般PLC的I/O点是按3:2的比例配置的,由于大多数被控系统是输入信号多,输出信号少,有时在设计一个不太复杂的控制系统时,也会面临输入点不足的问题,因此用单按钮实现起停控制的意义很重要。,技能训练项目概述,控制任务多台电动机的单按钮控制,多台电动机的单按钮控制,任务分析,任务实施,6.5,1,2,3,方案1,方案2,方案3,1,2,3,方案4,4,5,方案5,设某设备有2台电动机
12、,要求用PLC实现一个按钮同时对2台电动机的控制。要求:第1次按按钮时只有第1台电动机工作;第2次按按钮时第1台电动机停车,第2台电动机工作;第3次按按钮时2台电动机同时停车。,控制要求,按任务要求,用单按钮对多台电动机进行起/停控制可采用多种方案来实现,如:用逻辑指令、用计数器和比较器、用计数器当前值的位信号、用移位指令、用定时器等都可以实现。但是,不管用哪种方案实现,都必须注意一个扫描周期内与按钮操作次数相对应的各状态信号的惟一性或排他性。,任务分析,任务实施 方案1:用逻辑指令实现 (1/4),要用逻辑指令实现2台电动机的单按钮起/停控制,必须为每次操作设置一个的状态标志,在本次操作中该
13、状态标志必须为1,而其他状态标志必须为0。第1次按操作按钮之前,2台电动机都处于停机状态,对应接触器KM1和KM2的常闭触点闭合,因此可用KM1和KM2的常闭触点设置状态标志F1。第2次按操作按钮之前,第1台电动机处于工作状态,第2台电动机处于停机状态,对应接触器KM1的常开触点闭合,KM2的常闭触点闭合,因此可用KM1的常开触点和KM2的常闭触点设置状态标志F2。,第3次按操作按钮之前,第1台电动机处于停机状态,第2台电动机处于工作状态,对应接触器KM1的常闭触点闭合,KM2的常开触点闭合,因此可用KM1的常闭触点和KM2的常开触点设置状态标志F3。为了保证每次操作按钮只在一个扫描周期内起作
14、用,所以要用上升沿检测指令检测操作按钮SB1的动作。当状态标志F1为1时,可直接对KM1置位;当状态标志F2为1时,可直接对KM2置位,同时对KM1复位;当状态标志F3为1时,可直接对KM2复位。,方案1:用逻辑指令实现 (2/4),方案1:用逻辑指令实现 (3/4),方案1:用逻辑指令实现 (4/4),方案2:用计数器及比较指令实现(1/3),用计数器及比较指令实现2台电动机的单按钮起/停控制,可用操作按钮控制计数器的加1操作,然后用比较指令判断计数器的当前值是否为1、2或3。如果计数器的当前值为1,则起动第1台电动机;如果计数器的当前值为2,则起动第2台电动机,同时关闭第1台电动机;如果计
15、数器的当前值为3,则复位计数器,同时关闭第2台电动机。,方案2:用计数器及比较指令实现(2/3),方案2:用计数器及比较指令实现(3/3),方案3:用计数器实现(1/3),要单独用计数器指令实现2台电动机的单按钮起/停控制,可用操作按钮控制计数器的加1操作,然后取计数器当前值最低2位的状态判断是否为01、10或11。如果计数器当前值最低2位的状态01,则起动第1台电动机;如果计数器当前值最低2位的状态为10,则起动第2台电动机,同时关闭第1台电动机;如果计数器当前值最低2位的状态为11,则复位计数器,同时关闭第2台电动机。,方案3:用计数器实现(2/3),MW10由MB10(高字节)和MB11
16、(低字节)组成,方案3:用计数器实现(3/3),方案4:用移位指令实现(1/5),要用移位指令实现2台电动机的单按钮起/停控制,需首先设置一个控制字,然后用控制字的最低2位分别控制2台电动机,每按动一次操作按钮控制字向右移动2位。第1次操作时控制字的最低2位应变为01;第2次操作时控制字的最低2位应变为10;第3次操作时控制字的最低2位应变为00。因此控制字初始值为:xxxx xxxx 0010 01xx(二进制),其中的“x”表示既可以为0,也可以为1。但是,为实现循环操作用0来替换初始值中的“x”,当操作1个循环以后,控制字就会变为0,可方便进行判断。一旦控制字变为0,应用数据传送指令重新
17、对控制字赋初值。控制字的初值为:W#16#24。,由于PLC采用顺序循环扫描的方式来执行OB1的每条指令,如果在OB1或OB1的子程序(如FC、FB)中用传送指令第一次为控制字设置初值,必将导致每个扫描周期都会进行一次赋值操作,无法实现控制字的3次移位。解决的办法就是将控制字的第一次赋值指令放置启动组织块OB100中,由于OB100只有在PLC重新起动时执行一次,以后CPU不再扫描OB100的指令,所以可以避免对控制字的反复赋值。,方案4:用移位指令实现(2/5),方案4:用移位指令实现(3/5),方案4:用移位指令实现(4/5),方案4:用移位指令实现(5/5),方案5:用定时器实现(1/3
18、),方案1用基本逻辑指令实现了2台电动机的单按钮起/停控制,其中使用了F1、F2和F3等标志分别表示操作按钮操作的次数。如果用KM1和KM2直接取代F1和F2,则程序扫描时KM1和KM2将被反复多次扫描,其最终状态则由最后一条指令串决定,而无法实现要求的功能。为避免一个周期多次反复扫描KM1和KM2,可使用定时器进行滤波,只要定时器的设定值略大于2个扫描周期时间,就可确保一个周期只对KM1和KM2扫描一次,避免重复赋值而导致错误。PLC的一个扫描周期一般小于10ms,所以可以将定时器的初值设为100ms。,方案5:用定时器实现(2/3),方案5:用定时器实现(3/3),1.顺序循环扫描方式所带
19、来的问题及解决办法PLC在工作时采用顺序循环扫描的工作方式来执行OB1(包括子程序,如FC、FB等)中的用户程序,在一个扫描周期的开始CPU对所有的输入端子上的信号进行集中采集,并将采集结果保存在过程映像输入寄存器(I),在程序执行期间不再考虑输入端子上信号的变化,而程序执行过程中所产生的中间结果则直接保存在存储器(M)或过程映像输出寄存器(Q)中,并不立即送到输出端子,而只有在当前扫描周期结束前才将程序执行的最终结果集中送到输出端子,对输出端子进行刷新。如果对这种扫描方式理解不清楚,在编程时就会出现意想不到的结果。,总结分析,2.起动组织块的应用在PLC接通电源的瞬间,CPU就进入启动模式。
20、S7-300/400系统的启动模式有三种类型:暖启动(Warm Restart)热启动(Hot Restart)冷启动(Cold Restart)可在设置CPU的属性时选择其一,S7-300/400 CPU的默认配置为暖启动。不同的启动类型对CPU数据区中的数据会有不同的影响。,总结分析,(1)暖启动(Warm Restart)暖启动是完全再启动的启动类型,启动时过程映像和非保持型的标志存储器、定时器及计数器被清零,保持型的标志存储器、定时器和计数器以及数据块的当前值保持(一般必须有后备电池,如果使用EPROM并且CPU的保持特性已赋参数时可不用后备电池)。暖启动过程中CPU将执行一次暖启动组
21、织块OB100,然后顺序循环执行OB1的程序。,总结分析,(2)热启动(Hot Restart)热启动是不完全再启动的启动类型,启动时所有数据(标志存储器、定时器、计数器、过程映像及数据块的当前值)被保持,热启动过程中CPU将执行一次热启动组织块OB101,然后程序从断点处(由于断电或CPU被切换到STOP模式而中断的位置)恢复执行。这个“剩余循环”执行完后,开始顺序循环执行OB1的程序。,总结分析,(3)冷启动(Cold Restart)CPU的冷启动一般是针对电源故障所定义启动方式。启动时将删除通过程序调用(调用SFC)在工作存储器中所创建的数据块,其他保留数据块中的过程值被预置为初始值,
22、过程值丢失。所有过程映像区的数据、计数器、定时器和标志存储器都将被清零(含保持功能的计数器、定时器和标志位数据区)。可以在S7-400的CPU属性中设置上电后自动执行冷启动模式,S7-300的CPU不支持上电后自动执行冷启动模式。新版S7-300/400系列PLC在STEP7中可以手动执行冷启动操作。冷启动过程中CPU将执行一次冷启动组织块OB102,然后顺序循环执行OB1的程序。,总结分析,总结分析计数器与定时器配合使用,计数器的扩充,1.加法扩充法 设有n个计数器,为C1、C2、Cn,采用加法扩充法,则 系统总计数值=C1设定值+C2设定值+Cn设定值,加法扩充(1/2),加法扩充(2/2),1.乘法扩充法 设有2个计数器,计数设定值相等为n,采用乘法扩充法, 系统总计数值为CC= n2(n1),乘法扩充(1/3),乘法扩充(2/3),乘法扩充(3/3),