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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Array?????

  1. #1
    Registriert seit
    09.09.2005
    Beiträge
    108
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo also hier mal ein Problem

    Ich habe mehrere Artikle ca 30 .welchen daten zugeordnet sind

    Also Gewicht pro meter , Gewichtsaufnahme, Breite,

    Die Artikel haben auch Nummern.
    So jetzt das eigentliche Prob.
    An meiner Maschine habe ich ein OP 3 (leider keine Rezepturen möglich)
    Über dies OP3 soll die Art. Nr eingegeben werden und anhand der Nummer die Maschinenegeschwindikeit berechnet werden.
    Soweit so gut.
    Bisher habe ich es so gelöst das ich für jenden Art. einen DB gemacht habe also DB 27 28 etc.
    In die DBs dann die werte für breite gewicht usw.
    Am OP wird dann über ein MW der DB aufgerufen und die Werte weiter verarbeitet.
    Das geht soweit auch ganz gut. Bis heute hatten wir nur die info dass die Art. nummern bei 27 anfangen wir also schön 27 + ca 30 ok 57 DBs.

    Jetzt haben wir aber das Prob das die Art.Nr nicht vortlaufend sind sondern
    bei 27 anfangen dann mal nen Sprung auf 100 und was für uns das schlimmste ist über 511 gehen.
    Die CPU (313C) kann DBs leider nur bis 511 und jetzt such ich nach ner Lösung.


    Was wir schön überlegt haben ist dass ganze über Arrays zu lösen.
    Also einen Db mit der Breite einen mit dem Gewich und einen mit der Gewichtsaufnahme.

    Wie würdet IHR an die Sache rangehen?
    Zitieren Zitieren Array?????  

  2. #2
    Registriert seit
    06.01.2005
    Ort
    im schönen Lipperland
    Beiträge
    4.472
    Danke
    498
    Erhielt 1.143 Danke für 736 Beiträge

    Standard

    Um es für mich einfach (leider etwas unübersichtlich) zu machen würde ich für jeden Artikel einen DB anlegen und zB bei 1 anfangen. In der Steuerung oder im OP würde ich dann die Nummer umkopieren. Also Artikelnummer 27 = DB1.
    Mit Arrays wäre es bestimmt eleganter aber sicher auch nicht einfacher
    Früher gab es Peitschen .... heute Terminkalender

  3. #3
    Adenauer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.09.2005
    Beiträge
    108
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Die Idee mit dem konvertieren der nummern habe ich auch schon gehabt.
    Dann bräuchte mann aber immer ne liste zum vergleichen. Was ich vermeiden will.
    Ausserdem soll es über das OP möglich nachher auch möglich sein neue Art. einzupflegen.

  4. #4
    Registriert seit
    25.07.2005
    Ort
    Vogelsbergkreis
    Beiträge
    1.717
    Danke
    48
    Erhielt 68 Danke für 60 Beiträge

    Standard

    Zitat Zitat von Adenauer
    Die Idee mit dem konvertieren der nummern habe ich auch schon gehabt.
    Dann bräuchte mann aber immer ne liste zum vergleichen. Was ich vermeiden will.
    Ausserdem soll es über das OP möglich nachher auch möglich sein neue Art. einzupflegen.
    Rezeptur im Panel machen? Text zu kurz.
    Geändert von seeba (20.03.2006 um 18:08 Uhr)

  5. #5
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard

    Als Programmierer aus der Hochsprachenwelt würde ich einen UDT mit einem Feld für die Rezeptnummer und weiteren Feldern für die anderen benötigten Daten (Breite, Gewicht) anlegen. Von diesem UDT wird dann in einem DB ein ausreichend großes Array angelegt.

    Beim Hinzufügen eines Rezeptes wird dann einfach immer das erste leere Array-Element verwendet.

    Beim Rezeptwechsel muß man einmal von vorne nach hinten das Array nach dem passenden Element durchsuchen.

    Wenn irgendwann doch mehr als 30 Rezepte benötigt werden, dann muß nur der DB entsprechend vergrößert werden.


    Gruß Axel
    Man muß sparn wo mn knn!

  6. #6
    Registriert seit
    11.10.2005
    Ort
    Pirmasens
    Beiträge
    401
    Danke
    158
    Erhielt 74 Danke für 54 Beiträge

    Standard

    Hallo,
    Wenn ich es richtig verstanden habe hast du ja nicht sehr viele Daten pro Art. Nummer , warum legst du dir nicht
    Die Daten immer nach einander in einem DB ab und ermittelst nur an hand der Art. Nummer die Anfangsadresse des Datenbereichs im DB und lädst die mit SFC 20 dann komplett in einen Bearbeitungs DB mit dem du dann immer rechnest hier wurde auch eine SFC 20 schon vorgestellt mit der du einfach indirekt Adressieren kannst also mit INT werten. Würde mit der Artnummer die Anfangsadresse berechnen z.B.
    Die Länge hätte 2 Worte Eingabe im OP „1“ mal 2 = Anfangsadresse DBW2 .
    Du müsstest allerdings die ganzen Artnummern anlegen. Und zum werte eingeben könntest Du auch mit diesem Baustein arbeiten in dem du die Daten wieder in einem Bild eingibst diese in einem Dritten DB ablegst und über die Artnummer die Anfangsadresse errechnen mit Tasten Drück rüber speichern in den Daten DB.
    Ich hoffe es ist einigermaßen verständlich.


    HDD

  7. #7
    Noch ein Gast Gast

    Ausrufezeichen

    Zitat Zitat von afk
    Als Programmierer aus der Hochsprachenwelt würde ich ...

    Wenn irgendwann doch mehr als 30 Rezepte benötigt werden, dann muß nur der DB entsprechend vergrößert werden.
    ... es genauso machen. Aber finde erst mal die max. DB-Länge deiner
    CPU heraus!

    Die kleinen von Siemens sind leider nicht nur bei den Baustein-Nummern,
    sondern auch bei der max. DB-Länge etwas amputiert. Preiswerte Abhilfe:
    z.B. VIPA

    Gruß G.
    Zitieren Zitieren Aber ...  

  8. #8
    Adenauer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.09.2005
    Beiträge
    108
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    @ afk

    könntest du deinen Vorschlag vieleicht ein bisschen näher beschreiben??
    Hab leider in dieser form von Programmierung noch nicht viel zu tun gehabt.

  9. #9
    Registriert seit
    20.03.2006
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Noch ein Gast
    ... es genauso machen. Aber finde erst mal die max. DB-Länge deiner
    CPU heraus!

    Die kleinen von Siemens sind leider nicht nur bei den Baustein-Nummern,
    sondern auch bei der max. DB-Länge etwas amputiert. Preiswerte Abhilfe:
    z.B. VIPA

    Gruß G.
    AFAIK ist die max. Länge eines DB bei der S7 300 8KByte. Selbst wenn er jeden Wert als Dword ablegt, kann er 2000 Werte in einem DB spaichern, oder?

    Wo liegen denn bei den Vipas die Grenzen?

  10. #10
    Registriert seit
    04.01.2006
    Ort
    Wuppertal
    Beiträge
    664
    Danke
    122
    Erhielt 105 Danke für 91 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Genau Dein Problem wird im Pro3 Lehrgang von Siemens gelöst, schick mir doch mal ne PN

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 21.12.2016, 17:03
  2. Array in Nov Ram
    Von COOLT im Forum CODESYS und IEC61131
    Antworten: 41
    Letzter Beitrag: 22.09.2009, 20:19
  3. In: Array ???
    Von husox81 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 15.12.2008, 07:07
  4. Array
    Von rainer-step5 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 31.10.2006, 19:46
  5. Bool-Array in Byte-Array
    Von Techniker im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 13.01.2006, 19:12

Lesezeichen

Berechtigungen

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