kk logo

Eine Wochenschaltuhr ist mit ACE Automation bzw. mit VBuilder ist ein bisschen Programmieraufwand aber doch ganz gut zu lösen. Da die ACE Hardware keine eigene Echtzeituhr hat (Real Time Clock kurz RTC) muss die Uhrzeit von Extern kommen. Es sei denn eine USV (Unterbrechungsfeie Stromversorgung) ist vorhanden, sobald die ACE Hardware keine Spannung hat verliert sie die aktuelle Uhrzeit. Beim wiederkehren der Spannung beginnt die Uhr bei 0. Am einfachsten ist es die aktuelle Uhrzeit und das Datum über den Modbus zu erhalten. Ich verwende dazu die HMI von ACE, da die ACE HMI günstig sind und eine gute Hardware. 

Anschluss zwischen HMI und PLC

 Die USB Verbindung zwischen HMI-PC und PLC-PC ist nur zur Programmierung oder späteren Fehlersuche notwendig. Ich arbeite immer mit einer 6 Ampere Sicherung vor dem Netzteil, das ist aber für die Funktion nicht zwingend erforderlich. Wichtig ist dass der RS232 Stecker zwischen PLC-HMI richtig verdrahtet. Ich habe einen "alten" Stecker vom einem Monitor verwendet, weil ich den noch hatte, hier muss aber kurz geprüft werden ob die Kabelfarben auch stimmen. Besser bzw. einfacher ist es den original Stecker von ACE zu verwenden, dieser hat die 3 benötigten Kabel in der richtigen Farbe. 

plc hmi modbus tutorial time ace

 

HMI Programm und Einstellungen 

 Das ist die gesamte Oberfläche im HMITool. Die Grafik kann natürlich noch angepasst werden, diese habe ich jetzt mal ganz einfach gehalten. Der rote Button rechts, zeigt an ob der Ausgang geschaltet ist oder nicht. Program the ACE Automation weekly time switch with a real time clock 1

Als erstes muss ein neuer "link" eingerichtet werden. Link bedeutet nichts anderes als eine Verbindung zwischen HMI und PLC. Als Link Interface muss hier der COM1 Port ausgewählt werden. Natürlich könnte auch der USB Port verwendet werden aber ich finde es nicht sinnvoll das HMI und die PLC über den USB zu verbinden, da sonst kein Debugging gemacht werden kann und bei Programmierung testen muss ständig umgesteckt werden. 

Program the ACE Automation weekly time switch with a real time clock 0

 Für die Ein-und-Ausschaltzeit braucht es ein "numeric input" Feld das jeweils über eine 16-Bit unsigned Adresse verfügt, diese wird bei "write Address" eingetragen, dazu auf das Tastenfeld Icon klicken. Zudem sollte "total degree" auf 2 gestellt werden, damit nur 2 Ziffern im Feld angezeigt werden. 

Program the ACE Automation weekly time switch with a real time clock 2

 Bei "address entry" muss der Link 1 eingestellt werden. Diese ist der Link (bzw. die Adresse) die am Anfang bei "HMI parameters setting" eingestellt werden, ist also unsere Modbus Verbindung. Für die 16 Bit Int. Variable braucht es ein 4x, danach für jedes Uhrzeitfeld die Passende Adresse (hier die 2) eintragen. Program the ACE Automation weekly time switch with a real time clock 3

Die Einzelnen Tage sind "bit Button" Felder. Als Text EIN und AUS eintragen. Und als Funktion "invert" auswählen. Damit wechselt die Adresse im Modbus bei jedem Tastendruck zwischen 0 und 1. Somit können die einzelnen Tage ein und ausgeschaltet werden. 

Program the ACE Automation weekly time switch with a real time clock 4

Also Adresse wieder Link1 verwenden aber diesmal 0x einstellen, da es ja nur eine Bit Variable ist, dazu jeweils die Adresse für den jeweiligen Tag einstellen, hier die Nummer 2. Beachten dass der erste Tag in der Woche der Sonntag ist. 

Program the ACE Automation weekly time switch with a real time clock 5

Für den Button braucht es eine "bit lampe" da dieses Feld nur eine Anzeige ist. Die Adresse ist gleich wie bei den Wochentagen, Link1,0x und die passende Adresse, hier die 0. 

Program the ACE Automation weekly time switch with a real time clock 6

Damit die Uhrzeit an die ACE SPS gesendet wird musst du dir zuerst dieses SCRIP herunterlanden. Das Scrip ist vom ACE Automation Support, den ich hier mal wirklich als schnell und zuverlässig erwähnen muss. 

- Scrip Editor öffnen 

- Das Scrip über den "Ordner" importieren 

- Sollte das Scrip noch auf unsave oder unCompiled stehen, über die Leiste oben Speichern und Compilern

Program the ACE Automation weekly time switch with a real time clock 7

Über Global Scrip, nun das Scrip noch hinzufügen, nun sendet das HMI über den Modbus die aktuelle Uhrzeit und das aktuelle Datum.   

Program the ACE Automation weekly time switch with a real time clock 8

 

Vereinfachte Wochenschaltuhr, SPS Programm mit Unterprogramm --> empfohlen 

Die Zeitschaltuhr bzw. die Wochenschaltuhr nimmt im Hauptprogramm rel. viel Platz weg und macht es damit unübersichtlich. Einfacher ist es die Uhr bzw. die Uhren in ein Untermenü zu gliedern. Meistens programmiere ich meine Hauptprogramme (MAIN) in Ladder, viele Unterprogramme dagegen mache ich in FlowChart, so auch hier.

Hauptprogramm:

Im Hauptprogramm wird lediglich ein Unterprogramm Block für jede Wochenschaltuhr benötigt. 

wochenschaltuhr zeitschaltuhr mit ACE velocio SPS 1

 

In dieser Funktion werden die Variablen aus der RS232 Schnittstelle von HMI übertragen. Über "schaltuhr1" wird eine 1 für Schaltuhr EIN oder eine 0 für Schaltuhr AUS gesendet. Ich habe hier direkt das "OutBit1" zum übertragen verwendet. Natürlich kann hier auch eine Variable verwendet werden. 

wochenschaltuhr zeitschaltuhr mit ACE velocio SPS 2

Unterprogramm:

In den einzelnen Unterprogramme frage ich zuerst die Tage, dann die EIN und dann die AUS Zeit ab. Das Ergebnis übertrage ich dann zurück in das Hauptprogramm. 

Hier gibt es dann ganze Projekt als ZIP zum Download. 

wochenschaltuhr zeitschaltuhr mit ACE velocio SPS 3

 

Ausführlich Wochenschaltuhr, SPS Programm direkt in Ladder

 Zuerst müssen in VBuilder die "Tags" für die bit Variablen eingetragen werden, die Namen können natürlich anders heißen. 

ACE Automation Wochenschaltuhr mit Echtzeituhr programmieren 1

 Danach die "Tags" für die UI8 Variablen eintragen, auch hier können die Namen anders benannt werden. ACE Automation Wochenschaltuhr mit Echtzeituhr programmieren 2

Nachdem die bit, und UI8 Variablen "Tags" nun bestehen, können diese auch gleich in das Modbus Register eingetragen werden. Wichtig ist dass die "Tags" auch Schreibbar sind also ein Y bei "writable" zu sehen ist. 
ACE Automation Wochenschaltuhr mit Echtzeituhr programmieren 3

 Nun beginnt das eigentlich Programm, zuerst wird die Uhr mit den passenden "Tags" für CLOCK SET und CLOCK READ geschrieben und in einem Pfad gesetzt.  

ACE Automation Wochenschaltuhr mit Echtzeituhr programmieren 4

 Wochtagsabfrage:

Jeweils über eine BIT Abfrage wird bestimmt ob der Taster für den Wochentag gedrückt ist. Über eine = wird nun abgefragt welche Wochentag ist. 1 = Sonntag, 2 = Montag, usw. Wenn ein Wochentag aktiviert ist wird der "Merker" Schaltuhr1 auf EIN gesetzt. Damit ist die erste Bedingung zum einschalten erfüllt.  

ACE Automation Wochenschaltuhr mit Echtzeituhr programmieren 5

Zeitschaltuhr Abfragen 

Um die jeweilige eingestellte Uhr abzufragen braucht etwas mehr. Dazu fragst du jeweils ab ob ein Stunde und aus Minute erreicht ist. Und die aus Stunde und die aus Minute noch nicht erreicht ist.  Zudem frage ich ab ob überall 00 in den Feldern steht, wenn das so ist, dann ist die Uhr auch auf aus. Diese ganzen Abfragen sind dann die Zeitschaltuhr 2-5 und wenn diese ganze Bedingungen erfüllt sind, schließt der Kontakt auf out4. 

ACE Automation Wochenschaltuhr mit Echtzeituhr programmieren 6

ACE Automation Wochenschaltuhr mit Echtzeituhr programmieren 7

 

Hier gibt es das ganze Projekt zum Download, natürlich muss das HMI und die PLC noch auf die von euch verwendetet Hardware umgestellt werden. 

by grace

By grace alone somehow I standWhere even angels fear to treadInvited by redeeming loveBefore the throne of God aboveHe pulls me close with nail-scarred handsInto His everlasting arms

Ronnie

schwäbischer tüftler und bastler, kraftsportler, 41 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

ronnie berzins at mee