带原点位置的小车控制程序
	                        
	                            王曾
	                            发布于2023-02-24 16:45
	                            
	                                
	                                135
	                            
	                            
	                                
	                                2
	                            
	                            
	                            标签:PLC实操案例
	                        
	                     
	                    
	                        
	一、任务目标
	该任务是位逻辑指令应用案例。西门子S7-1200 PLC的位逻辑指令处理对象为二进制位信号,主要包括触点和线圈指令、位操作指令及位检测指令等。本任务要求读者掌握以下几个内容。
	1.置位指令的使用
	2.复位指令的使用
	3.复位优先指令的使用
	二、任务描述
	如图2-3-1所示为带原点位置的小车运行控制示意图,该小车由三相异步电动机拖动,通过三相异步电动机的正反转控制来实现对小车的左行与右行。小车运行的控制要如下所示:
	(1)系统上电后,需要对小车进行回原点操作,按下回原点启动按钮后小车开始回原点,回原点过程先让小车到达左限位,碰到左限位后返回,当碰到原点后停止,则回原点结束。
	(2)在原点确定后,按下启动运行按钮,小车向右运行,碰到右限位后,小车切换为左行,碰到左限位后,小车切换回右行,小车在左右限位之间往返运行。若按下停止按钮,小车停止运行,当再次按下启动按钮时,小车会以停止前的方向继续运行。
	 
 
	图2-3-1 小车运行示意图
	三、相关知识
	本案例主要使用的是置位、复位、复位优先指令,此处为读者介绍指令的相关知识。
	1.置位与复位指令 
	S:置位指令将指定的地址位置位(变为1,并保持)
	R:复位指令将指定的地址位复位(变为0,并保持)
	如图2-3-2所示:置位/复位指令示例,当I0.0为1,Q0.0为1,之后,即使I0.0为0,Q0.0保持为1,直到I0.1为1时,Q0.0变为0。
	 
 
	图2-3-2 置位/复位指令示例
	2.复位优先指令
	SR:复位优先指令,如图2-3-3。如果S输入端的信号状态为“1”,R1输入端的信号为“0”则置位。如果S输入端的信号为“0”,R1输入端的信号状态为“1”,则复位触发器。如果两个输入端的RLO状态均为“1”,则复位触发器。如果两个RLO状态均为“0”,保持触发器以前的状态。用一个表格(表2-3-4)表示复位优先指令的对应关系。
	 
 
	图2-3-3 置位/复位示例
	表2-3-4 SR复位优先指令对应关系表
	
		
			
				| 
						SR复位优先指令
					 | 
			
				| 
						输入状态
					 | 
						输出状态
					 | 
						说明
					 | 
			
				| 
						S(I0.0)
					 | 
						R1(I0.1)
					 | 
						Q (Q0.0)
					 | 
						当各个状态断开后,输出状态保持
					 | 
						
 | 
			
				| 
						1
					 | 
						0
					 | 
						1
					 | 
						
 | 
			
				| 
						0
					 | 
						1
					 | 
						0
					 | 
						
 | 
			
				| 
						1
					 | 
						1
					 | 
						0
					 | 
						
 | 
		
	
 
	四、任务实施
	本任务的实施步骤主要分为PLC接线、IO地址分配以及程序设计思路:
	1.PLC接线如图2-3-5
	 
 
	图2-3-5 PLC接线图
	2.IO地址分配 
	
		
			| 
					输入地址
				 | 
					说明
				 | 
					输出地址
				 | 
					说明
				 | 
		
			| 
					I0.1
				 | 
					启动信号
				 | 
					Q0.0
				 | 
					小车前进
				 | 
		
			| 
					I0.2
				 | 
					停止信号
				 | 
					Q0.1
				 | 
					小车后退
				 | 
		
			| 
					I0.3
				 | 
					回原点信号
				 | 
					Q0.2
				 | 
					回原点指示
				 | 
		
			| 
					I0.4
				 | 
					左限位
				 | 
					 
				 | 
					 
				 | 
		
			| 
					I0.5
				 | 
					右限位
				 | 
					 
				 | 
					 
				 | 
		
			| 
					I0.6
				 | 
					原点信号
				 | 
					 
				 | 
					 
				 | 
	
	3. 程序设计思路: 
	本任务中的动作可以看作为具有明显的顺序动作的程序,因此可通过置位指令和复位指令来实现对下一个动作步的标志的置位和对上个动作标志的复位方法来实现顺序动作。另外,任务中一个难点在于如何记录停止前的状态,可以通过使用下降沿的方式来置位运行的标志位,当下次启动时,只需要判断标志位的状态就可知道停止前的状态是如何的?
	4.程序设计 
	 
	  
	
	
	
	
	
	
	 
	五、经验与总结
	1.在这个任务中,主要是流程动作的控制,到达了一个步骤之后切换为下一个步骤,读者可以使用置位和复位的方式切换步序。
	2.在编写程序时,若没有思路,也可以使用找条件的方法理清楚逻辑,例如回原点过程:
	小车回原点的条件为:按下了回原点启动信号。
	下车回原点左行条件为:小车正在找原点。
	小车回原点左行停止条件为:小车找原点过程中到达左限位位置。
	小车回原点右行条件为:小车正在找原点并且到达了左限位位置。
	小车回原点停止条件为:小车到达了原点。
	3.停止前的方向记录使用一个标志位结合复位优先指令标识小车停止前的方向。