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

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

Thema: 60 verschiedene Programme mit 10 Positionen

  1. #11
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke Ralle ,
    werde ich mir durchlesen
    nur zielt meine frage eher wie ich di zahl 1 bis 60 ohne schleifen drehe zu adressieren

  2. #12
    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 MK_Auto Beitrag anzeigen
    Danke Ralle ,
    werde ich mir durchlesen
    nur zielt meine frage eher wie ich di zahl 1 bis 60 ohne schleifen drehe zu adressieren
    Ich kann dir nicht so richtig folgen, was meinst du???
    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

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

    MK_Auto (02.03.2008)

  4. #13
    Registriert seit
    17.09.2006
    Beiträge
    136
    Danke
    0
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Zitat Zitat von MK_Auto Beitrag anzeigen
    Also ich habe ein op177B dor wähle ich den Typ als zahl vor 1-60
    und will den die Achspositionen aus dem UDT DB auslesen und übergeben bzw wenn die Achse neu geteached wird wieder reinschreiben.
    Es muss doch eine einfache Lösung geben die Zahl direkt zu verarbeiten ohne 60 schleifen zu drehen oder ?
    Das OP177B hat eine Rezepturverwaltung, da kannst du deine 10 Positionen einrichten und dann einfach 60 Sätze anlegen. Das geht auch über Excel und ne Speicherkarte. Der Bediener wählte dann einfach 1-60 oder eine entsprechende Beschreibung. Dann stehen deine Positionen direkt in den entsprechenden DB-Variablen nämlich genau 10. UDT und Adress-Offset und alles andere brauchst du dann nicht. Warum so kompliziert?

  5. Folgender Benutzer sagt Danke zu Graph&SCL_Freak für den nützlichen Beitrag:

    MK_Auto (02.03.2008)

  6. #14
    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 Graph&SCL_Freak Beitrag anzeigen
    Das OP177B hat eine Rezepturverwaltung, da kannst du deine 10 Positionen einrichten und dann einfach 60 Sätze anlegen. Das geht auch über Excel und ne Speicherkarte. Der Bediener wählte dann einfach 1-60 oder eine entsprechende Beschreibung. Dann stehen deine Positionen direkt in den entsprechenden DB-Variablen nämlich genau 10. UDT und Adress-Offset und alles andere brauchst du dann nicht. Warum so kompliziert?
    der Weg ist auch möglich, ob er einfacher ist...
    Die Beiträge vom Ralle und andere Kollegen bez. indirekte Adressierung sind der richtige Weg, und soooo schwierig ist die Sache nicht. Und ein einigermassen guter Programmierer sollte das können.

    Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren rezeptur  

  7. Folgender Benutzer sagt Danke zu vladi für den nützlichen Beitrag:

    MK_Auto (02.03.2008)

  8. #15
    Registriert seit
    17.09.2006
    Beiträge
    136
    Danke
    0
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Zitat Zitat von vladi Beitrag anzeigen
    Hi,
    der Weg ist auch möglich, ob er einfacher ist...
    Die Beiträge vom Ralle und andere Kollegen bez. indirekte Adressierung sind der richtige Weg, und soooo schwierig ist die Sache nicht. Und ein einigermassen guter Programmierer sollte das können.
    Vladi
    Zu Zeiten als es noch keine Displays mit viel Speicher gab musste man das so machen, aber wenn er sowieso ein Display mit Rezepturverwaltung hat warum dann so kompliziert. Ausserdem ist die Rezepturverwaltung viel leichter erweiterbar und kosten keinen SPS-Speicher. Den 'richtigen' Weg gibt es IMHO nicht. Ich kann das ganze auch mit einem PC und einer SQL-DB machen. Ist auch nicht 'falsch' nur aufwendiger.

  9. Folgender Benutzer sagt Danke zu Graph&SCL_Freak für den nützlichen Beitrag:

    MK_Auto (02.03.2008)

  10. #16
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Ich had ein kleines beispiel gemacht wie man das in Wincc flexible indirekt adressieren kan. (Wincc Flexible 2007)
    Wenn Sie ein alteres WinCC flex habe und meine Beispiel nicht offen kunte, mach die variable so: Sie legen als erste die variable mit die adresse an, voor pos1 = DB100.DBD2 zb AdressePos1 uzw. Die adresse fur die positie's in das recept DB100.DBW[AdressePos1] uzw.
    Wenn sie das so macht benodige sie 20 tags fur die 10 positie's in die 60 recepten + ein tag fur das recept nummer
    Angehängte Dateien Angehängte Dateien

  11. #17
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Ich kann dir nicht so richtig folgen, was meinst du???
    Hallo Ralle
    ich meine damit das ich wenn ich den Typ 1-60 vorwähle ich ja irgendwie meinen pointer stricken muss
    aso muss ich erstmal schauen welchen Typ habe ich und dann den adressbereich festlegen oder ??
    Also die zahlen von 1 - 60 durchladen und wenns nicht passt springen bzw wenns passt adressierung vornehmen
    das meinte ich eine einfache löseung wenn zB Typ 44 ist die Zahl 44 als quasi variable nehmen

    Gruss Michael

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

    Beitrag

    Hi,
    jawohl, ich denke so:
    Code:
    L  Typ  // dein Programmtyp, Integer
    L   1    // weil Programmtyp 1...60 ist
    -D      // ich möchte aber im DB bei 0 anfangen..
    L  40   // so lang ist z.B dein Bereich Daten pro Typ, kannst machen wie du wilst
    *D
    SLD 3 // Pointer daraus machen, fertig
    LAR1   // ab ins Adressregister damit
     
    AUF DB "Daten"
    L  DBD[AR1, P#0.0]    // erster Daten DBD
    T  DB10.DBD0   // Baustein für aktl. Daten
    AUF DB "Daten"
    L  DBD[AR1, P#4.0]  // zweiter Daten DBD
    T  DB10.DBD4   // Baustein für aktl. Daten
    usw.
    D.h. deine Adresse im Pointer hat hier die Werte je nach Programmtyp:
    1->0
    2->40
    3->80
    4->120 usw.

    ACHTUNG mit der Geschichte:
    AUF DB "Daten"
    L DBD[AR1, P#0.0] // erster Daten DBD
    T DB10.DBD0 // Baustein für aktl. Daten, die SPS öffnet DB10 hier..
    AUF DB "Daten" // SONST bleibt noch DB10 offen!!!
    L DBD[AR1, P#4.0] // zweiter Daten DBD
    T DB10.DBD4 // Baustein für aktl. Daten
    AUF DB "Daten"
    .....
    Gruss: Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Pointer  

  13. #19
    MK_Auto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    31.10.2006
    Beiträge
    105
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Vladi ich danke dir ich glaube da komme ich solangsam mit
    hat mir schon mal sehr geholfen
    nur bin ich nicht der erfahrene AWL programmierer kann ich die 10 DINTS mir im Baustein ablegen und dann in kop schleben usw ?
    Gruss Michael

  14. #20
    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 MK_Auto Beitrag anzeigen
    Hallo Vladi ich danke dir ich glaube da komme ich solangsam mit
    hat mir schon mal sehr geholfen
    nur bin ich nicht der erfahrene AWL programmierer kann ich die 10 DINTS mir im Baustein ablegen und dann in kop schleben usw ?
    Gruss Michael
    Ich meinte es auch so, wie Vladi das dann gezeigt hat.

    Das hier:

    AUF DB "Daten"
    L DBD[AR1, P#0.0] // erster Daten DBD
    T DB10.DBD0 // Baustein für aktl. Daten
    kannst du

    1. 10 x hintereinander machen:

    AUF DB "Daten"
    L DBD[AR1, P#0.0] // erster Daten DBD
    T DB10.DBD0 // Baustein für aktl. Daten
    AUF DB "Daten"
    L DBD[AR1, P#4.0] // zweiter Daten DBD
    T DB10.DBD4 // Baustein für aktl. Daten
    AUF DB "Daten"
    L DBD[AR1, P#8.0] // erster Daten DBD
    T DB10.DBD8 // Baustein für aktl. Daten
    AUF DB "Daten"
    L DBD[AR1, P#12.0] // zweiter Daten DBD
    T DB10.DBD12 // Baustein für aktl. Daten

    ...
    2. in einer Schleife durchlaufen lassen

    3. diesen FC machen lassen (enthält intern den SFC 20, BLK_MOVE)
    siehe mein Link weiter oben
    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

Ähnliche Themen

  1. Positionen für Anbau-Schränke
    Von Larry Laffer im Forum Schaltschrankbau
    Antworten: 4
    Letzter Beitrag: 29.06.2011, 19:35
  2. Positionen speichern
    Von Nordischerjung im Forum Simatic
    Antworten: 45
    Letzter Beitrag: 23.10.2008, 16:00
  3. Antworten: 1
    Letzter Beitrag: 07.10.2008, 11:43
  4. Antworten: 13
    Letzter Beitrag: 27.02.2008, 16:47
  5. mehrere verschiedene Positionen mit 3 Zählern ??
    Von Fabian_GmbH im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 27.06.2005, 16:56

Lesezeichen

Berechtigungen

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