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

Seite 7 von 7 ErsteErste ... 567
Ergebnis 61 bis 69 von 69

Thema: Zugriff auf einen UDT / Array mit Variablen?

  1. #61
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Wolflesch Beitrag anzeigen
    ... nun wollte ich noch fragen ob man ein Array auch Löschen kann...
    Löschen im Sinne von entfernen - Nein ...
    Löschen im Sinne von "auf 0 setzen" - kein Problem :
    Code:
    FOR I := 1 to 50 BY 1 DO   // Beispiel-Schleife für Löschen eines Beispiel-ARRAY's
       Array_Variable[i] := 0 ;
    END_FOR ;
    Gruß
    LL

  2. #62
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Zitat Zitat von Wolflesch Beitrag anzeigen
    ich habe jetzt die negativen Zahlen mit der 2er-komplementärbildung und dem Setzen des Vorzeichen Bits hinbekommen
    Würdest du mir das näher erklären ...?
    Den Sinn dieser Maßnahme kann ich nicht so ganz nachvollziehen ...

    Gruß
    LL

  3. #63
    Registriert seit
    23.02.2008
    Beiträge
    45
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    um aus einer positiven Zahl eine negative Zahl des gleichen Betrags zu machen(+255*(-1)= 1111111100000001 = -255),so wird doch in der Informationstechnik subtrahiert (in Wirklichkeit addiert), achso die negative Zahl wird automatisch erzeugt,ich habe da ein bischen rumprobiert weil ich dachte da würde der Fehler liegen.

  4. #64
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    ... das mit den positiven und negativen Zahlen selbst ist mir schon klar. Mich hat interessiert, warum du das in deinem Programm ausmaskierst ...?

  5. #65
    Registriert seit
    23.02.2008
    Beiträge
    45
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo ich bins schon wieder, ich habe jetzt ein Programm geschrieben, welches
    die Periodenlänge des Kongruenz Zufallgenerators bestimmt(ab wieviel Zyklen
    sich die Folge wiederholt) es werden die ersten 10 Zahlen gespeichert in
    Merker 1, und jeweils die Anzahl der Zyklen in Period geschrieben, es hat schon einmal funktioniert (Zyklenanzahl 313) aber ich habe ein wenig verändert und jetzt funktioniert es nicht mehr,es zeigt immer schon bei 12
    Zyklen Wiederholung an,
    Code:
    FUNCTION_BLOCK fb10 VAR_INPUT zahl:DINT; END_VAR VAR_OUTPUT zyklus:BOOL; END_VAR VAR merker1:ARRAY[1..10]OF INT; merker2:ARRAY[1..10]OF INT; period:ARRAY[1..10]OF INT; zaehler1:INT:=1; zaehler2:INT:=0; break:BOOL:=false; END_VAR VAR_TEMP index:INT; index1:INT; index2:INT; END_VAR /////////////////////////////////////////////////////////////////////////////////////////////// BEGIN index:=DINT_TO_INT(zahl); IF break=true AND zaehler2<11 THEN zaehler2:=zaehler2+1; period[zaehler2]:=zaehler1; zaehler1:=1; break:=false; END_IF; zaehler1:=zaehler1+1; IF zaehler1 <=11 THEN merker1[zaehler1-1]:=index; merker2[zaehler1-1]:=index; ELSE FOR index2:= 2 TO 10 BY +1 DO merker2[index2-1]:=merker2[index2]; END_FOR; merker2[10]:=index; END_IF; IF zaehler1> 11 THEN FOR index1:=1 TO 10 BY +1 DO IF merker1[index1] = merker2[index1] THEN break:=true; zyklus:=true; ELSE break:=false; zyklus:=false; EXIT; END_IF; END_FOR; END_IF; END_FUNCTION_BLOCK

    Geändert von Wolflesch (13.06.2008 um 16:57 Uhr)

  6. #66
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    1. die code-tags sind immer noch nicht bei dir angekommen - das nervt!
    2. dann mach die änderungen rückgängig - dann funktioniert es wieder!
    3. vergleiche die funktionierende version mit der, die nicht funktioniert ... das kannst nur du, weil uns die andere nicht vorliegt!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #67
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Zitat Zitat von Wolflesch Beitrag anzeigen
    zaehler1:=1;

    merker1[zaehler1-1]:=index;
    Das ist ein Auszug aus deinem Code ...
    Beim ersten Durchlauf ist Zaehler1 = 1 - das bedeutet, dass du den merker1[0] indizierst. Die merker1 und auch merker2 sind aber von 1..10 deklariert ...

    Mit dem Indizieren hast du es aber ...

  8. #68
    Registriert seit
    23.02.2008
    Beiträge
    45
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die schnelle Antwort, jetzt habe ich endlich kapiert wie das mit dem Code geht, leider habe ich vor dem Ändern nicht gespeichert, zaehler1 hat doch den Anfangswert 1 also wird nie niedriger als 2 , das habe ich so gemacht weil die erste zahl noch nicht belegt war,

  9. #69
    Registriert seit
    23.02.2008
    Beiträge
    45
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Jetzt funktioniert es, ich hatte immer den OB121 in die Simulation geladen,
    ohne ihn funktioniert es,danke für die Antworten.

Ähnliche Themen

  1. Zugriff auf OPC Variablen
    Von mariobc im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 10.10.2011, 19:33
  2. Zugriff auf einen Array eines UDT`s
    Von Andreas- im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 04.09.2009, 19:02
  3. Array mit Variablen adressieren
    Von Jens im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 13.12.2006, 20:57
  4. Hardwarenaher Zugriff durch einen FC / FB
    Von mclear im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 10.07.2006, 15:53
  5. Antworten: 1
    Letzter Beitrag: 24.06.2003, 22:14

Lesezeichen

Berechtigungen

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