Aufzugsteuerung



  • Frage bezüglich Modulen und wie man damit umgeht.

    Hier die main:

    #include "Aufzug.h"
    #include "AufzugSim.h"

    static EreignisT EreignisTrace1[] =
    {
    {2, Etage2, Erdgeschoss},
    {30, Etage1, Etage3},
    {40, Erdgeschoss, Etage1},
    {45, Etage1, Erdgeschoss},
    {46, Etage1, Etage2},
    {10000}
    };

    int main()
    {
    InitialisiereAufzugTreiber();

    // InitialisiereSimulator(15);
    InitialisiereSimulator(EreignisTrace1);

    for ()
    {

    // Hier sollte Ihr Steueralgorithmus stehen!

    SimuliereZeitschritt();
    }

    return 0;
    }

    die Headerdatei:

    #ifndef _AUFZUG_H_
    #define _AUFZUG_H_

    /--------------------------------------------------------------------/
    /* Typdefinitionen /
    /
    --------------------------------------------------------------------*/

    // Aufzählungstyp für den Zustand der Aufzugskabine
    enum ZustandT {abwaertsfahrend, aufwaertsfahrend, stehend};

    // Abwärts- und Aufwärts-Ruftasten pro Etage (true = gedrückt,
    // false = nicht gedrückt). Abwaerts[0] und Aufwaerts[3] haben keine
    // Bedeutung.
    struct RuftastenT
    {
    bool Abwaerts[4];
    bool Aufwaerts[4];
    };

    // Zustandsinformationen zur Aufzugskabine
    // Position: Wert zwischen 0 und 30, 0 = Erdgeschoss, 10 = Etage 1,
    // 20 = Etage 2, 30 = Etage 3, Werte dazwischen zeigen an,
    // dass der Aufzug sich zwischen zwei Etagen befindet,
    // z.B. 26 = zwischen Etage 2 und Etage 3.
    // Zustand: Kabine ist aufwärts- / abwärtsfahrend oder stehend.
    // Alarmtaste: true = gedrückt, false = nicht gedrückt
    // Etagentaste: pro Etage, true = gedrückt, false = nicht gedrückt
    struct KabineT
    {
    unsigned short Position;
    ZustandT Zustand;
    bool Alarmtaste;
    bool Etagentaste[4];
    };

    /--------------------------------------------------------------------/
    /* Variablendeklarationen /
    /
    --------------------------------------------------------------------*/

    // Globale Variable zum Abfragen der Informationen der Aufzugkabine
    extern KabineT Kabine;

    // Globale Variable zum Abfragen der Ruftasten
    extern RuftastenT Ruftasten;

    /--------------------------------------------------------------------/
    /* Funktionsdeklarationen /
    /
    --------------------------------------------------------------------*/

    // Funktion zur Initialisierung des Aufzugtreibers. Vor der ersten
    // Nutzung des Treibers muss dieser initialisiert werden.
    extern void InitialisiereAufzugTreiber();

    // Funkionen zum Öffnen und Schließen der Kabinentüren
    extern void OeffneTueren();
    extern void SchliesseTueren();

    // Funktionen, um den Aufzug in Bewegung zu setzen
    extern void StarteAufwaertsfahrt();
    extern void StarteAbwaertsfahrt();

    // Funktion zum Anhalten der Aufzugbewegung
    extern void StoppeAufzugfahrt();

    #endif

    Wie implementiert man den Steueralgorithmus? Brauche ich die Varablen aus der Aufzug.h Datei?



  • Formatiere ersteinmal deinen Code mit den entsprechenden C++-Tags hier im Forum...


Anmelden zum Antworten