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

Ergebnis 1 bis 10 von 10

Thema: Zuordnung bestimmter Merkmaleund erneuter Zugriff darauf

  1. #1
    Registriert seit
    02.09.2005
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich arbeite mit einer Simantic 300 und S7.
    Bei mir laufen Teile über ein Förderband. Zu Beginn soll dem Teil eine Nummer und eine Farbe zugeordnet werden z.B.:
    Teil1 = weiß
    Teil2 = schwarz, etc.
    Im späteren Verlauf soll dann die Farbe mit dem Ist-Zusatnd verglichen werden, wofür ich aber durch die die Teilnummer (die ich durch Zählen herausbekomme) wieder auf die Soll-Farbe zugreifen muss.

    Kann ich zwei Merkmale (Teilnummer und Farbe) einander in S7 zuordnen?
    Wie geht das und wie greife ich danach wieder darauf zu?

    Für den Fall dass das gar nicht geht, stünde mir auch WinCC zur Verfügung. Aber eigentlich möchte ich es lieber über S7 direkt lösen.
    Zitieren Zitieren Zuordnung bestimmter Merkmaleund erneuter Zugriff darauf  

  2. #2
    Paula ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.09.2005
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Die S7-Version ist 5.3 und
    die CPU mit der ich arbeite eine 315DP.
    Zitieren Zitieren Weitere Angaben  

  3. #3
    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 Paula
    Hallo,

    ich arbeite mit einer Simantic 300 und S7.
    Bei mir laufen Teile über ein Förderband. Zu Beginn soll dem Teil eine Nummer und eine Farbe zugeordnet werden z.B.:
    Teil1 = weiß
    Teil2 = schwarz, etc.
    Im späteren Verlauf soll dann die Farbe mit dem Ist-Zusatnd verglichen werden, wofür ich aber durch die die Teilnummer (die ich durch Zählen herausbekomme) wieder auf die Soll-Farbe zugreifen muss.

    Kann ich zwei Merkmale (Teilnummer und Farbe) einander in S7 zuordnen?
    Wie geht das und wie greife ich danach wieder darauf zu?

    Für den Fall dass das gar nicht geht, stünde mir auch WinCC zur Verfügung. Aber eigentlich möchte ich es lieber über S7 direkt lösen.
    Ich denke, dass es mit S7 sehr schwer wird... Vorallem wenn man es flexibel und erweiterbar gestalten will. Ich würde da jetzt zu WinCC + SQL Datenbank + Scripts greifen.
    Zitieren Zitieren Re: Zuordnung bestimmter Merkmaleund erneuter Zugriff darauf  

  4. #4
    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

    Wieviele Teile sind denn in der Anlage?
    Wenn es überschaubar ist und du die Teilenummerierung dann wieder mit 1 beginnen kannst, wenn das 1.Teil aus der Anlage rausgelaufen ist, kannst du es ganz einfach über einen Datenbaustein machen.

    Bsp:

    100 Teile passen in die Anlage
    1. Teil: DB100.DBW0 --> Int 5 für Farbe Weiß
    2. Teil: DB100.DBW2 --> Int 3 für Farbe Blau
    3. Teil: DB100.DBW4 --> Int 5 für Farbei Weiß
    ...

    Die Adresse im DB kannst du über Berechnung mit der Zählnummer und indirekter Adressierung ermitteln.

    Du kannst im DB auch ein Array anlegen und dann über die Array-Nummer auf die Daten zugreifen.
    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

  5. #5
    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 Ralle
    Wieviele Teile sind denn in der Anlage?
    Wenn es überschaubar ist und du die Teilenummerierung dann wieder mit 1 beginnen kannst, wenn das 1.Teil aus der Anlage rausgelaufen ist, kannst du es ganz einfach über einen Datenbaustein machen.

    Bsp:

    100 Teile passen in die Anlage
    1. Teil: DB100.DBW0 --> Int 5 für Farbe Weiß
    2. Teil: DB100.DBW2 --> Int 3 für Farbe Blau
    3. Teil: DB100.DBW4 --> Int 5 für Farbei Weiß
    ...

    Die Adresse im DB kannst du über Berechnung mit der Zählnummer und indirekter Adressierung ermitteln.

    Du kannst im DB auch ein Array anlegen und dann über die Array-Nummer auf die Daten zugreifen.
    Gut, wenn die Teile überschaubar sind, dann sicherlich, aber es ist nicht flexibel und beliebig erweiterbar!

  6. #6
    Paula ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.09.2005
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    die Teileanzahl ist tatsächlich sehr überschaubar. Maximal 20 Teile.
    Der Vorschlag war also, den Farben bestimmte Integerwerte zuzuordnen und diese in einem DB zu speichern, richtig?

    Leider habe ich bisher hauptsächlich in FUP programmiert und kenne mich mit den anderen Programmierarten nicht so aus.

    Wenn mein Zähler 1 ist für Teil 1 (schwarz), was mache ich dann?
    Wie ordne ich meinem Merker Schwarz einen Integerwert zu?

    Den Integerwert müsste ich dann mit Lade und Transferbefehlen in den DB schreiben, richtig?

  7. #7
    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 Paula
    Hallo,
    die Teileanzahl ist tatsächlich sehr überschaubar. Maximal 20 Teile.
    Der Vorschlag war also, den Farben bestimmte Integerwerte zuzuordnen und diese in einem DB zu speichern, richtig?

    Leider habe ich bisher hauptsächlich in FUP programmiert und kenne mich mit den anderen Programmierarten nicht so aus.

    Wenn mein Zähler 1 ist für Teil 1 (schwarz), was mache ich dann?
    Wie ordne ich meinem Merker Schwarz einen Integerwert zu?

    Den Integerwert müsste ich dann mit Lade und Transferbefehlen in den DB schreiben, richtig?
    Steht SCL zur Verfügung? Damit sollte es sich am einfachsten und übersichtlichsten realisieren lassen.

    Ich denke du musst mit Pointern arbeiten...

  8. #8
    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

    @Paula

    Genau so.

    Hier mal ein Bsp zum Auslesen der Farbe aus dem DB:

    Code:
    FUNCTION FC 52 : VOID
    TITLE =Farbe laden
    //Ermittelt abhängig von der Teilenummer die zugehörige Farbe, 
    //
    { S7_language := '7(1) Deutsch (Deutschland)  29.04.2005  10:13:00' }
    AUTHOR : Ralle
    FAMILY : Teile
    NAME : T_Load
    VERSION : 0.1
    
    VAR_INPUT
      Teile_Nr : INT ;	       //Teilenummer
      DB_TeileData : INT ;       //Teile-Datenbaustein
      START_DW : INT ;	       //Datenwortnummer mit 1. Teil 
    END_VAR
    VAR_OUTPUT
      
    END_VAR
    VAR_IN_OUT
      Farbe : INT ;	       //jeder Farbwert hat einen IntCode 
      ERROR: BOOL;
    END_VAR
    VAR_TEMP
      Teile_DB : INT ;	
      Adr : DWORD ;
      RETTAR1 : DWORD ;		
    END_VAR
    
    BEGIN
    NETWORK
    TITLE =Farbe laden
          TAR1  #RETTAR1; 
    
          SET;
          R ERROR;
    
    
    //      LOAD: NOP   0;
    
          L     #DB_TeileData ;           //DB mit den Farbwerten
          T     #Teile_DB;                  //muß Temp sein, sonst geht Auf DB nicht
    
          AUF   DB [#Teile_DB];        //Öffnen des DB mit den Farbwerten
    
    //Zeiger zusammenbasteln
    
          L     #Teile_Nr;  //Wert kleiner 1 ist Fehler
          L     1;
          <I;   
          SPB   ERRO;
    
          TAK;   
          L     20;          //Wert > 20 ist Fehler
          >I;    
          SPB   ERRO;                       
    
          L     #Teile_Nr;
          L     -1;
          +I;    
          L     2;
          *I;    
          L     #START_DW;
          +I;    
          T     #Adr;
    
          L     P#0.0;
          L     #Adr;
          SLD   3;
          +D;    
          LAR1;              //Adresse des Datenwortes mit dem Wert für Farbe
    
          L     DBW &#91;AR1,P#0.0&#93;;
          T     #Farbe;                        //Farbe wird ausgegeben
    SPA ENDE;
    
    ERRO&#58; NOP 0;
    
           SET;
           S ERROR;
    
    ENDE&#58; NOP 0;
    
    NETWORK
    TITLE =Ende
    
          LAR1  #RETTAR1; 
          BEA   ; 
    END_FUNCTION
    Das Einlesen geht Analog, nur dort schreibst du

    Code:
     L     #Farbe;                        //Farbe wird ausgegeben
     T     DBW &#91;AR1,P#0.0&#93;;
    Hab das schnell mal als Anregung zusammen geschrieben, könnten noch Schreibfehler im AWL-Code sein, probiers mal.
    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

  9. #9
    Paula ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.09.2005
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @seeba:
    Sorry aber was ist SCL?

    @Ralle:
    Danke, ich werde das erstmal ausprobieren.

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Paula
    Sorry aber was ist SCL?
    Ich finde SCL leichter als AWL, auch wenn jetzt manche SPS-Programmierer den Kopf schütteln werden.

    SCL ist die "Hochsprache" der S7.

Ähnliche Themen

  1. Erneuter Programmaufruf über Script
    Von Waldi1954 im Forum HMI
    Antworten: 4
    Letzter Beitrag: 14.04.2011, 11:40
  2. OP177B Zuordnung Funktionstasten
    Von Frank67 im Forum HMI
    Antworten: 3
    Letzter Beitrag: 02.02.2010, 09:01
  3. ANY-Pointer auf UDT mit Bestimmter Länge
    Von RONIN im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 07.08.2009, 07:16
  4. Antworten: 2
    Letzter Beitrag: 13.10.2005, 11:46
  5. Aufrufdauer bestimmter SFB's in einer S7-400
    Von Rengel im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 24.03.2005, 15:30

Lesezeichen

Berechtigungen

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