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

Ergebnis 1 bis 8 von 8

Thema: Anfänger braucht Hilfe bei Typenerkennung

  1. #1
    wusel Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich sitze hier vor meinem ersten S7-Projekt und stehe vor folgendem Problem.
    Wie geht man vor wenn man eine 9-stellige eingegebene Typennr (wird über Tesimod an die SPS weitergegeben) mit den hinterlegten Tyen vergleichen möchte ob die Typnr vorhanden oder nicht vorhanden ist.
    Ich hoffe ich habe mich klar ausgedückt.

    Viele Grüße

    wusel
    Zitieren Zitieren Anfänger braucht Hilfe bei Typenerkennung  

  2. #2
    Registriert seit
    20.04.2004
    Beiträge
    38
    Danke
    9
    Erhielt 8 Danke für 4 Beiträge

    Standard


    Hans Berger "S7 FUP und SCL" sowie "S7 FUP und KOP" sind Pflichtlektüre für jeden S7 Programmierer.Hans Berger ist für mich der S7 Guru schlechthin.

    Für Fortgeschrittene kann ich "IT in der Industrieautomatisierung"
    Planung und Einsatz von Ethernet_LAN_Techniken im Umfeld von Simatic-Produkten von Mark Metter,Rainer Bucher sehr empfehlen.

    MfG
    mad_max

  3. #3
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo Wusel,

    da klapperste einfach in einer Schleife die hinterlegten Typen ab. Stimmt das 1 .Zeichen nicht überein gehts gleich zum nächsten Typ, ansonsten zum nächsten Zeichen. Ist es als String bzw Char hinterlegt? Irgendwo im Forum wirste schon nen Ansatz finden mit Pointern (hat nix mit den Pointer Sisters zu tun ). Nimmst dir aber gleich bissel viel vor fürs erste Projekt...

    MfG
    André Räppel

  4. #4
    wusel Gast

    Standard

    Hallo,

    vielen Dank erstmal für das Stichwort Pointer. Nun habe ich mir folgenden Baustein zusammengestellt:

    // Pointer Start vorbelegen
    L P#0.0
    T #Zeiger_Quelle
    // Schleifenzähler auf 50 vorbesetzen da max 50 Typen in Datenverwaltung
    L 50

    // Beginn der Schleife
    Begn: T #Schleifenzaehler_01
    AUF DB [#DB_Nr_Quelle_Verw_intern]
    L DBD [#Zeiger_Quelle]
    L #IdentNr
    ==I
    = "IdenNr_NIO"
    L #Zeiger_Quelle
    L P#10.0
    +I
    T #Zeiger_Quelle
    L #Schleifenzaehler_01
    LOOP Begn

    Leider klappt das mit dem hochzählen der #Zeiger_Quelle nicht so ganz. Ich möchte am Anfang das DB20.DBD 0.0 laden. Dies klappt auch, der Vergleich klappt auch. Aber in der zweiten Runde der Schleife bekomme ich leider nicht die Daten des DB20.DBD 10.0.

    Was mache ich falsch?

    Viele Grüße

    wusel

  5. #5
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo wusel,

    mach mal +D

    MfG
    André Räppel

  6. #6
    wusel Gast

    Standard

    Hallo Andre`

    vielen Danke für den Hinweis. Ich habe mit den Datenformaten wohl noch so meine Probleme, aber ich denke das wird. Vor allem mit so schneller Hilfe, also vielen Dank nochmal.

    Anfangs dachte ich allerdings dies funktioniert auch nicht da ich beim Durchlaufen der Schleife am Ende immer den ersten Wert (also DB20.DBD 0) in der Standardspalte stehen hatte. Ich dachte am Ende der Schleife steht dort auch mein zuletzt angesprochenen Wert und dies wäre DB.DBD 500. Aber mit vielen Haltepunkten habe ich festgestellt das das Programm wirklich so läuft wie es soll.

    Nur würde ich gerne wissen warum ich beim einmaligen Duchlaufen der Schleife ohne Haltepunkte in der Standardspalte immer meinen Anfangswert stehen habe. Wo liegt hier mein Verständnissproblem?

    Viele Grüße

    wusel

  7. #7
    wusel Gast

    Standard

    Hallo,

    ich bins nochmal mit einer neuen Frage.

    Folgende Funktion habe ich nun erstellt:

    U "Typ_einlesen"
    //Iden_Nr einlesen
    L #IdentNr
    AUF DB [#DB_Nr_Quelle_intern]
    T DBD [#Zeiger_Frei]

    //Zeiger um 4 erhöhen
    L #Zeiger_Frei
    L P#4.0
    +D
    T #Zeiger_Frei

    //Bürstendaten kopieren
    L #Buerste
    AUF DB [#DB_Nr_Quelle_intern]
    T DBD [#Zeiger_Frei]

    //Zeiger um 2 erhöhen
    L #Zeiger_Frei
    L P#2.0
    +D
    T #Zeiger_Frei

    //Kurbeldaten kopieren
    L #Kurbel
    AUF DB [#DB_Nr_Quelle_intern]
    T DBD [#Zeiger_Frei]

    //Zeiger um 2 erhöhen
    L #Zeiger_Frei
    L P#2.0
    +D
    T #Zeiger_Frei

    //Programmdaten kopieren
    L #Prg
    AUF DB [#DB_Nr_Quelle_intern]
    T DBD [#Zeiger_Frei]



    Dies klappt auch soweit ganz gut (ich überprüfe dies immer mit dem Simulationsprogramm von Siemens)
    Aber wenn ich dann den betreffenden Datenbaustein öffne befinden sich nicht die Werte darin die eigendlich eingetragen werden sollen. Kann dies das Simulationsprogramm nicht oder mache ich noch einen Fehler.

    Wer kann mir helfen, wäre für jeden Tip dankbar.

    Viele Grüße

    Marion

  8. #8
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Wusel,

    kann es sein, dass Du versehentlich den Offline-DB öffnest?

    Versuche doch mal parallel zum Programmlauf auf dem
    Simulator eine Variablentabelle (VAT) mit den entsprechenden
    Daten zu öffnen.

    Damit kannst Du in jedem Fall auf die Online-Daten zugreifen
    und diese bei Bedarf auch steuern.

    Gruß M.

Ähnliche Themen

  1. Anfänger braucht Hilfe
    Von bogenseller im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 26.09.2011, 09:17
  2. Anfänger braucht Hilfe
    Von Micha18 im Forum Stammtisch
    Antworten: 35
    Letzter Beitrag: 09.07.2011, 06:00
  3. SPS-Anfänger braucht Hilfe!!!
    Von Airness im Forum Programmierstrategien
    Antworten: 14
    Letzter Beitrag: 07.01.2007, 10:25
  4. Anfänger in der SPS braucht Hilfe
    Von Uwe H. im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 27.03.2005, 00:07
  5. Antworten: 15
    Letzter Beitrag: 01.03.2005, 22:25

Lesezeichen

Berechtigungen

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