40. LUA-Skript - Schranken steuern

Ähnliche Dokumente
41.2 LUA Grundlagen - Funktionen

41.8 LUA-Grundlagen - Tabelle, if und Albernheit

2015 Sebastian Wahner - Die teilweise oder vollständige Weiterverbreitung dieses Werkes ist ohne Einverständnis des Autors

Dieses Set ist das Ausgangsset für weitere Rabattaktionen für Weichen gleicher Bauform EW :9H mit dem selben Antrieb.

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester Dipl.-Ing. (FH) Volker Schepper

Stand Seite 1 von 19

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

52.1 Die Schaltung zum Bahnübergang

Handbuch zum VivaWeb-Serienbrief-Programm

Ersatz für freie Listen in SibankPLUS

Lua Grundlagen Einführung in die Lua Programmiersprache

WS2018/ Oktober 2018

Kurzanleitung. Zitiertil-Creator. Dokumentvorlagen Dokumente Formatvorlagen Format Zeichen Format Absatz

Girls Day 2017 Programmierung

PYTHON. 04 Funktionen II, Module

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.

Äußere Form ArrayList Vererbung API. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann. Tilman Lüttje, Jean Wiele

Unix-Grundkurs 1. Thema heute: Shell-Skripten

Funktionen in JavaScript

Lua - Beschreibung und Handbuch

Übungsblatt 1. Java Vorkurs (WS 2017)

Funktionen in JavaScript

3 Mit Programmen und Fenstern

Linux-Einführung Übung

46. Wenn ich komme, haben alle anderen rot (Fahrstrassen)

m-files sind Folgen von MATLAB-Anweisungen oder Daten-Files.

Stand und Ausblick

Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java

Quick-Start Informatik Programmieren in Python Teil 1

PHP. M.Sc. Nadine Preuß Geographische Analyse- und Darstellungsmethoden WS 15/

Bedienungsanleitung PC-Software für CTS-7 C (V )

4 Daten in Python. Primäres Ziel: Daten zu Containern zusammenfassen, insbesondere Vektoren etc., um vernünftige Beispiele rechnen zu können.

< UNTERRICHTSMATERIAL /> Calliope mini. Blumenpflegestation

Autorennen. Baue Dir selbst ein Autorennen. Konstruktion des Autos und der Rennstrecke

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code:

Informatik I: Einführung in die Programmierung. Übungsblatt 3. Abgabe: Freitag, 15. November 2013, 18:00 Uhr

Gobales Gedächtnis. AntMe. Sebastian Loers. lb-sys.info. Projekt: AntMe - Globales Gedächtnis (Version 1.0)

Bedienungsanleitung PC-Software für CTS-32 C

PHP 7.0 Dynamische Webseiten erstellen. Grundlagen. Stephan Heller. 1. Ausgabe, Oktober 2016 ISBN GPHP7

EEP 11 Plug-In 2 - Hinweise

2. Programmieren in MATLAB (1)

Sozialwissenschaftliche Fakultät der Universität Göttingen. Sommersemester 2009, Statistik mit SPSS

Funktionen in Matlab. Lehrstuhl für Angewandte Mathematik Sommersemester und 29. Mai 2008

Programmieren I + II Regeln der Code-Formatierung

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden

Übersicht Shell-Scripten

Mathematische Computer-Software

Python Intro. Vorsemesterkurs Informatik Praktischer Teil WS2012/13. 2.Oktober Vorkurs Informatik - WS 2012/13

C++ - Einführung in die Programmiersprache Funktionen. Leibniz Universität IT Services Anja Aue

Programmieren I + II Regeln der Code-Formatierung

Kandidaten/innen über über CSV-Import zu Prüfungen anmelden

Kurze Bedienungsanleitung für den Java-Editor

TU Kaiserslautern. Übungsblatt 2: Software-Entwicklung 1 (WS 2017/18) Hinweise zu Einreichaufgaben. Hinweise zu den Übungen

R-Fehlermeldungsleitfaden

Python Intro I. Vorsemesterkurs Informatik Praktischer Teil WS 2013/14. 1.Oktober Vorkurs Informatik - WS 2013/14

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

Schaltpultmodule Set 2. Ab EEP8 Expert

Einführung in PERL 2 Reguläre Ausdrücke

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

EEP 11 Plug-In 3 - Hinweise

Wocheninfo auf der Webseite aktualisieren

Java Lexikalische Struktur

Folien php/mysql Kurs der Informatikdienste

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

Informatik I. 4. Funktionen: Aufrufe und Definitionen. 25. Oktober Albert-Ludwigs-Universität Freiburg. Informatik I.

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (

Eine kleine Anleitung zum Programmieren mit MATLAB

Der CodeBug. A) Erste Schritte. 1) Einleitung

Inhalt. Dokument Beschreibung. Bentley Technical Support ProStructures.Net - Zusatzprogrammierung Visual Basic Express PST_Bearbeitung_Dialog

Felder, Zeiger und Adreßrechnung

2017/01/23 15:50 1/5 Bedienung

Einstieg in die Informatik mit Java

Excel 2003 Teil-1 HAFNER-EDVtechnik Uhlandstraße Geislingen

Prof. Dr. Stefan Funken, Dipl.-Ing. Christoph Erath 15. Mai WiMa-Praktikum (Matlab 2/9) Einführung in LATEXund Matlab

BBS CORE.reporter Übernahme der Daten aus Version (2009) in Version (ab 2010)

Objektorientiertes Programmieren (Java)

Klausur zur BSc-Vorlesung Rechnergestützte Modellierung des WS Termin

Linux-Camp: Linux als Server am Beispiel LAMP

Elementare Datentypen in C++

Programmieren mit Python

Rückgabewerte von Methoden

Setzen wir also zunächst einmal die ankommenden Straßen in EEP auf unsere Anlage:

PhantomJS und CasperJS

Python Prozeduren und Funktionen

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

Transkript:

40. LUA-Skript - Schranken steuern Hallo EEP-Freunde, meinen ersten und vor allem sofort erfolgreichen Versuch mit der neuen Skriptsprache möchte ich euch nicht vorenthalten. Hier geht es um das Steuern von Schranken über die in EEPX ab Plugin 2 integrierte Skriptsprache LUA. Ich werde in Zukunft in loser Folge meine Erkenntnisse zur Skriptsprache kund tun und versuchen sie verständlich darzulegen. Nun zur Ausgangssituation. In meiner Testanlage zum Thema habe ich einen Bahnübergang gebaut. Wie zu sehen ist, haben die Schranken die ID's 21 und 22. Das müssen wir uns im Vorfeld merken, da ich die Erfahrung gemacht habe, dass sich das Fenster vom LUA-Editor nicht verschieben lässt (lag natürlich direkt über den Schranken. Das Fenster zum editieren des LUA-Skriptes öffnen wir mit der folger Schaltfläche: Als nächstes den Quelltext des Skripts im Ganzen. Den erläutere ich dann Zeile für Zeile.

Bevor ich die Zeilen erkläre, möchte ich erst einige Dinge zu Funktionen sagen, die hier benötigt werden. Der grundsätzliche Aufbau einer Funktion sieht wie folgt aus: function Funktionsname() Eine Funktion beginnt immer mit dem Schlüsselwort function. Anschließ kommt nach einem Leerzeichen der Funktionsname, mit dem wir später die Funktion aufrufen. Dieser Name darf nur aus Buchstaben (groß und klein), Ziffern und dem Unterstrich bestehen. Alles andere ist nicht erlaubt und führt zu Fehlern. Dann kommen noch die Klammern, die in der einfachsten Form so wie gezeigt ohne etwas dazwischen sein müssen. Auch ist wichtig, dass Gross- und Kleinschreibung beim Aufruf der Funktion beachtet werden muss. Open ist in dem Fall nicht gleich open. Jede Funktion et mit dem Schlüsselwort. Nun zurück zur Problematik. Ein Zug soll vor den Schranken diese schließen und nach der Durchfahrt diese wieder öffnen. Wir brauchen also 2 Funktionen. Eine zum Schließen und eine zum Öffnen der Schranken. Im Skript haben wir dafür (in der Reihenfolge zuerst schließen und dann öffnen): function CloseSchranke() und function OpenSchranke(). Die Funktionsrümpfe, die übrigens ohne Fehler laufen würden sehen so aus. function CloseSchranke() function OpenSchranke() Wie gesagt, würden die ohne Fehler laufen. Nur passieren würde da noch nichts. Jetzt müssen wir noch sagen was die Funktionen machen sollen. Dazu bedienen wir uns der Funktion EEPSetSignal. Diese sieht allgemein so aus: EEPSetSignal(Signal-ID,Signalstellung)

Im Handbuch werden die zu übergeben Werte für die Signalstellung nicht direkt beschrieben. Das sieht man erst wenn man sich das Beispiel anschaut. Für die Schranken gelten folge Werte: 1 = öffnen Schranke 2 = schließen Schranke Der Befehl zum Schließen der Schranke mit der ID 21 muss demzufolge so lauten: EEPSetSignal(21,2) Die komplette Funktion mit den Schranken ID's 21 und 22 dann so: function CloseSchranke() EEPSetSignal(21,2) EEPSetSignal(22,2) Die komplette Funktion zum Öffnen: function OpenSchranke() EEPSetSignal(21,1) EEPSetSignal(22,1) Die restlichen Zeilen des Skripts. clearlog() Löscht jeden Text im EEP Ereignisfenster, könnte man drauf verzichten, wenn man das Fenster nicht zum Testen braucht print("... ",EEPVer) Gibt den Text zwischen " und " plus der EEP-Version (EEPVer) im EEP- Ereignisfenster aus (kann man also auch drauf verzichten) function EEPMain() return 1 Bitte immer drin lassen. Dies ist die Einsprungsfunktion. Wer schon mal in C programmiert hat, weiß das. Diese Grundversion der Funktion reicht, wenn man nicht besondere Dinge machen will. Hier könnte man z.b. Variablen mit Startwerten versehen (initialisieren), die im gesamten Skript verwet werden (globale Variablen). Mehr möchte ich jetzt nicht drauf eingehen. Das wäre etwas für ein anderes Thema. Was jetzt noch benötigt wird ist ein Fahrzeugkontaktpunkt zum Schließen und einer zum Öffnen der Schranken. Kontaktpunkt zum Schließen:

Der Aufruf erfolgt mit dem Funktionsnamen CloseSchranke ohne Klammern. Kontaktpunkt zum Öffnen:

Das war es auch schon. Viel Spaß beim Ausprobieren.