Du brauchst einfach nur das Eingansbyte auf ein Merkerbyte umkopieren:
Beispiel:
L EB0
T MB0
MFG
Markus
Hi!
Habe da ein kleines Anfängerproblem.
Ich komme mit übersichtlichen Mitteln irgendwie nicht weiter.
Also, bekomme über einen Eingangsbyte Signale...Also Binärcodiert hätte ich dann 255 Möglichkeiten. Diese muss ich dann "ummappen" auf Merker...beginnend bei 200. Also 1= Merker 200.0, 2=Merker 200.1, 9=Merker 201.0 usw.
Ich als Anfänger würde jetzt 255 vergleiche und zuweisungen anstellen, das ist aber ganz schön *pieep*. Hat jemand eine Idee wie ich das am einfachsten machen kann?
Gruß
Du brauchst einfach nur das Eingansbyte auf ein Merkerbyte umkopieren:
Beispiel:
L EB0
T MB0
MFG
Markus
Hallo,
du könntest das in einer Schleife mit Pointern machen. Aber wenn du schreiben würdest was du genau mit dem Eingansbyte machen möchtest, findet sich wahrscheinlich eine bessere Möglichkeit für die Auswertung.
Stephan
Edit:
@thalerm
So wie ich das verstanden habe möchte er wohl für jeden möglichen Zustand seines Eingangsworts einen Merker setzen. Also insgesamt 256 Merker (einer für jeden Zustand von 0 bis 255).
Last edited by Isch; 03.12.2008 at 11:05.
snowbda (03.12.2008)
Ich würde erstmal den Bereich mit Nullen voll schreiben.
Und dann würde ich mir einen Pointer Basteln der das entsprechende Bit auf True setzt. http://www.sps-forum.de/showpost.php...92&postcount=4 in dem Beitrag geht es zwar um DBs aber das lässt sich sicher leicht auf Merker umbasteln.Code:L 0 T MD200 T MD204 T MD208 T MD212 T MD216 T MD220 T MD224 T MD228
HI!
Mit Nullen vollschreiben ist schlecht, ein Merker kann gesetzt werden und im nächsten Schritt ein anderer, der erste soll z.B. erhalten bleiben.
In C wäre das alles kein Thema, aber in Step7...gnarf![]()
Last edited by snowbda; 03.12.2008 at 11:21.
Sorry, hab ich leider falsch verstanden!
Natürlich geht das dann nicht!
Hast recht, indirekte Adressierung wär eh ziemlich die vernünftigste Lösung!
MFG
Markus
snowbda (03.12.2008)
Das konnte ich aus der Frage stellung nicht rauslesen macht das ganze aber noch einfacher:
Bit Adresse in MW10 und der Zustand des Bits wird durch E0.0 bestimmt.Code://GEÄNDERT L MW 10 T #iBitNumber L #iBitNumber L 8 /I L 200 +I T #iByte L #iBitNumber L 8 MOD T #iBit L #iByte SLD 3 L #iBit +D LAR1 U E 0.0 = M [AR1,P#0.0]
Last edited by BoxHead; 03.12.2008 at 11:32. Reason: Programm geändert
snowbda (03.12.2008)
snowbda (03.12.2008)
Stimmt...wenn man weiß wie es gehtDas ist doch gar kein Problem ...
Danke Euch für die Hilfe!
darf ich fragen was das für einen sinn macht, bzw. warum du das machen willst?
Bookmarks