Zahlensysteme

Gast #3986018
Lesenswert?

Hallo Forum,

Ich habe folgendes Problem.
an meiner SPS werden die die Ausgänge wie folgt angepsrochen:

<!--#READPI ADR=QX0.0&FORMAT=%d-->
<!--#READPI ADR=QX0.1&FORMAT=%d-->
<!--#READPI ADR=QX0.2&FORMAT=%d-->
<!--#READPI ADR=QX0.3&FORMAT=%d-->
...
...
...
<!--#READPI ADR=QX0.14&FORMAT=%d-->
<!--#READPI ADR=QX0.15&FORMAT=%d-->
<!--#READPI ADR=QX1.0&FORMAT=%d-->
<!--#READPI ADR=QX1.1&FORMAT=%d-->

allerdings kann ich das Programmtechnisch nicht umsetzten und ich muss 
dies wie folgt in meinem Programm umwandeln.

0.0→1
0.1→2
0.2→3
0.3→4
...
...
...
0.14→14
0.15→15
1.0→16
1.1→17

was auch soweit funktioniert, ich konnte alles überflüssige wegsplitten 
und die Zahl 0.0 = 0 umwandeln etc

0.0→x=0
0.1→x=0
0.2→x=0
0.3→x=0

0.0→y=0
0.1→y=1
0.2→y=2
0.3→y=3

Nun habe ich die Ausgänge mit folgender Formel angesprochen und die 
Zahlen umgewandelt
z=x⋅16+y
allerdings bekomme ich nun ein Problem wenn ich z.B Ausgang 17 ansteuern 
will, wird Ausgang 18 gesetzt. weil es einen übertrag gib, der wie folgt 
aussieht:

kann mir jemand sagen wich man sowas löst?

vielen Dank im voraus
#3986032
Lesenswert?

Susanne schrieb:

> allerdings bekomme ich nun ein Problem wenn ich z.B Ausgang 17 ansteuern
> will, wird Ausgang 18 gesetzt. weil es einen übertrag gib, der wie folgt
> aussieht:
>
> kann mir jemand sagen wich man sowas löst?

Prinzipiell genau so, wie du dir das vorstellst.

Ausgang 17 wäre in deiner Punkt-Nomenklatur der Ausgang 1.1

und mit deiner Zerlegung wird daraus x gleich 1 und y gleich 1. 
Eingesetzt in die Formel macht das
1
  1 * 16 + 1
welches 17 ergibt, was auffallend richtig ist.

Irgendwo hast du also ein Problem. Allerdings ist es nicht die 
Umrechnung.

Grob geschäzt würde ich mal sagen
* entweder hast du eienn gedanklichen Fehler und gehst nicht von 1.1 für 
17 aus
* oder du hast bei der Zerlegung von 1.1 für y geschlampt und da kommt 
eben nicht 1 raus, so wie es eigentlich sein sollte.

Persönlich würde ich zu letzterem tendieren. Aber davon zeigst du nun 
mal nichts, wie du das gemacht hast.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren