programmfehler...

Ibaxx

Level-1
Beiträge
21
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
ich sitze hier an einem testprogramm, welches am anfang in plcsim wunderbar lief, nur etwas verkürzt wurde, da ich den db wo die daten drinne sind verkleiner habe!
nun läuft es nicht mehr, und ich weiß echt nicht wieso...

hier die awl vom ob1:

call FC 1


die AWL vom FC 1:

AUF DB 1000
L P#0.0
LAR1
//Netzwerk: 2 Bauvorschrift laden
L DBW [AR1,P#0.0]
T AW 0
L W#16#2
SLD 3
+AR1
//Netzwerk: 3 Wiederholungsanzahl laden
L DBW [AR1,P#0.0]
T AW 2
L W#16#2
SLD 3
+AR1
//Netzwerk: 4 Makronummer 1 laden
L DBW [AR1,P#0.0]
T AW 4
L W#16#2
SLD 3
+AR1
//Netzwerk: 5 länge des ersten Parameters laden
L DBW [AR1,P#0.0]
T AW 6
L DBW [AR1,P#0.0]
T MW 2
L W#16#2
SLD 3
+AR1
L MW 2
SLD 3
+AR1

//Netzwerk: 10 Checksumme laden
L DBB [AR1,P#0.0]
T AW 16
L W#16#2
SLD 3
+AR1

und der db1000:

Adresse Name Typ Anfangswert Kommentar
0.0 STRUCT
+0.0 BauVNR WORD W#16#2732
+2.0 anzWIED WORD W#16#3
+4.0 MakroNR1 WORD W#16#1
+6.0 parLang WORD W#16#2
+8.0 para1 WORD W#16#2444
+10.0 Checksumme BYTE B#16#34​
=12.0 END_STRUCT

hoffe der fehler fällt jemand auf!
bitte an der indirekten adressierung nichts ändern, die ist muss da der db1000 verändert wird!

Danke
Ingo
 
und wo tritt der Fehler genau auf?
schau mal in den Diagnosepuffer (im Baugruppenzustand der Baugruppe), da sollte ein Synchronfehler eingetragen sein. Dort sind auch Informationen eingetragen, was schiefgegangen ist. Außerdem kannst du von dort aus den Baustein öffnen und direkt an die Fehlerstelle springen, alles ganz easy!
 
du könntest auch schreiben :
Code:
AUF DB 1000
L P#0.0
LAR1 
//Netzwerk: 2 Bauvorschrift laden
[COLOR=red]L DBW [AR1,P#0.0]
[/COLOR]T AW 0
//Netzwerk: 3 Wiederholungsanzahl laden
[COLOR=red]L DBW [AR1,P#2.0]
[/COLOR]T AW 2
//Netzwerk: 4 Makronummer 1 laden
[COLOR=red]L DBW [AR1,P#4.0]
[/COLOR]T AW 4
//Netzwerk: 5 länge des ersten Parameters laden
[COLOR=red]L DBW [AR1,P#6.0]
[/COLOR]T AW 6
 
usw.

vielleicht ist das dann auch etwas übersichtlicher ...
Einen Fehler habe ich allerdings auch nicht entdeckt ...
 
ähm was?
also es läuft in der simulation und der fehler geschiet direkt beim auf run setzen!

den rest müsstest mir noch mal erklären

oh dann muß ich passen; mit ner simulation hab ich noch nicht gearbeitet; nur mit echten sps-en. ich weiß nicht, ob du in der simulation die selben diagnosemöglichkeiten hast. vielleicht hast du ja die möglichkeit, es auf eine richtige S7-CPU zu spielen und die Diagnose-Möglichkeiten zu nutzen.
Da gibt es dann noch mehr zur Fehlersuche:
- Bausteinstatus
- Haltepunkte, Single Step
- Status Variable, Steuern Variable

da du anscheinend neu in dem Thema bist und wahrscheinlich noch mehr Fehler in dieser Richtung machen wirst, rate ich dir, vernünftige Debug-Möglichkeiten zu schaffen.
Soweit ich dich verstanden habe...du machst das für ne Uni oder eine Diplomarbeit? vielleicht findest du ja ne Möglichkeit, das jemand ne Steuerung sponsort..unsere Firma hat z.b. auch schon des öfteren Lehrmaterial zur Verfügung gestellt
 
ähm was?
also es läuft in der simulation und der fehler geschiet direkt beim auf run setzen!

den rest müsstest mir noch mal erklären

habs in der simu getestet. läuft.
versteh ich dich richtig, in der 'echten' cpu gehts nicht?

welche cpu?
ist der db1000 wirklich in der cpu?
(zielsystem/erreichbare teilnehmer)

die diagnose findest du im s7-manager unter zielsystem/diagnose/baugruppenzustand
 
du könntest auch schreiben :
Code:
AUF DB 1000
L P#0.0
LAR1 
//Netzwerk: 2 Bauvorschrift laden
[COLOR=red]L DBW [AR1,P#0.0][/COLOR]
T AW 0
//Netzwerk: 3 Wiederholungsanzahl laden
[COLOR=red]L DBW [AR1,P#2.0][/COLOR]
T AW 2
//Netzwerk: 4 Makronummer 1 laden
[COLOR=red]L DBW [AR1,P#4.0][/COLOR]
T AW 4
//Netzwerk: 5 länge des ersten Parameters laden
[COLOR=red]L DBW [AR1,P#6.0][/COLOR]
T AW 6
 
usw.

vielleicht ist das dann auch etwas übersichtlicher ...
Einen Fehler habe ich allerdings auch nicht entdeckt ...


kann ich nicht so schreiben, weil checksumme um den wert der parameterlänge weiter hinten liegt...
ausserdem soll da später ne schleife rein, weil mehr makros übergeben werden, da muss es indirekt gemacht werden
 
habs in der simu getestet. läuft.
versteh ich dich richtig, in der 'echten' cpu gehts nicht?

welche cpu?
ist der db1000 wirklich in der cpu?
(zielsystem/erreichbare teilnehmer)

die diagnose findest du im s7-manager unter zielsystem/diagnose/baugruppenzustand


ich hab keine cpu... ich sitze nur in der simulation bis jetzt...
cpu soll folgen...
 
ich hab keine cpu... ich sitze nur in der simulation bis jetzt...
cpu soll folgen...

dann ist mir dein problem nicht wirklich klar.
in der simu läuft das anstandslos.

übrigens: auch in der simu kannst du die diagnose benutzen !
 

Anhänge

  • Zwischenablage02.gif
    Zwischenablage02.gif
    16,1 KB · Aufrufe: 30
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hatte schon das gleiche Problem mit einer Schleife (in reeller CPU,
400er), habe dann, nachdem ich den Fehler auch nicht finden konnte
(angezeigt wurde Zugriffsfehler auf Adresse) den DB um ein Byte
verlängert. Dann lief es. Eine Erklärung hier für fehlt mir allerdings
noch immer.
 
Zurück
Oben