Forum: Mikrocontroller und Digitale Elektronik Zahlensysteme


von Susanne (Gast)


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

von joJo (Gast)


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?

Zeile vergessen?

von Karl H. (kbuchegg)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.