Step 5 Problem mit Berechnen einer 32bit Zahl (Drehgeberwert)

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

habs nochmal angeschaut. Das erste Kontrukt teilt den Istwert durch 8 (High/Low übergreifend) und legt ihn auf MW140/142 ab. Der 2. Teil kann eine Korrektur sein. Wenn DW6/DW9 Konstanten sind, dann kannst du diese ändern und bist fertig. Falls DW6/DW9 im Programm auch beschrieben werden benötigst du eine 2. Addition.

André
 
Zuletzt bearbeitet:
Danke für die Antworten. So wie Joop aufgefallen ist, habe ich mich verschrieben. Es heißt nicht "L DR 25" sondern "L DR 24". Tut mir leid.

Im Programm bei ADD:32 steht:
MW140 => HW;0
MW142 => LW;Geberwert
DW9 => HW;0
DW6 => LW; Offset für Ber. Aderlinie
MW200 => HW;
MW202 => LW; angepasster Geberwert

Bei T MW 140 bzw 142 steht Geberwert + Offset

Im DB steht beim Kommentar:
DW6 => Offset Wegmessung Strecke 2
Dw9 => Fix Belegung mit 0000

Beide Werte sind am PG "KH = 0000"

MfG Hannes
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Dann trag halt mal ins DW6 DW9 deinen Offset ein.
Falls du einen positiven Offset hast, dann muß eigentlich DW6 reichen.
Wenn du einen neg. Offset hast, dann muß auch was in DW9

Gruß
Dieter
 
Danke, ich werde einmal testen, nach dem Urlaub, was passiert wenn ich DW6 bzw 9 ändere. Ansonsten werde ich noch ein ADD:32 mit meinem Offset hinzufügen.

Bei SRW3 steht als Kommentar "/8".

@Blockmove
Warum muss ich bei DW9 etwas eintragen wenn ich einen neg. Offset habe?
Hier auf Seite 20 steht das Z11 und 12 der erste Summand (erste 32bit Zahl) und Z21 und 22 der 2te Summand (2te 32bit Zahl) ist.

Melde mich bei Erfolg bzw Misserfolg wieder.

MfG Hannes
 
Hallo Hannes,

bekommst meinen 2000.Beitrag ;-) SRW3 entspricht einer Division durch 8 wenn man die ausgeschobenen Bits ausser Acht lässt. Wenn du einen negativen Offset hast, dann steht auch definitiv im High-Wort etwas. Müsst dir mal mit dem Windows-Taschenrechner anschauen wie zb die -1 aussieht.

André
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Blockmove
Warum muss ich bei DW9 etwas eintragen wenn ich einen neg. Offset habe?
Hier auf Seite 20 steht das Z11 und 12 der erste Summand (erste 32bit Zahl) und Z21 und 22 der 2te Summand (2te 32bit Zahl) ist.

Das Mysterium der Zahlensysteme ;)
Eine -1 (dez) ist nunmal eine FFFF FFFF (Hex32)
Deine 03A0 (Hex16) vom 1. Beitrag ist +928 (Dez).
-928 (Dez) = FC60 (Hex16) = FFFF FC60 (Hex32)

Du hast ja noch einige Tage jetzt frei ... Da kannst du ja mal etwas die Zahlensysteme anschauen.
Hab ich auch schon mit unseren Instandhaltern gemacht.

Gruß
Dieter
 
Danke für die Antwort. Ich hätte eigentlich nur denken müssen bevor ich schreibe, aber mit negativen Hexzahlen habe ich nicht viel zutun.

Ich arbeite eher mit Atmegas (8bit Mikrocontroller) und da habe ich bis jetzt noch keine negativen Zahlen benötigt.

Hauptsächlich bin ich bei www.roboternetz.de unterwegs.

Was passiert eigentlich mit den hinausgeschobenen Bits? Sind die dann weg oder werden die in ein anderes Register geschoben?

In der Firma benötigen wir eigentlich nur Multimeter, Stromzange, Drehrichtungsprüfer. Das andere benötige eigentlich nur ich (Oszilloskop, PG,...). Ich muss, wenn ich es schaffe, die gesamte Elektronik reparieren, SPS Änderungen vornehmen,...

Bei den Steuerungen habe ich aber bis jetzt nur normale Ein/Ausgabe, Merker, Zeiten,... benötigt.

MfG Hannes
 
Hallo Hannes,

Die hinausgeschobenen Bits sind weg.

Dass du bei den Steuerungen - bis jetzt - nur das einfache EinMalEins gebraucht hast, spricht dafür, dass ihr vernünftige Anlagen habt.
Wir versuchen unsere Maschinen auch so zu programmieren, dass ein "normaler" Instandhalter damit zurecht kommt.
Andere sehen das leider anders. Wir müssen unsere Instandhalter öfters unterstützen, wenn sie mit ihrem Latein am Ende sind.
Bei manchen Maschinen fragt man sich schon, ob der Programmierer keine Frau oder Freundin hat und deshalb seine "Fantasien" in der SPS auslebt :ROFLMAO:

Gruß
Dieter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Viele Maschinen haben bei uns noch Schütz/Relaisschaltungen. Einige Maschinen haben S5 bzw S7 Steuerungen. Die Anlagen sind bereits mehrere Jahre alt (<BJ2000). Teilweise setzen wir noch Maschinen aus den 1960er Jahren ein.

Wenn ich nicht mehr weiter weiß kommt ein Programmierer der Firma Pewag (vielleicht 1km von unserer Firma).

Die S7-1200 habe ich nur Privat verwendet.

Offtopic: Ist es möglich das eine S5 zwar das richtige Programm hat aber das Programm teilweise nicht richtig ausführt (bei Defekt der CPU)?

MfG Hannes
 
Offtopic: Ist es möglich das eine S5 zwar das richtige Programm hat aber das Programm teilweise nicht richtig ausführt (bei Defekt der CPU)?

Ist zwar extrem selten, aber ganz ausschliessen kann man es nicht.
Wenn das Programm wirklich gleich ist, dann liegt es gern mal am Rack / Rückwandbus.

Gruß
Dieter
 
Offtopic: Ist es möglich das eine S5 zwar das richtige Programm hat aber das Programm teilweise nicht richtig ausführt (bei Defekt der CPU)?

Eher weniger.
Bei der S5 gibt / gab es ab und an Unterschiede, wenn verschiedene CPU im Einsatz sind.
Das selbe Programm in dem selbigen CPU Typ funktioniert gleich.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Haben in der Firma eine S5 mit so einem Problem.
Die SPS sollte berechnen ab wann der Niederlauf gestartet wird (über mehrere Geschwindigkeiten und einen einstellbaren Faktor).
Das funktioniert nicht mehr.
Der Niederlauf wird immer gleich gestartet. Eine Überwachung funktioniert auch nicht mehr.
Wenn ich das Programm von vom PG und AG vergleiche ist es gleich (am PG ist das richtige Programm)

Vielleicht tausche ich einmal die CPU. Habe das Programm geändert damit es funktioniert (statt des Faktors stellt man jetzt die Meter ein bei dem der Niederlauf gestartet wird).

MfG Hannes
 
Haben in der Firma eine S5 mit so einem Problem.
Die SPS sollte berechnen ab wann der Niederlauf gestartet wird (über mehrere Geschwindigkeiten und einen einstellbaren Faktor).
Das funktioniert nicht mehr.
Der Niederlauf wird immer gleich gestartet. Eine Überwachung funktioniert auch nicht mehr.
Wenn ich das Programm von vom PG und AG vergleiche ist es gleich (am PG ist das richtige Programm)

Vielleicht tausche ich einmal die CPU. Habe das Programm geändert damit es funktioniert (statt des Faktors stellt man jetzt die Meter ein bei dem der Niederlauf gestartet wird).

MfG Hannes

Sorry, aber wenn eine CPU etwas kann, dann ist es rechnen.
Wenn es richtig programmiert ist , dann funktioniert es.
Ein Rechenregister geht nicht kaputt.


bike
 
SRW3 entspricht einer Division durch 8 wenn man die ausgeschobenen Bits ausser Acht lässt.
... und wenn man die ausgeschobenen Bits NICHT ausser Acht läßt? :confused:
Vorsicht! die Aussage gilt nicht für negative Zahlen (-32768 ... -1).

Was passiert eigentlich mit den hinausgeschobenen Bits? Sind die dann weg oder werden die in ein anderes Register geschoben?
Das zuletzt hinausgeschobene Bit wird im Statusflag ANZ1 "aufgefangen", die anderen Bits sind weg.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das selbe Programm in dem selbigen CPU Typ funktioniert gleich.

Ausser bei 135U
Die ersten Firmware-Stände hatten heftige Bugs in den Rechenoperationen und auch in der Speicherverwaltung.
Wir haben uns damals öffters mit Siemens herumgestritten und teilweise sogar die Entwickler im Haus.

Aber im allgemeinen gilt der Satz von bike schon.
Die meisten Fehler sitzen vor der Steuerung und nicht in der Steuerung.
Es ist teilweise erschreckend wie bei SPS-Programmierung mit den Wertebereichen geschlampt wird.
Da wird locker mal der Int und Dint durcheinander gewürfelt.
Wenn man dann die entsprechenden Programmierer fragt, was bei negativen Werten passiert, dann gibt es die Aussage das passiert nie...

Gruß
Dieter
 
Hallo Harald,

besser formuliert (von mir) wäre gewesen eine Ganzzahldivision - Bit 0-2 sind der Rest. Bei negativen Zahlen funktionierts nicht. Selbst wenn man links mit 111 auffüllt, so ist die Zahl bei Divisionen mit Rest "aufgerundet" wenn man das überhaupt so nennen kann. -17 :8 ergibt dann dort -3. Also Runden durch Auffüllen anstatt Runden durch Abschneiden ;-) Man sollte solche Berechnungen dann mit den entsprechenden Rechenbausteinen realisieren. Was der Künstler damit bezwecken wollte werden wir wohl nicht rausfinden. Evtl könnte man ja den redundanten Landsmann von Hannes (Sioan, 00alex) darauf ansetzen ;-). Aber bitte nicht in diesem Thread.

André
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke Sioan aber die Auswertung von ANZ0 bzw 1 sehe ich nirgends. Warum durch 8 geteilt wird ist auch egal. Irgendeinen Grund wird es schon haben.

Aber trotzdem danke für den Link.

MfG Hannes
 
Das Positionieren funktioniert soweit. Habe ein zusätzliches ADD:32 einfügen müssen. Das mit dem vorhandenen Add:32 hat nicht funktioniert.

PS: Habe nochmal im Handbuch, das ich habe, nachgeschaut. Dort steht das ADD:32 nicht drinnen. Es steht nur das Mul:32 und Div:32 drinnen (abgesehen von +F,...).

Wenn alles richtig funktioniert melde ich mich wieder.

Danke für die Hilfe.

MfG Hannes
 
Zurück
Oben