Programmieren von Mikrocomputern in
     automatisierten Systemen

     Automatisieren und Vernetzen mit Industrie-PC

 
 
Sitemap ::info-rlp :: PSPICE  :: Elektrotechnik-Basics :: C-Programmierung :: AT04 :: ELI04 :: C51 :: 
 
 Pfad ::: Mikrocontroller / Förderband-Situation

 

 

1.2     
 

Projekte realisieren
 
 
  1.2.6.3  Förderband-Situation -  Fehlerauswertung  
         
   
 1.                                                                   
zum Anfang der Seite


 
 Situation - So schaut´s aus

   zur Weiterleitung der ELI04-Ausarbeitungen auf die Grafik klicken

 

   zum Vergrößern auf die Grafik klicken


  

 
   

D. Oberhausen

 

 
   
 2.                                                        
zum Anfang der Seite Strategie-Vorschlag zur Lösung
technischer Probleme
J. Lindner



  zum Vergrößern des Fotos auf die Grafik klicken




   Auf Anraten der AT04-ler  wurden die Lichtschranken mit  
   reflexionsarmen schwarzen Papier ausgestattet und zusätzlich
   mit Blenden an den LDRs versehen

 

 3.                                                                                         
zum Anfang der Seite Ergänzungsvorschlag zur
Strategie

 

 
  Strategie-Ergänzung D. Oberhausen - 04.06.2005
via E-Mail

- Ergänzungsvorschlag StarOffice-Datei

                     Vorschlag andere Darstellung
- als StarOffice-Datei



 

 
   
 4.                                                                   
zum Anfang der Seite "Kausalkette"


  zum Vergrößern Schaltskizze auf die Grafik klicken
- Schaltskizze als StarOffice-Datei

Kausalkette
Lichtschranke unterbrochen => Transistor schaltet => Relais schaltet => Tastenanschluss auf Board überbrückt =>
  => Port 0^0 LOW  => „if (sbTaste == 0) { sbLED = 0; }“ => Port 2^0 LOW =>
  => Ausgang Treiber (nichtinvertierend) HCT541 LOW => LED leuchtet

 
   
 5.                                                                   
zum Anfang der Seite Problemformulierung

02.06.2005   AT04, Moderation: M. Bottler

Werkstücke werden nach Zuschnitt nicht richtig getrennt

   => Keine Vereinzelung der Werkstücke

   => Keine Lackierung der aneinander liegenden Flächen



05.06.2005  Marco Sonne  via E-Mail

Ausgangssituation:

Eine Anlage schneidet lange Blöcke zu Würfeln. Nach dem Zuschneiden werden die Würfel lackiert. Im Prozess kann es vorkommen dass zwei Würfel aneinander kleben bleiben und dann nicht lackiert werden können



05.06.2005  Daniel Oberhausen  via E-Mail

Ausgangssituation:

Das Material wird über ein Forderband transportiert. In der ersten Anlaufstelle wird das Material in gleichgroße Würfel geschnitten. In der zweiten Station werden diese, dann lackiert und abtransportiert.

In dieser Problemformulierung wird nur die zweite Station (das Lackieren) mit möglichen Fehlern bzw. Folgefehlern definiert.

Aufgrund der nicht fachgerechten Trennung des Materials in der 1. Station, ist es möglich, dass sich zwei Würfel unmittelbar nebeneinander in der Lackiererei befinden. Daraus ergibt sich folgendes Problem: Die aneinander liegenden Seiten der Würfel werden nicht lackiert!
 

 
 
 6.                                                                   
zum Anfang der Seite Lösungsvorschläge - schriftlich

05.06.2005  Marco Sonne  via E-Mail

Problemstellung:

- Fehlerhafte Würfel sollen erkannt werden.
- Fehlerhafte Würfel sollen dual gezählt werden.
 

 
       
 





























































































































 
 7.                                                                   
zum Anfang der Seite Lösungsvorschläge - grafisch als Programmablaufplan (PAP)
alle Teams
     
Team G. Hower und B. Schneider

Quellcode

02.06.2005
zum Vergrößern auf die Grafik klicken

03.06.2005 via E-Mail
zum Vergrößern auf die Grafik klicken
     
Team K. Greweling und N. Mühlhaus

    -  

02.06.2005
zum Vergrößern auf die Grafik klicken

20.06.2005 via E-Mail
zum Vergrößern auf die Grafik klicken


 
     
Team R. Müller und M. Sonne

Quellcode

02.06.2005
zum Vergrößern auf die Grafik klicken

05.06.2005 via E-Mail
zum Vergrößern auf die Grafik klicken
     
Team M. Bottler, R. Löffler
           und  M. Nau

- Programmablaufplan als StarOffice-Datei
                             02.06.2005 via E-Mail

Quellcode


Team M. Bottler, M. Klein

Quellcode

02.06.2005
zum Vergrößern auf die Grafik klicken

02.06.2005 via E-Mail
zum Vergrößern auf die Grafik klicken
     
Team C. Brück und M. Johanns

- Programmablaufplan als StarOffice-Datei
                             06.06.2005 via E-Mail

Quellcode

02.06.2005
zum Vergrößern auf die Grafik klicken

06.06.2005 via E-Mail
zum Vergrößern auf die Grafik klicken
     
Team D. Carl und D. Oberhausen

Quellcode D. Carl

Quellcode D. Oberhausen

02.06.2005
zum Vergrößern auf die Grafik klicken

04.06.2005 via E-Mail
zum Vergrößern auf die Grafik klicken
     
Team A. Hansen und C. Willems


Quellcode

02.06.2005
zum Vergrößern auf die Grafik klicken

06.06.2005 via E-Mail
zum Vergrößern auf die Grafik klicken
 

 
 
Gemeinsame Lösungsvorschlag


Die Teams beschlossen, einen gemeinsamen Lösungsvorschlag für die weitere Problemlösung als Grundlage für die Erstellung des Quellcodes in C heranzuziehen.

Nach Sichtung aller Vorschläge wurde der
Entwurf des Teams A. Hansen und C. Willems
ausgewählt. Herr Willems kündigte an, die Idee
einiger anderer Entwürfe, die Lichtschranken (LS)
parallel über eine UND-Verknüpfung abzufragen,
in den gemeinsamen Entwurf zu übernehmen.

Der erweiterte Entwurf (s. Abb. links) wurde den angehenden Technikern am 07.06.2005 via E-Mail von Herrn Willems zur Verfügung gestellt.

 Programmablaufplan (pdf)
- Programmablaufplan

     

 

 
 
























 
 8.                                                                   
zum Anfang der Seite Quellcode von G. Hower und B. Schneider 10.06.2005 (Anfangswert ucValue geändert)
zusätzlich Programmablaufplan (korrigiert 11.06.2005) zum besseren Verständnis




 

- Programmablaufplan

#include <reg932.h>

sbit LS1 = P0^0;                                            // Deklaration der Lichtschranke 1
sbit LS2 = P0^1;                                            // Deklaration der Lichtschranke 2

void main( void )
{
    unsigned char ucValue = 0xFF;                  // Definition der Variablen ucValue
                                                                    // Initialisierung ucValue mit 0xFF

    P2M1 = 0x00;                                            // Port 2 als quasi-bidirektional
    P2M2 = 0x00;



    P2 = ucValue;                                            // Wert der Variable ucValue
                                                                     // dem Port 2 zuweisen

    while ( 1 )                                                   // Endlosschleife
    {
        if (( LS1 == 0 ) && ( LS2 == 0 ))               // Abfage der Lichtschranken
        {



            ucValue = ucValue -1;                         // dekrementiere ucValue




            P2 = ucValue;                                     // gibt Variable an Port 2 aus



            while ( LS2 == 0 )                                // warten, solange
            {                                                         // LS2 noch unterbrochen
                ;
            }
        }

    }
}


Weitere Vorschläge zur Visualisierung bei Präsentationen

   zum Vergrößern auf die Grafik klicken
 - Quelldatei, die als PDF exportiert wurde
      zum Vergrößern auf die Grafik klicken
    - Programmablaufplan in Farbe

 

 
 
 9.                                                                   
zum Anfang der Seite Simulation und Test 
Präsentation
am 10.06.2005 durch die Teams


Beobachtungskriterien

Fachkompetenzen
 
Methodenkompetenzen Sozialkompetenzen
Fachwissen
 - Beantworten der Fragen
Lösungsvorschläge schriftlich
    sowie grafisch darstellen
Genaue Formulierung der
    Problemstellung
Quellcode - Struktur Quellcode verständlich erklärt Auftreten
Strukturierte Problemdarstellung Simulation Deutliche Aussprache
  Medieneinsatz Teamarbeit


 
Vorgehensweise nachvollziehbar  
zum Vergrößern auf die Grafik klicken zum Vergrößern auf die Grafik klicken

 

 
   
10.      
zum Anfang der Seite µVision - alles auf einem Blick:  debug-Modus ... View ... Disassembly Window  
Farbige Darstellung hier zur Veranschaulichung erweitert

Programmcounter
C-Quellcode 
Hexcode  
Assembler-Code
 

Hausaufgabe:     Kommentierung des Assembler-Codes

INFO-Tipps:

=>   µVision - alles auf einem Blick:  debug-Modus ... View ... Disassembly Window
=>  Siemens A51 Pocket-Guide
     







Rätselhafter Name in folgender Zeile:

C:0x0003    7FFF   MOV R7,#OCRDH(0xFF)   


Expertenantwort M. Baldischweiler
Der Simulator versucht jeder Adresse, also auch den SFR-Adressen ein Symbol zuzuordnen. Da er nicht erkennen kann, dass es sich um eine Konstante handelt, wird die SFR-Adresse aufgelöst.
So ähnliche Effekte gibt es auch bei bestimmten Code-Adressen, die zufälligerweise auch mit einer Adresse im xdata-Bereich übereinstimmen.


Hinweis 1
=> SFR-Adressen               => xdata-Bereich

Hinweis 2
OCDRH ist die Abkürzung des SFR-Registers "Output compare D register high"
mit eben gerade der SFR-Adresse 0xFF.

Obwohl hier wirklich nur eine Konstante (0xFF => 1111 1111, alle LEDs aus) gemeint war,
ergänzt der Simulator den Namen der SFR-Adresse 0xFF. Auswirkungen auf die Funktion hat es aber keine.

Die Namensauflösungen (Symbolnamen) aller SFRs finden Sie in der Datei:      Philips P89LPC93X

 

 
       
         
    Quellennachweis:
Grafik der "Lernbausteine" der Original-LEGO-Website entnommen
   

 

    :: Stand :: 25.06.2005
  
    :: Glossar :: Block diagram :: Memory :: Special function registers :: Philips P89LPC93X :: Siemens A51 Pocket-Guide
 
              Beratender Fachlehrer: