Studio5000 Einganngsbits in DINT umwandeln und umgekehrt

huggy

Level-2
Beiträge
170
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe 4 Eingänge (I7.7-I7.8-I7.9-I7.10) diese bilden eine zrückgebildete Prg.nr.
Momentan habe ich es folgendermaßen gemacht.

U I7.7 UN I7.8 UN I7.9 UN I7.10 MOV 1 to Prg.nr


Die Prg. nr. auswählen genau umgekehrt (Ausgänge O12.4 - O12.5 - O12.6 - O12.7)

EQU 1 Prg.nr. L O12.4 U O12.5 U O12.6 U O12.7

Das geht bestimmt eleganter. ich weiß nur nicht wie. Irgenwie muss ich ja zuerst die
Eingangs- bzw. Ausgangsbits einem Tag (INT oder DINT) zuordnen.
Könnt Ihr mir da eine Lösung schreiben, da gibts bestimmt was fertiges ?

Das ganze ist in Kontaktplan, da für US Kunden.

mfg huggy
 
Du kannst doch einfach dein prognr ( int) mit prognr.0 prognr.1 usw beschreiben... Oder habe ich Was falsch verstanden?

Gesendet von meinem ONE A2003 mit Tapatalk
 
@huggy
... ich hab's anders verstanden (und INT statt DINT verwendet).
Habe in Excel KontaktPlan-Darstellung nachempfunden und ein Bisschen Excel (es geht auch mit "komplizierten" Formeln ;o) noch angefügt:

INTfrom4Bit.jpgINTto4Bit.jpgINTto4Bit-Excel.jpgINTto4Bit-Excel-mitBez.jpg

Habe auch noch KontaktPlan-Nachempfindungen mit MOVE, ADD_I, SUB_I und CMP>=I gebastelt, für den Fall, dass sich die Steuerug sträubt, ein Wort INT in ein Wort "Un-INT" zu kopieren bzw. umgekehrt.
Aber die Screenshots sind unzumutbar schlecht und unleserlich geworden.

Gruss, Heinileini
 
@Heinileini
Es geht hier um "Studio5000" - sprich: Allen Bradley Rockwell Logic5000
Da kann man in einem DINT direkt die Bits adressieren: myDint.0 ... myDint.31 - es reichen also jeweils 4 einfache Strompfade mit Schließer und Spule.

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
So muss das sein! Kenne die Logic5000 leider nicht und im WWW habe ich zur Logic5000 nur BlaBla gefunden, nix Details zu ProgrammierSprachen.
Man weiss dann ja nie, was alles eigentlich ganz einfach zu lösen, aber verboten ist.
Gruss, Heinileini
 
Wenn man die Bits im DINT nicht direkt adressieren kann, dann gibt es auch Lösungen ohne im Speicher überlappende Schmiermerkeradressierung:
* 4 Bits zu DINT: bedingtes Addieren von 1 2 4 und 8 (das Bit am EN der ADD-Box)
* DINT zu 4 Bits: ausmaskieren der Bits mit bitweise AND und Vergleich, ob <>0 'rauskam

Harald
 
@PN/DP
Schon vorbereitet: "4 Bits zu DINT: bedingtes Addieren von 1 2 4 und 8 (das Bit am EN der ADD-Box)" - aber matschige (fanatasieanregende) WYSIWYG-BildQualität:

INTfrom4Bit-KOP.jpg
Und dann noch (aber ohne "ausmaskieren der Bits mit bitweise AND und Vergleich, ob <>0 'rauskam"), sondern bedingtes Subtrahieren:
INTto4Bit-KOP.jpg
Es gibt ja sooo viele Möglichkeiten ...
Gruss, Heinileini

8ung! In Bild2 fehlt der MOVE, der die TempVariable befruchten soll - Revision siehe Bild in #10!
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Und dann noch (aber ohne "ausmaskieren der Bits mit bitweise AND und Vergleich, ob <>0 'rauskam"), sondern bedingtes Subtrahieren:
Ja, das bedingte Subtrahieren für DINT-zu-4Bits ist auch nicht schlecht. Allerdings ist bei Deinem Entwurf noch ein Fehler drin, und das unschöne Rücklesen der Ausgänge sollte noch geändert werden. Das eigentlich simple Prinzip sieht man aber sehr schön.

Man findet oft einfache Lösungen wenn man ein bisschen Ahnung hat von Zahlen/Mathematik und dem was man da programmiert und was genau dabei abläuft :cool:

Harald
 
... Allerdings ist bei Deinem Entwurf noch ein Fehler drin, und das unschöne Rücklesen der Ausgänge sollte noch geändert werden. ...
Besser so, Harald? Bin leider nicht so geübt in KOP, denke daher nicht in bedingten Subtraktionen und hatte den MOVE in die TempVariable geschlabbert - sorry!
Ist die Darstellung mit den Abzweigungen von den CMP-Ausgängen zu den SUB-ENs so zulässig? Sieht für meinen Geschmack jedenfalls angenehmer aus.
Habe diesmal den Screenshot direkt vom ArbeitsBlatt und nicht von der WYdon'tSIWyouhopetoG-DruckVorschau gemacht.
Ersatz für das 2. Bild in #8:

INTfrom4Bit-KOP2.jpg

Gruss, Heinileini
 
Zurück
Oben