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

Seite 3 von 9 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 90

Thema: SCL -Arrays mit einander vergleichen

  1. #21
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von vladi Beitrag anzeigen
    Gibt es "angemessen frech sein"..weiss nicht.
    Was ist "Gelbe Karte", bzw. die Folgen davon.. Punkte in Flensburg?
    V.
    Ich und beleidigt, nö, deshalb stand doch das dahinter!

    @Matthias

    Du mußt mein Funktionsbeispiel entsprechend umändern. Also Länge auf 32.
    Da das Array ja als In Definiert ist mußt du in diesem Falle für jeden Datentyp einen eigene Funktion schreiben, das ist das Einfache.
    Die zweite Möglichkeit wäre, nicht die Arrays zu übergeben, sondern nur Any oder Pointer und sich damit dann in dem FC unabhängig vom Typ eine Vergleichsroutine zu bauen. Wohl kompliziert und ich weiß nicht, ob das so gelingen würde.

    Ich würde es dann so versuchen:

    Input als Any
    Aus dem Any die Daten über DB , Start und Länge herausholen.
    Die Daten in ein internes Array (z.Bsp. Byte) umkopieren, evtl. geht das sogar ganz einfach mit dem SFC20 und dem Any!!!
    Der Inhalt der Array of Byte ist dann zwar im Prinzip wirr, aber es geht ja nur darum zu sehen, ob gleich oder ungleich, also gleich wirr, reicht dazu.
    Geändert von Ralle (02.09.2008 um 15:22 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  2. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    MatthiasH24 (02.09.2008)

  3. #22
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hi,
    Zitat Zitat von MatthiasH24 Beitrag anzeigen
    Wie meinst du ob ich überhaupt SCl verwenden? Wenn du meine persönliche Programmierfähigkeit damit meinst dann kann ich das im mom nicht 100% bejahen

    Wenn es um das Projekt geht dann ja. Das lustigste ist ja das ich gar nichts anderes machen soll. und an der fh lernt man nur awl und fup habe bis gestern noch nie was von SCL gehört gehabt...
    Nein, deine persönliche Programmierfähigkeit wollte ich nicht checken, sondern ob du Step 7 mit SCL hast!
    SCL und GRAPH sind Programmiereditoren, die normalerweise nicht im Step7 für "normalsterbliche"(Standard) vorhanden sind; das muss man extra kaufen, bzw. man kauft die "Step 7 Professional" Software.

    Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Projekte und Sprachen  

  4. #23
    MatthiasH24 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.09.2008
    Beiträge
    132
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Da wird mir ja schon vom lesen schlecht .

    Ne ich habe deins schonmal umgeschrieben um es an meine arrays anzupassen.

    Das was ich benötige ist der vergleich auf ungleich aber das ist ja kein prob das zu ändern und das exit habe ich auch rausgemacht weil da ja noch mehere abfragen von anderen arrays kommen soll.

    Was ich nur als frage habe wenn ich als ergebnis haben will -1,1,0 kann ich dann einfach sagen Ergebnis : INT;

    bei der variablen deklaration?

  5. #24
    MatthiasH24 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.09.2008
    Beiträge
    132
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Und wegen der Software wie am Anfang gesagt ich bin im Praxissemester bei einer Firma die nur Maschinen programmiert also die ham die "Professional" aber bis jetzt immer mit Beckhoff SPS und nicht mit Siemens nur der jetztzige Kunde will nun mal unbedingt Siemens SPS und wenn er das will bekommt er es auch.

    Nur das Problem ist das wenige S7 können und die, die es können nehmen nur SCL

  6. #25
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Klar, Ergebnis : INT; deklarieren.
    Dann musst du in der Schleife auch enspr. Werte zuweisen, nicht TRUE oder FALSE!
    .....
    Ergebnis := 1;
    usw.
    V.
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Scl  

  7. #26
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Zitat Zitat von MatthiasH24 Beitrag anzeigen
    Nur das Problem ist das wenige S7 können und die, die es können nehmen nur SCL
    Das hat sicher seinen Grund ...
    Wie hättest du es denn sonst gemacht ? In Standard-AWL ? Das ist doch viel zuviel Arbeit ...

  8. #27
    MatthiasH24 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.09.2008
    Beiträge
    132
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hi ja ich hätte es wahrscheinlich in standard awl programmiert weil wir im studium da so drauf trainiert wordén sind. Aber ich muss agen umso mehr ich mit SCL mache umsoweniger verstehe ich wieso man uns das nicht im studium zeigt.

    An vladi noch eine frage

    das mit dem ergebnis als int deklarieren ist klar, aber das problem ist nur das ich egal welchen datentyp als array ich habe immer die ergebnise für kleiner -1 größer 1 und gleich 0 benötige

    Ps: Einen wunderschönen Guten Morgen wünsche ich

  9. #28
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von MatthiasH24 Beitrag anzeigen
    An vladi noch eine frage

    das mit dem ergebnis als int deklarieren ist klar, aber das problem ist nur das ich egal welchen datentyp als array ich habe immer die ergebnise für kleiner -1 größer 1 und gleich 0 benötige

    Ps: Einen wunderschönen Guten Morgen wünsche ich
    Ich frag mal was nach dazu. Heißt das, du willst die Ergebnisse des Vergleichs in einem weiteren Array speichern? Denn, wenn du 32 Werte vergleichst, wo ist dann die Grenze für größer oder kleiner? Ansonsten, wo ist das Problem? Du baust deine IF ... Then ... Else - Vergleiche und jeweils als Ergebnis (INT) weist du dann -1, 0 oder +1 zu.

    Ergebnis := -1;
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  10. #29
    MatthiasH24 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    02.09.2008
    Beiträge
    132
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Ne das ganze zeug dient nur zum vergleichen. da wir die andere programmteile aber eins zu eins von beckhoff zu siemens übersetzten können brauchen wir eben diesen vergleichs wert.

    das problem ist aber wenn ich bei der variablen deklaration die arrays nicht als INT deklariere sagt er mir als fehlermeldung das ergebnis muss vom typ bool sein

    Hier das prob

    [php]FUNCTION FC100 : INT
    VAR_INPUT
    wert1: ARRAY[1..32] OF Bool;
    wert2: ARRAY[1..32] OF Bool;
    END_VAR
    VAR_IN_OUT
    Ergebnis: Int;

    END_VAR

    VAR_TEMP
    i: Int;
    END_VAR
    // Anweisungsteil

    FOR i := 1 TO 32 DO
    1. IF wert1[i] < wert2[i] THEN Ergebnis := -1;
    ELSIf
    wert1[i] > wert2[i] THEN Ergebnis := 1;
    ELSE
    Ergebnis :=0;
    END_IF;

    //wert1 := wert2;

    END_FOR;


    FC100 := 32;
    END_FUNCTION
    [/php]

    Fehlermeldung

    Bei 1. der Ausdruck muss vom datentyp Bool sein

  11. #30
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Naja '<' oder '>' macht bei Bool kein Sinn-zumindest in der S7-Welt.
    Du musst das mit NOT, Vergleich auf FALSE, oder Konvertierungsfunktion machen.
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)

Ähnliche Themen

  1. DBs nach einander lesen
    Von sb9674 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 07.12.2009, 20:28
  2. 2 Arrays aus 2 DBs vergleichen
    Von Günni1977 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 03.12.2008, 17:14
  3. dynamische Arrays?
    Von merlin im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 30.05.2008, 16:06
  4. Pointer und Arrays
    Von SolSna im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 26.02.2008, 20:16
  5. arrays mit udt...
    Von Jochen Kühner im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 01.12.2005, 14:27

Lesezeichen

Berechtigungen

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