Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 31

Thema: Hardwareaddressen in ein Array abspeichern

  1. #11
    Registriert seit
    04.03.2010
    Beiträge
    44
    Danke
    7
    Erhielt 5 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    SEL wählt einen von zwei Eingangswerten aus, wenn du auf Bit Ebene runter gehst wirst du es vermutlich verstehen. Wenn G=0 ist wird IN0 übergeben , wenn G=1, wird IN1 übergeben. Die Abfrage auf die 240 rührt von den 4 höchstwertigsten Bits in einem Byte. Wenn die Schleife 5 mal durchlaufen ist müsste die Abfrage spätesten am Schluß zu dem Ergebnis kommen das es 4 aufeinanderfolgende Bits gibt ansonsten gibts halt keine 4 aufeinander folgende Bits.

    In dem Dokument ist unter anderem SEL und SHL erklärt:
    http://cache.automation.siemens.com/...3_HB/SCL_d.pdf
    Geändert von Didaddy (14.09.2013 um 14:06 Uhr) Grund: Link eingefügt
    Gruß Didaddy

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    > Erlaubt ist was funktioniert, wenn man alles perfekt machen will wird man nie fertig. <

  2. #12
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.738
    Danke
    444
    Erhielt 924 Danke für 744 Beiträge

    Standard

    Code:
    
        BIT_TEST:= SEL ( G:= BYTE_TO_INT (TEST_BYTE) >= 240, IN0:= BIT_TEST, IN1:= true);
    
    ist von der Sache her das Gleiche wie
    Code:
    
        IF BYTE_TO_INT (TEST_BYTE) >= 240 THEN
            BIT_TEST:= true;
        END_IF;
    
    Ich mag nur diese IF-THEN-Orgien nicht so.
    Außerdem will ich mich intensiver mit SCL beschäftigen und dazu gehört auch, mögliche Anweisungen auszutesten.


    Erst werden die 4 höchstwertigen Bits geprüft, so wie Didaddy es richtig erklärt hat. Dann wird immer geschoben und zwar um eine Stelle (N:= 1) und nicht (nur), wenn 'ne 1 kommt. Das letzte Schieben ist eigentlich überflüssig, stört aber auch nicht und damit ist es mir lieber, als 'ne zusätzliche Code-Zeile.
    Geändert von hucki (14.09.2013 um 14:25 Uhr) Grund: Schieben noch näher erklärt

  3. #13
    Registriert seit
    03.09.2013
    Beiträge
    93
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ok danke für eure erklärung

    Ich möchte das ganze mit einem 4*4 feld probieren das heisst mit einem zweidimensionalem array. Ich würdr mit zwei eingangs byte arbeiten. Die diagonale werde ich mit schnittpunkte arbeiten

    Geht das ?

    Gruss

  4. #14
    Registriert seit
    04.03.2010
    Beiträge
    44
    Danke
    7
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Da musste denke ich schon mehr input liefern sonst weiß hier vermutlich niemand was du gerne machen möchtest. Aber wie gesagt bissel basics haste ja jetzt schon bekommen, wie wärs wenn de einfach mal loslegst und wir dann deinen Code optimieren. Zweidimensionale Arrays, da könnte eine geschachtelte FOR Schleife weiterhelfen.
    Gruß Didaddy

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    > Erlaubt ist was funktioniert, wenn man alles perfekt machen will wird man nie fertig. <

  5. #15
    Registriert seit
    03.09.2013
    Beiträge
    93
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ok danke ich werde mal ausprobieren was ist eine geschachelte for schleife


    Gruss

  6. #16
    Registriert seit
    04.03.2010
    Beiträge
    44
    Danke
    7
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Eine Schleife in einer Schleife.
    Gruß Didaddy

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    > Erlaubt ist was funktioniert, wenn man alles perfekt machen will wird man nie fertig. <

  7. #17
    Registriert seit
    03.09.2013
    Beiträge
    93
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich habe jetzt sehr viele Sachen ausprobiert, aber ich weiss nicht wie man 16 Eingänge
    In ein zweidimensionales Array definiert und wie man die Diagonale auswertet.
    Könnt ihr mir eine Denkhilfe geben.

    Gruss

  8. #18
    Registriert seit
    04.03.2010
    Beiträge
    44
    Danke
    7
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Versteh ehrlich gesagt noch nicht wirklich was du machen möchtest, vor allem was du mit Diagonale auswerten meinst.
    Wenn du nicht weißt wie man ein 2 Dimensionales Array deklariert das geht so:

    Code:
    VAR
      ab2D : ARRAY[1..4, 1..4] OF BOOL;
    END_VAR
    
    // Array Einträge kannst du so beschreiben, über den Index bestimmst du welche Speicherstelle du beschreiben willst 
    ab2D[1,1]:= TRUE;
    Gruß Didaddy

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    > Erlaubt ist was funktioniert, wenn man alles perfekt machen will wird man nie fertig. <

  9. #19
    Registriert seit
    03.09.2013
    Beiträge
    93
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ok danke
    Es tut mir leid das ich nicht von anfang gesagt habe was ich mache.
    Ich möchte ein 4 gewinnt programmieren.
    Mit einem 4*4.feld

    gruss

  10. #20
    Registriert seit
    04.03.2010
    Beiträge
    44
    Danke
    7
    Erhielt 5 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    4Gewinnt, kam mir bekannt vor, da hattest du kürzlich schon einen Thread offen. Ronin hat da ja schon einige gedanken Anstöße geliefert. Das ganze ist möglich auch eine sehr interessante Aufgabe, aber gewiss nicht so das man das geschwind runter programmiert. Haste schon ne genauere Vorstellungen wie die Eingabe/ Visualisierung erfolgt? Ein 4*4 Feld wäre dann ja eigentlich für 4Gewinnt viel zu klein. Was hat denn das normalerweise 7*6 oder so, nicht ganz sicher. Wenn de das wirklich machen willst, würd ich es auf jeden Fall gleich in der Größe vorsehen, in der man es auch sinnvoll spielen kann. Ansonsten mußte ja hinterher die Visualisierung... wieder anpassen.

    Anmerkung:
    Denke ein ARRAY of BOOL ist da erst mal nicht so geeignet, ein 2Dimensionales ARRAY OF INT würde besser passen. Du solltest ja später auch abfragen können ob kein Stein, ein roter oder ein gelber Stein drin ist.
    0 = Kein Stein
    1 = Roter Stein drin
    2 = Gelber Stein drin
    Geändert von Didaddy (14.09.2013 um 18:44 Uhr) Grund: Anmerkung hinzugefügt
    Gruß Didaddy

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    > Erlaubt ist was funktioniert, wenn man alles perfekt machen will wird man nie fertig. <

  11. Folgender Benutzer sagt Danke zu Didaddy für den nützlichen Beitrag:

    marlob (15.09.2013)

Ähnliche Themen

  1. Antworten: 50
    Letzter Beitrag: 09.08.2012, 09:31
  2. Antworten: 4
    Letzter Beitrag: 17.11.2005, 11:13
  3. Antworten: 5
    Letzter Beitrag: 14.06.2005, 14:55
  4. pew auslesen und fortlaufend in ein Array abspeichern
    Von Anonymous im Forum Programmierstrategien
    Antworten: 0
    Letzter Beitrag: 13.06.2005, 18:13
  5. pew auslesen und fortlaufend in ein Array abspeichern
    Von Anonymous im Forum Programmierstrategien
    Antworten: 0
    Letzter Beitrag: 13.06.2005, 17:59

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •