Guten Tag, ich bin gerade dabei eine Elektrische Schiebetür zu Automatisieren , bin aber leider noch Anfänger was IQ angeht . Habe es bist jetzt geschafft das es Auf/Zu fährt aber jetzt ist meine Frage wie kann ich es mit der Zeit steuern wie z.B. wenn innerhalb von 10 sec. der Endschalter nicht erreicht wird das Automatisch abschaltet, der ein Klemmschutz ist mechanisch realisiert nur ich möchte nicht das der Motor dann durchläuft wenn er denn Endschalter nicht erreicht. Leider ist es nicht möglich mit einem or und waitms denn da wird ja der komplette Controller gestoppt und der Endschalter ist Außerfunktion. Und wie ist es möglich das die Öffnungszeit zu Realisieren ohne den ganzen Controller in dieser Zeit zu blockieren? Was ich noch gerne wissen möchte ist es gut wenn man als Verriegelung die 2 Ausgänge im Start Befehle gibt das nicht erneut gestartet werden kann, oder gibt es da bessere alternativen denn in der warte Zeit wäre es ja möglich erneut Zu starten! Was eigentlich egal wäre da die Türe durch den Endschalter abgeschaltet wird wenn sie offen ist ?(Die Schütze werden Hardwareseitig auch verriegelt.) Als Motor dient ein 24v dc Motor der umgepolt wird. Meinen Code füge ich bei soweit funktioniert er! würde mich auf verschiedene Lösungsvorschläge freuen LG
1 | avr.device = atmega328p //Controller-Typ festlegen |
2 | avr.clock = 8000000 //Dem Compiler mitteilen mit welcher Taktrate der Controller läuft |
3 | avr.stack = 64 //Den Programmstack einstellen |
4 | |
5 | |
6 | #define Auf as PortD.5 |
7 | #define Zu as PortD.6 |
8 | #define Autobefehl as PortD.2 |
9 | #define EndschalterOffen as PortD.3 |
10 | #define EndschalterZU as PortD.4 |
11 | #define HandOffen as PortD.1 |
12 | |
13 | |
14 | Auf.mode = output,low //Tür Auf als Ausgang |
15 | Zu.mode = output,low //Tür ZU als Ausgang |
16 | Autobefehl.mode = input,pullup //Auf/Zu Automaik als Eingang, Pullup einschalten |
17 | EndschalterOffen.mode = input,pullup //Endschalter wenn Türe Offen (NC) als Eingang, Pullup einschalten |
18 | EndschalterZU.mode = input,pullup //Endschalter wenn Türe ZU (NC) als Eingang, Pullup einschalten |
19 | HandOffen.mode = input,pullup //Handschaltung Tür auf und offen bleiben als Eingang, Pullup einschalten |
20 | |
21 | |
22 | 'Automatik |
23 | do |
24 | |
25 | |
26 | if (Autobefehl = 0) and (EndschalterZU = 1) and (EndschalterOffen = 1) then //Darf nur starten wenn die Tür auch geschlossen ist, |
27 | //und ein Startbefehel kommt und Endschalteroffen nicht gedrückt ist. |
28 | Auf = 1 |
29 | endif |
30 | |
31 | |
32 | if Auf = 1 and (EndschalterOffen = 0) then // Soll Stoppen wenn Auf aktiv ist wenn Endschlalteroffen gedrückt ist odernach 10000ms. |
33 | Auf = 0 |
34 | endif |
35 | |
36 | |
37 | loop |