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

Ergebnis 1 bis 10 von 10

Thema: AWL Problem Bearbeitung

  1. #1
    Registriert seit
    20.11.2014
    Beiträge
    122
    Danke
    25
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe ein Problem was ich mir nicht erklären kann.
    Ich habe in AWL in einem Netzwerk ein paar Vergleiche gemacht, wo ich jedesmal ein Char mit einem DB Inhalt vergleiche.
    Jetzt kommt mein Problem, dieses Netzwerk wird auch laut STATUS abgearbeitet. Aber das nächste Netzwer aufeinmal nicht mehr obwohl ich dort nichts verändert habe. Dort steht im Status aufeinmal überall 0.
    Das übernächste wird wieder bearbeitet.
    Habe mal probiert das Netzwerk an einer andere Stelle einzusetzen, dann passiert das gleiche das wieder das nächste Netzwerk nicht bearbeitet wird.
    Habe ich da ein Fehler in diesem Netzwerk bei den ganzen Vergleichen evtl. ?

    U(
    L 'C'
    L "DB_ASM3LK2_DATEN".PROD_MAT_NR_1
    ==I
    )
    U(
    L '6'
    L "DB_ASM3LK2_DATEN".PROD_MAT_NR_2
    ==I
    )
    U(
    L '9'
    L "DB_ASM3LK2_DATEN".PROD_MAT_NR_3
    ==I
    )
    U(
    L '1'
    L "DB_ASM3LK2_DATEN".PROD_MAT_NR_4
    ==I
    )
    = M 34.0

    U(
    L '6'
    L "DB_ASM3LK2_DATEN".PROD_MAT_NR_5
    ==I
    )
    U(
    L '0'
    L "DB_ASM3LK2_DATEN".PROD_MAT_NR_6
    ==I
    )
    O
    U(
    L '5'
    L "DB_ASM3LK2_DATEN".PROD_MAT_NR_5
    ==I
    )
    U(
    L '9'
    L "DB_ASM3LK2_DATEN".PROD_MAT_NR_6
    ==I
    )
    = M 34.1



    Danke
    LG
    Zitieren Zitieren AWL Problem Bearbeitung  

  2. #2
    Registriert seit
    23.11.2012
    Ort
    Österreich
    Beiträge
    147
    Danke
    48
    Erhielt 19 Danke für 19 Beiträge

    Standard

    hallo stepppp7

    dein Netzwerk wird bearbeitet, sonst würdest du keinen Status sehen und Sprünge hast du laut deinen Code keinen eingebaut.
    Kann es sein, dass du vielleicht doch das VKE?
    Poste mal ein Screenshot deiner Online-Ansicht. Dann kann man mehr erkennen.

    MfG
    Kapo

  3. #3
    stepper7 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.11.2014
    Beiträge
    122
    Danke
    25
    Erhielt 1 Danke für 1 Beitrag

    Standard

    VKE und STATUS ist alles komplett auf 0 in dem nächsten Netzwerk..wird zwar bearbeitet aber da stimmt was nicht.
    Lösche ich mein Netzwerk davor wieder wird wieder alles normal bearbeitet darunter und im Status stehen wieder 1.
    Kann das sein das ich Fehler in meinem Netzwerk habe, weil ich zum Beispiel Char mit ==i vergleiche ? Denn in FUP geht das auch nicht.

  4. #4
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Meinst du denn das Statusbit oder das Statuswort? STA ist abhängig von Statusbit2. Also VKE 0 und STA 0 ist nicht ungewöhnlich.
    Du kannst auch Chars per <>I ==I vergleichen. Da keine typprüfung stattfindet. Solange der umgerechnete Integerwert gleich ist, dann liefert ==I auf jedenfall eine 1 und STA übrigens auch.

    mfG René

  5. #5
    Registriert seit
    23.11.2012
    Ort
    Österreich
    Beiträge
    147
    Danke
    48
    Erhielt 19 Danke für 19 Beiträge

    Standard

    hast du schon mal auf deine CPU geschaut ob sie einen SF Fehler aufweist?

    Problem 1: INT vergleich ist ein WORD vergleich, wobei CHAR nur 1 Byte lang ist
    Problem 2: Wenn dein DB nicht genug deklariert ist, bricht er den Vergleich in diesen Netzwerk ab und spring ins nächste --> Status und VKE sind null
    Geändert von kapo666 (14.06.2016 um 14:54 Uhr) Grund: ergänzung

  6. #6
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Zitat Zitat von kapo666 Beitrag anzeigen
    hast du schon mal auf deine CPU geschaut ob sie einen SF Fehler aufweist?

    Problem 1: INT vergleich ist ein WORD vergleich, wobei CHAR nur 1 Byte lang ist
    Problem 2: Wenn dein DB nicht genug deklariert ist, bricht er den Vergleich in diesen Netzwerk ab und spring ins nächste --> Status und VKE sind null
    Zu 1: dann hat er ein Problem mit der Auswertung, aber nicht im nächsten Netzwerk
    Zu 2: da der Zugriff symbolisch ist, kann man das eigentlich ausschliessen

    @TE:
    macht das nächste Netzwerk real was falsches oder glaubst Du das nur weil Du nur VKE und STAT auf null siehst?
    Schreib mal am Anfang des nächsten Netzwerkes:

    Code:
    SET
    =#Schmiermerker
    Was steht dann da im VKE?

    Edit: der Code ist einwandfrei!
    Geändert von borromeus (14.06.2016 um 17:13 Uhr) Grund: Ergänzung

  7. #7
    Registriert seit
    23.11.2012
    Ort
    Österreich
    Beiträge
    147
    Danke
    48
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Ok borromeus

    haste recht. hab mich beim testen ein bisschen verschaut

  8. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von stepper7 Beitrag anzeigen
    VKE und STATUS ist alles komplett auf 0 in dem nächsten Netzwerk..wird zwar bearbeitet aber da stimmt was nicht.
    Lösche ich mein Netzwerk davor wieder wird wieder alles normal bearbeitet darunter und im Status stehen wieder 1.
    Kann das sein das ich Fehler in meinem Netzwerk habe, weil ich zum Beispiel Char mit ==i vergleiche ? Denn in FUP geht das auch nicht.
    Was meinst Du eigentlich mit STATUS? Die Spalte "STA" rechts neben der Spalte "VKE" wenn man das AWL-Programm beobachtet?
    Hast Du mal einen Screenshot von Deinem Problem?

    Es ist nicht normal, wenn beim Beobachten Deines Programms die gesamte Spalte STA von einer = Anweisung bis zur nächsten = Anweisung nur 0 zeigt. Mindestens bei jedem Klammer_auf U( und jedem Klammer_zu ) muß STA als 1 angezeigt werden.

    Was für eine CPU programmierst Du mit welcher Programmiersoftware?


    Für S7-300/400 gilt:

    Ob Du BYTEs oder INTs mit ==I vergleichst ist nur relevant bei FUP/KOP, weil da (meistens) eine Typprüfung aktiv ist.
    In AWL vergleicht ==I die unteren 16 Bit vom AKKU1 mit den unteren 16 Bit vom AKKU2, ohne Typprüfung und egal wie der Inhalt der AKKUs zustande kam und egal was in den oberen 16 Bits der AKKUs steht.

    Wenn auf nicht vorhandene DB-Bytes zugegriffen wird, dann wird ein Bereichslängenfehler in den Diagnosepuffer eingetragen und der OB121 aufgerufen, und wenn der OB121 vorhanden ist und kein STOP erzwingt, danach das Programm mit dem Ersatzwert 0 fortgesetzt. Es wird kein Programmteil abgebrochen oder übersprungen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. #9
    stepper7 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.11.2014
    Beiträge
    122
    Danke
    25
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich habe das Problem gelöst bekommen, anscheinend muss das von mir nicht sauber programmiert gewesen sein.
    Erstmal habe ich gesehen das auf diesem Ersatzprogrammiergerät von Uns noch eine alte Version vom Simatic Manager war. Dort war V5.5 SP3.
    Das habe ich erstmal auf SP4 HF8 hochgerüstet.
    Dann habe ich einen eigenen FC erstellt, das ganze in FUP gelöst. Char´s in DB kopiert kopiert und anschliessend mit ==D Doppelwörter verglichen. Später in dem passenden FC (AWL) habe ich dann einfach nur die ausgewerteten Merker eingefügt.
    Jetzt funktioniert alles.
    Ich habe auch das Gefühl das Siemens mit dem V5.5 SP4 auch einige Sachen verbessert haben. Z.B kann man jetzt in FUP auch CHAR mit ==I vergleichen ohne das er einen Formalfehler anzeigt. Das ging mit dem SP3 vorher nicht.
    Vielen Dank !

  10. #10
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von stepper7 Beitrag anzeigen
    Ich habe auch das Gefühl das Siemens mit dem V5.5 SP4 auch einige Sachen verbessert haben. Z.B kann man jetzt in FUP auch CHAR mit ==I vergleichen ohne das er einen Formalfehler anzeigt. Das ging mit dem SP3 vorher nicht.
    Das ist keine Verbesserung sondern ein eher Bug, der heimlich zu einem Feature erklärt wurde, damit ein anderer Bug nicht mehr zuschlägt... Der Vergleich CHAR ==I in FUP ging auch schon vor dem SP4, man mußte nur bewußt die Typüberprüfung abschalten.
    Feld "Typprüfung von Operanden" ausgegraut.
    In TIA werden alle möglichen "intelligenten" Prüfungen für die typischerweise ungenügend wissenden Programmierer eingebaut, und in Step7 classic werden die Typprüfungen einfach fest deaktiviert

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Step 7 AWL Problem
    Von stepper7 im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 21.03.2016, 20:28
  2. Step 7 AWL: Loop Problem
    Von Sickone4 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 23.04.2014, 13:27
  3. Step 7 AWL Problem
    Von kuti im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 13.02.2014, 15:14
  4. AWL Problem
    Von phil83 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 02.01.2010, 17:09
  5. Problem mit AWL
    Von Marius im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 15.07.2007, 21:57

Lesezeichen

Berechtigungen

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