为分选不同大小的工件,可采用分选器。它从大的工件中选出小工件,将大的工件送到右侧,小工件送到左侧。从结构观点看,它是由两个集成的基本单元-皮带传动机和旋转平台组成。 电动机驱动传送皮带,将被检盒狀工件前移至旋转平台。该电动机停转,直到旋转平台准备对下一个工件进行分拣。旋转平台由两个电动机交替操作:一个电动机带动平台旋转,使该旋转平台接收被捡工件和选择工件往哪个出口方向送出。另一个传送电动机则移动辊道确保送入工件定位在平台的中间位置,并在确定工件的出口方向后将其推至已选定的出口。当选择平台上无工件,或工件越出平台进给边界时,这两个电动机停转,并将选择平台的方向对准于中间位置,准备接受新的工件。 工件的大小和位置选用适当的光电传感器来识别。左向出口和右向出口分别设有检测传感器LP和RP,用来确认工件是否达到所选定的方向。 当工件从传送带进入选择平台的边界,光电检测元件IPh检测到工件进入选择平台的事件,接着工件被送入选择平台,开始加载。这时选择平台上的辊道传送电动机启动,把工件移至平台中间。定位信号由位置传感器BS检测。当该传感器确认工件已处在中间位置,立即选择平台上的辊道传送电动机停转。 由光电传感器元件SPh检测工件的高度,并按此信号选择出口方向。此时启动平台旋转电机,根据被选择的方向电机正转或反转,当到达所选的方向,并由传感器(LP或RP)检测到,立即停止选择电动机,启动辊道传送电动机,把工件推移至选择的出口方向。当相关的出口限位开关(OutLS或OutRS)动作,表示工件离开平台,卸载完成,平台的辊道传送电动机停止,而选择电动机重新启动,将平台选择到中央位置,中央位置由CP传感器检测。 下面是信号描述:
下面是我们设计的分拣器,当其中电机在每一步超过设定的时间,就报警。按复位按钮后恢复工作。 简要介绍一下: 我们这里把传送带和旋转平台分开设计,这么做是为了简化程序。它们两个状态之间的联系主要用了两个条件:in(Platform.Normal.RollingRun1)和in(Conveyor.ConveyorRun2),从而把它们关联起来。 在Conveyor状态中,包含ConveyorRun1和ConveyorRun2,这两个状态是控制传送带电机的。在Normal状态中,也有RollingRun1和RollingRun2,也都是控制辊道电机的。那为啥同一控制对像要分两个状态呢,主要是方便状态机建模,这种方法会经常使用。在Conveyor中,我们考虑为了提高效率,加入ConveyorStop。这个步不控制任何东西,主要是为了,当旋转平台上有工件时,IPh没有检测到工件,传送带此时可以同步送料,当IPh检测到工件,进入ConveyorStop状态,传送带停止。当旋转平台清空后,旋转到位,CP点亮。此时ConveyorRun2激活。传送带继续传送工件给旋转平台。在Normal状态下,RollingRun1/2和RotationR/L,它们内部多了时间条件[after(3, sec)]{rlErr = true;},作用是当这些状态激活时间超过设定时间后,认为动作超时,从而把rrErr,rlErr,run1Err,run2Err其中之一置“1',从而把Normal状态切换到Alarm,产生一个报警。此时按reset键可以恢复工作,这里我们用了历史状态。 下面我们比较书上原来的设计: 书上的很复杂把,功能上还没有我们的强大。此状态机缺点就是没有把传送带和旋转平台分开,加深复杂度,如果在加入其它控制任务,最终的程序会很凌乱,对以后的维护带来不便。 下次我们把状态机写成LAD。 |
|
来自: 龙之吻6iinxl8c > 《状态机》