Programmierfehlersuche - Step7 - AWL

Hope

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

habe eine Frage zu Step7 wo ich glaube die Antwort schon zu wissen aber dennoch die Hoffnung habe, dass mir hier jemand etwas anderes erzählt.
Antwort denke ich heißt NEIN ;)

Habe einen FC in AWL geschrieben in dem relativ viel mit Pointern gearbeitet wird und viele Sprünge stattfinden.
Da das Programm so herunter geschrieben habe ohne jetzt jede jede Einzelfunktion jedes Netzwerkes zu testen werden mit Sicherheit ein paar Fehler vorhanden sein.
Meine Frage: Bietet Step7 eine Möglichkeit mir den Code zu übersetzen und zu prüfen? Momentan habe ich nur die Möglichkeit den FC aufzurufen... die CPU geht in STOP ... Grund: Programierfehler.... Baustein öffnen... Step7 steht mit dem Courser im AWL Editor an einer Stelle, die wenn ich diese einzeln in einen anderen FC lade und teste, funktioniert.
Somit gehe ich nicht davon aus das mir dieser Courser jetzt sagt "Kuck da haste dein Fehler".

Bin momentan relativ ratlos. Jedes OpenSource C Programming Tool zeigt einem zumindest halbwegs den Weg durch die Programmierfehler. Aber Step7 :confused:

Hat da mal einer ne gute Nachhricht für mich ? :ROFLMAO:

grüße
 
"programmierfehler"?
evtl. ein bereichslängenfehler? kann gerne mal bei indirekter adressierung passieren ... DB zu kurz oder eine negative adresse geladen ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja Programmierfehler... gibt da bestimmt einige Varianten. Nur das man keine genauere Rückmeldung von Step7 bekommst wie "Der FC isses" macht mich stutzig. :confused:
 
Ja Programmierfehler... gibt da bestimmt einige Varianten. Nur das man keine genauere Rückmeldung von Step7 bekommst wie "Der FC isses" macht mich stutzig. :confused:

bekommt man aber: bausteinnummer und bausteinadresse, damit hast du ja sicher die stelle gefunden, wo du rausfliegst ... die frage ist halt "was machst du da???" und darauf aufbauend kann man dann herrausfinden, wie es dazu kommt, dass du nen stop fabrizierst
 
Wenn der OB121 nicht eingespielt wurde (bzw. darin nicht ein CPU Stopp veranlasst wird) oder es eine 400er CPU ist, könnte man unter

Zielsystem -> Diagnose -> Baugruppenzustand -> Stacks .... dann den betreffenden FC/FB anwähen und "gehe zu" anklicken.

(Begriffe sind nur aus dem Gedächtnis gefischt).

mal nachschauen. Wo die Kiste denn in Stopp geht.
 
Bin momentan relativ ratlos. Jedes OpenSource C Programming Tool zeigt einem zumindest halbwegs den Weg durch die Programmierfehler. Aber Step7 :confused:

Das hat doch S7 auch, der Kompiler lässt ja schon garnicht zu einen Baustein zu speichern, wenn dieser eine Syntax Fehler hat.
Jeder C Compiler lässt auch zu, wenn du mit Pointern arbeitets, wenn der ins Nirwana zeigt. Woher soll der wissen, dass im Nirwana deine Daten nicht sind?

Daher verwende ich indirekte Adressierung nur wo sinnvoll ist.
Nicht jeder Bitzugriff muss indirekt erfolgen.


bike
 
Wenn der OB121 nicht eingespielt wurde (bzw. darin nicht ein CPU Stopp veranlasst wird) oder es eine 400er CPU ist, könnte man unter

Zielsystem -> Diagnose -> Baugruppenzustand -> Stacks .... dann den betreffenden FC/FB anwähen und "gehe zu" anklicken.

(Begriffe sind nur aus dem Gedächtnis gefischt).

mal nachschauen. Wo die Kiste denn in Stopp geht.

stacks hat auch die 300er

wenn die kiste in stp ist gehst du wie zotos gesagt hat auf zielsystem -> diagnose -> baugruppenzustand.
dort auf den reiter "stacks" (das geht nur wenn die cpu in stop ist!)

dort siehst du die aktuelle aufrufhirachie bzw. welcher baustein zuletzt von wem aufgerufen wurde.

dann gibts da sowas wie "gehe zu" oder "baustein öffnen" (bin mir nicht sicher wie genau die schaltfläche heisst). wenn du da draufklickst springt der coursor in den baustein der böse ist an genau die stelle wo der befehl davor den stop ausgelöst hat...

der diagnosepuffer sollte eigenltlich auch etwas mehr sagen als nur programmierfehler.

der ob122 verhindert in diesem fall zar das die cpu in stop geht, aber das ist nackte symptombekämpfung, dein baustein funktioniert deswegen trotzdem nicht!
ich persönlich finde den einsatz von diesem ob sehr sehr böse...

poste doch mal den sourcecode hier!
 
Zurück
Oben