Garázs kapu vezérlése Kincses Levente Elektronika 89/2004
Feladat Leírása Garázs kapu vezérlését kell megvalósítani. Az ajtó csak akkor nyílik ki, ha a belső kapcsolót megnyomjuk, vagy ha a belső és külső érzékelők valamelyike is érzékel. 5s-on belül bezáródik a kapu, ha már a jármű elhaladt az érzékelők előtt. A feladatot PLC berendezés segítségével kell megoldani.
Garázs kapu vezérlése Bemenetek: 1.Külső mozgásérzékelő 2.Belső mozgásérzékelő 3.Nyitó gomb 4.Nyitva - végálláskapcsoló 5.Zárva - végálláskapcsoló Kimenet: 1.Elektromotor
Garázs kapu vezérlése Az ajtó csukott állapotban van mindaddig, amíg nincs mozgás az érzékelők előtt
Garázs kapu vezérlése Az ajtó nyitott állapotba kerül, az érzékelők előtti mozgás hatására
Garázs kapu vezérlése Használt változók listája: B_ButtonPressed ( Boolean ) B_Open ( Boolean ) I_DoorState ( Integer ) I_DumpTruckMotion ( Integer ) I_LoaderMotion ( Integer ) I_TankerMotion ( Integer ) I_TimeOut ( Integer )
Garázs kapu vezérlése Parancsállományok: 1. InitialisationScript ( On Initialisation ) 2. ButtonPressed ( On Condition ) 3. DoorOpenClose ( On Regular Interval ) 4. Truck Motions (On Regular Interval )
Garázs kapu vezérlése 1. InitialisationScript ( On Initialisation ) I_DoorState = 100 I_TankerMotion = 600
Garázs kapu vezérlése 2. ButtonPressed ( On Condition ; Expression: „B_Open” ) B_ButtonPressed = 1
Garázs kapu vezérlése 3. DoorOpenClose ( On Regular Interval ; Int. Time: 10 ms) IF B_ButtonPressed THEN I_DoorState = I_DoorState - 1 IF I_DoorState == 0 THEN B_ButtonPressed = 0 I_TimeOut = 0 ENDIF
Garázs kapu vezérlése 3. DoorOpenClose ( On Regular Interval ) ( Continue ) IF I_TimeOut == 312 AND I_DoorState != 100 AND B_ButtonPressed != 1 THEN I_DoorState = I_DoorState + 1 IF I_DoorState == 100 THEN I_TimeOut = 0 ENDIF
Garázs kapu vezérlése 3. DoorOpenClose ( On Regular Interval ) ( Continue ) IF I_DoorState == 0 THEN I_TimeOut = I_TimeOut + 1 ENDIF
Garázs kapu vezérlése 4. Truck Motions ( On Regular Interval ; Int. Time: 10 ms) IF I_DumpTruckMotion != 450 THEN I_DumpTruckMotion = I_DumpTruckMotion + 1 ELSE I_DumpTruckMotion = 0 ENDIF IF I_TankerMotion != 0 THEN I_TankerMotion = I_TankerMotion - 1 ELSE I_TankerMotion = 600 ENDIF