Prozentuale Berechnung 212er CPU

TobiH

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich wollte in eine kleine SPS-Demonstrationsanlage in einem Uni-Labor, die eine Montagesituation simuliert und Bauteile falscher Orientierung aussondert, ein Gimmick einbauen indem die i.O. Bauteile prozentual berechnet werden.
Zähler für Gesamtbauteile und i.O.-Bauteile sind vorhanden.
CPU ist eine 212er und programmiert wird mit Micro/Win.

Ich habe zuerst angedacht, den i.O-Zähler * 100 zu multiplizieren (Ergebnis hätte 32bit), DInt in Int umwandeln und dann durch den Gesamtzähler zu dividieren.

Problem: der Befehlssatz der 212 umfasst anscheinend nicht das Umwandeln eines DInt->Int, so dass ich eine 32bit Zahl habe und eine 16bit Zahl, die dividiert werden sollen...geht natürlich nicht.
Direktes Dividieren (DIV) würde auch nicht klappen Ergebnis wäre ein DWord mit 0 und dem Wert des i.O.-Zählers.

Gibt es sonst noch eine Möglichkeit mit dem beschränkten Befehlssatz das Problem zu lösen? Danke.
 
Warum sollte das nicht gehen, die CPU rechnet einfach mit zwei Registern.

Du must einfach sicherstellen dass das High-Word auf Null gesetzt ist, was aber der Ladebefehl tun sollte.

Hier in AWL:

L MDxxx
L MWyyy
/D
T MDzzz

Ergebnis steht in MDzzz

Gruss, Lothar.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,
@ loko: das ist eine s7-212 cpu, dividieren kann das ding nur wörter, gleitpunkt gar nicht.


@tobih: da läßt sich wohl nichts machen, das ding ist veraltet, und auch fast die kleinste der serie.
 
@ lorenz2512:
danke, ich hab es schon vermutet. aber da ich als maschbauer neuling im SPS-gebiet bin,
wollte ich nochmal bei den profis nachfragen, ob es irgendwelche tricks gibt...

Dann werde ich mir mal was anderes einfallen lassen um die i.O / n.i.O-Verteilung auf einem TP schön darzustellen.
 
Zurück
Oben