32-Bit Wortverarbeitung

Funstriker

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe folgende Aufgabe und komme nicht mit der digitalen Wortverarbeitung zurecht. Kann mir jemand helfen, wie ich da rangehen muss? Ich weiß, dass UD, OD, XOD Befehle UND, ODER, Exclusiv Oder sind.
Und das ich das ED0 Mit "L ED0" laden kann.


Erstellen Sie eine digitale Meldesteuerung nach DIN mit zweifach Blinklicht für eine 32-Bit Wortverarbeitung (Befehle UD, OD, XOD). Die Verarbeitung soll nicht bitweise, sondern wortweise erfolgen. Die 32-Bit Störmeldeeingänge wirken auf einen Störmeldespeicher. Kommende Meldungen blinken schnell, quittierte Meldungen sind im Störmeldespeicher statisch und gehende Meldungen (quittiert, Störmeldebit auf 0) blinken langsam. Der Quittiertaster sei binär.
Erstellen Sie eine Lösung für das ED0, MD100 und als Anzeige AD4
 
????

Was will den euer Lehrer jetzt von euch?

So ganz raff ich das nicht.

Kannst du die Aufgabenstellung mal übersetzen?

gruß wolder
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich denke jedes Bit ist eine Störmeldung. Wenn das Eingangs-Bit "1" wird soll das Ausgangs-Bit schnell leuchten.

Wenn das jeweilige Merkbit (MD100) gestzt wird, dann ist es quittiert und der Ausgang ändert sich auf langsam Blinken.

Wenn Der Eingang dann "0" ist, ister der Ausgang das ebenfalls.
 
Hallo,
ich würde erstmal versuchen, das binär (also für einen Eingang und einen Ausgang und einen Merker) umzusetzen und wenn das dann geht es mittels (Doppel-)Wortverarbeiteung zu reproduzieren ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich denke jedes Bit ist eine Störmeldung. Wenn das Eingangs-Bit "1" wird soll das Ausgangs-Bit schnell leuchten.

Wenn das jeweilige Merkbit (MD100) gestzt wird, dann ist es quittiert und der Ausgang ändert sich auf langsam Blinken.

Wenn Der Eingang dann "0" ist, ister der Ausgang das ebenfalls.

Danke für die Antworten!!
Kann mir jemand ein Beispiel geben wie ich das in Step 7 umsetze?? Also wie das Eingans-Bit "1" setze und das dann das Ausgang-Bit schnell leuchtet.
Ich komme leider mit dieser Doppel Wortverarbeitung überhaupt nicht klar
 
Hier eine Lösungsvorschlag für deine Hausaufgabe.
Aber damit Du auch was lernst dabei "verlange" ich das Du den CODE zu verstehen lernst
und ihn dann kommentierst

Code:
FUNCTION FC 1 : VOID
TITLE =
VERSION : 0.1
 
VAR_TEMP
  TEMP_Blinken_schnell : DWORD ; 
  TEMP_Blinken_langsam : DWORD ; 
END_VAR
 
BEGIN
 
NETWORK
TITLE =Blinktakt 1 aus HW-Konfig auf DW legen
      U     M      0.1; // schneller Blinktakt
      SPBN  X001; 
      L     DW#16#FFFFFFFF; 
      T     #TEMP_Blinken_schnell; 
X001: UN    M      0.1; // schneller Blinktakt
      SPBN  X002; 
      L     DW#16#0; 
      T     #TEMP_Blinken_schnell; 
X002: NOP   0; 
 
NETWORK
TITLE =Blinktakt 2 aus HW-Konfig auf DW legen
      U     M      0.5; // langsamer Blinktakt
      SPBN  Y001; 
      L     DW#16#FFFFFFFF; 
      T     #TEMP_Blinken_langsam; 
Y001: UN    M      0.5; // langsamer Blinktakt
      SPBN  Y002; 
      L     DW#16#0; 
      T     #TEMP_Blinken_langsam; 
Y002: NOP   0; 
 
NETWORK
TITLE =Quittieren
      U     M     10.0; // Quittierung
      SPBN  M001; 
      L     ED     0; 
      T     MD   100; 
M001: NOP   0; 
 
NETWORK
TITLE =Doppelwortverarbeitung
      L     ED     0; 
      L     MD   100; 
      XOD   ; 
      L     ED     0; 
      UD    ; 
      L     #TEMP_Blinken_schnell; 
      UD    ; 
      T     AD     4; 
      L     ED     0; 
      L     MD   100; 
      UD    ; 
      L     AD     4; 
      OD    ; 
      T     AD     4; 
      L     ED     0; 
      L     MD   100; 
      XOD   ; 
      L     MD   100; 
      UD    ; 
      L     #TEMP_Blinken_langsam; 
      UD    ; 
      L     AD     4; 
      OD    ; 
      T     AD     4; 
END_FUNCTION
 
Zuletzt bearbeitet:
Kommende Meldungen blinken schnell, quittierte Meldungen sind im Störmeldespeicher statisch und gehende Meldungen (quittiert, Störmeldebit auf 0) blinken langsam.

Noch eine Verständnisfrage:
Gehende Meldung, wie lange blinkt die langsam, bzw. wann ist die "Meldung" der gehenden Meldung eigentlich weg? Quittiert ist und Störung ist auch weg, also ist eigentlich nichts mehr anzuzeigen, oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Noch eine Verständnisfrage:
Gehende Meldung, wie lange blinkt die langsam, bzw. wann ist die "Meldung" der gehenden Meldung eigentlich weg? Quittiert ist und Störung ist auch weg, also ist eigentlich nichts mehr anzuzeigen, oder?

Da hab ich auch gegrübelt.
Aber da dies eine Hausaufgabe ist und mit der Realität nix zu tun hat,
glaube ich der Lehrer hat folgendens gemeint.

Eingang kommt => Meldung kommt steht an

Quittierung anstossen => bestehende Meldungen werden quittiert und stehen dauernd an (da der Eingang ja noch ansteht)

Erst jetzt kann wohl der Eingang wieder false werden
wenn dies passiert => Meldung geht steht an

beim nächsten quittieren wird Meldung geht wieder gelöscht

Das Ganze ist etwas verwirrend weil wohl an der Realität vorbei
 
Hier eine Lösungsvorschlag für deine Hausaufgabe.
Aber damit Du auch was lernst dabei "verlange" ich das Du den CODE zu verstehen lernst
und ihn dann kommentierst

Code:
FUNCTION FC 1 : VOID
TITLE =
VERSION : 0.1
 
VAR_TEMP
  TEMP_Blinken_schnell : DWORD ;                [COLOR=Red]//Eintrag in Variablentabelle mit Datentyp Doppelword[/COLOR]
  TEMP_Blinken_langsam : DWORD ; 
END_VAR
 
BEGIN
 
NETWORK
TITLE =Blinktakt 1 aus HW-Konfig auf DW legen
      U     M      0.1; // schneller Blinktakt
      SPBN  X001;    [COLOR=Red]// Springe zu X001, wenn VKE=0 [/COLOR]
      L     DW#16#FFFFFFFF;   [COLOR=Red]// Lade Dopplword in Hexadezimal[/COLOR]
      T     #TEMP_Blinken_schnell;   [COLOR=Red]// Transferiere in Variable[/COLOR]
X001: UN    M      0.1; [COLOR=Red]// schneller Blinktakt [/COLOR]  
      SPBN  X002;                       [COLOR=Red]// Springe zu X002, wenn VKE=0 [/COLOR]
      L     DW#16#0;               [COLOR=Red]// Lade Doppelword in Hexadezima[/COLOR]l              T     #TEMP_Blinken_schnell; 
X002: NOP   0;              [COLOR=Red]// Nulloperation, keinen Einfluss[/COLOR]
 
NETWORK
TITLE =Blinktakt 2 aus HW-Konfig auf DW legen
      U     M      0.5; // langsamer Blinktakt
      SPBN  Y001; 
      L     DW#16#FFFFFFFF; 
      T     #TEMP_Blinken_langsam; 
Y001: UN    M      0.5; // langsamer Blinktakt
      SPBN  Y002; 
      L     DW#16#0; 
      T     #TEMP_Blinken_langsam; 
Y002: NOP   0; 
 
NETWORK
TITLE =Quittieren
      U     M     10.0; [COLOR=Red]// Quittierung[/COLOR]
      SPBN  M001; 
      L     ED     0;    [COLOR=Red]// Lade Eingangsdoppelword[/COLOR]
      T     MD   100; [COLOR=Red]// Transferiere in MD 100[/COLOR]
M001: NOP   0; 
 
NETWORK
TITLE =Doppelwortverarbeitung
      L     ED     0;                             [COLOR=Red]//Lade Eingangsdoppelword[/COLOR]
      L     MD   100;                             [COLOR=Red]//Lade Merkerdoppelwort[/COLOR]
      XOD   ;                                    [COLOR=Red] // Exklusiv Oder Verknüpfung aus [/COLOR]ED0 und MD100
      L     ED     0;                             // Lade Eingangsdoppelword
      UD    ;                                     // UNd-Verknüpfung mit ED0
      L     #TEMP_Blinken_schnell;                // Lade schnellen Blinktakt
      UD    ;                                     [COLOR=Red]// UNd-Verknüpfung mit Variable [/COLOR]schnellen Blinktakt
      T     AD     4;                             [COLOR=Red]// Transferiere zur Anzeige [/COLOR]
      L     ED     0;                             [COLOR=Red]// Lade Eingangsdoppelword[/COLOR]
      L     MD   100;                           [COLOR=Red]  // Lade Merkerdoppelwort[/COLOR]
      UD    ;                                     // Und Verknüpfung aus ED und MD
      L     AD     4;                             [COLOR=Red]// Laden der Anzeige[/COLOR]
      OD    ;                                     [COLOR=Red]// UNd-Verknüpfung mit AD4[/COLOR]
      T     AD     4;                            [COLOR=Red] // Transferiere zur Anzeige  [/COLOR]
      L     ED     0; 
      L     MD   100; 
      XOD   ; 
      L     MD   100; 
      UD    ; 
      L     #TEMP_Blinken_langsam; 
      UD    ; 
      L     AD     4; 
      OD    ; 
      T     AD     4; 
END_FUNCTION

So ich habe jetzt mal die Kommentare eingefügt. Ich habs so einigermaßen verstanden, aber warum hast du den "SPBN" Befehl benutzt? Was bringt der?
 
Zurück
Oben