Programmierfehler?

tuneit

Level-1
Beiträge
54
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
AUF "db_platz"
L 0
T MD 215 // alle Belegtmerker zurücksetzen
L P#215.0 // Pointer Belegtmerker
T #pointer1
L P#104.0 // Pointer Belegtwort
T #pointer2
L 30
ret1: T #loop
L DBW [#pointer2] // Belegtwort Platz XX
L 1
>=I
S M [#pointer1] // Belegtmerker Platz XX
L #pointer1 // Pointer Belegtmerker
L 1
+D
T #pointer1
L #pointer2 // Pointer Belegtworte
L P#10.0
+D
T #pointer2
L #loop
LOOP ret1


Kann mir wer sagen warum meine CPU auf Stop geht sobald ich den Baustein online anschaue indem dieses Netzwerk enthalten ist bzw ich in dieses Netzwerk reinklicke? Pointerformate stimmen soweit.. (manchmal geht sie sofort auf Stop und manchmal erst nachdem ich in dieses NW reinklicke).
 
L DBW [#pointer2] // Belegtwort Platz XX

das geht nicht.

Code:
l dbw [AR1,P#104.0]
würde ich so machen wenn es ein fixwert wäre
 
Zuviel Werbung?
-> Hier kostenlos registrieren
L DBW [#pointer2] // Belegtwort Platz XX

das geht nicht.

Code:
l dbw [AR1,P#104.0]
würde ich so machen wenn es ein fixwert wäre


ok danke erstmal.
aber warum lässts es dann zu ? bzw wenn pointerformat nicht passen würde,würde die cpu ja beim überspielen in stop gehen. in dem fall läuft das prg ja schon damit nur beim beobachten schmeistsie sich weg..komische sache


bzw wa sgenau ist falsch daran?einfach nur die schreibweise?
 
Zuletzt bearbeitet:
L DBW [#pointer2] // Belegtwort Platz XX

das geht nicht.

Code:
l dbw [AR1,P#104.0]
würde ich so machen wenn es ein fixwert wäre

Doch, das sollte erstmal gehen, da er ja einen Pointer in #Pointer2 kopiert hat. ABer Gerhards Version ist trotzdem die, die ichauch bevorzuge.

Aber,wenn du Pointert addierst, müsen auch beide Werte ein Pointer sein.
ALso nicht 1 aufaddieren (das wäre ein Bit weiter, sondern

L #Pointer
L 1
SLD 3
+D

Pointerformat erzeugen, dann addieren.

Aufpassen, den richtigen DB öffnen, er ist im Pointer nicht enthalten.

PS: Hab grad nachgesehen, das ist in dem Code richtig

L 1
+D

da ja wirklich das nächste Bit genommen wird.
 
Zuletzt bearbeitet:
dieser code stammt nicht von mir sondernt ist von einem gekauften prg. und ist so im einsatz!

Lies doch mal den Diagnosespeicher aus, da steht die Stopursache drin und du kannst dahin springen, wo der Stop erfolgte.
Beim Online beobachten kann sich die Zykluszeit in Schleifen (LOOP) extrem erhöhen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habs nochmal angesehen der Code stimmt.

Code:
L 1
>=I 
S M [#pointer1] // Belegtmerker Platz XX
L #pointer1 // Pointer Belegtmerker
L 1
+D 
T #pointer1

Das ist korrekt, es werden ja so Bits adressiert, 1 addiert, heißt nächstes Bit.
 
der fehler ist hier nicht im code zu suchen, sondern in der zykluszeit die sich beim beobachten erhöht.

schau dir einmal an, welche zykluszeit du hast, welche beim beobachten zu stande kommt und wie der wert der zykluszeitüberwachung eingestellt ist.

darüber hinaus empfiehlt es sich, die CPU im prozess- und nicht im testbetrieb zu betreiben.
 
der fehler ist hier nicht im code zu suchen, sondern in der zykluszeit die sich beim beobachten erhöht.

schau dir einmal an, welche zykluszeit du hast, welche beim beobachten zu stande kommt und wie der wert der zykluszeitüberwachung eingestellt ist.

darüber hinaus empfiehlt es sich, die CPU im prozess- und nicht im testbetrieb zu betreiben.


Du hast völlig recht. Diagnosepuffer sagt ähnliches.
 
Zurück
Oben