Autor Thema: Boolsche Verknüpfung  (Gelesen 6161 mal)

Offline Patros

  • Newbie
  • *
  • Beiträge: 9
Boolsche Verknüpfung
« am: Mai 11, 2005, 11:13:54 Vormittag »
Hallo

ich hätte da eine Frage:
Die "Boolsche Verknüpfung" kann in der Regel nur über den ZE-Kontakt (Status '1' wenn QV='0') aktiviert werden.

Bei meiner Problemstellung wäre es jedoch sinnvoller die "Boolsche Verknüpfung" über einen Merker zu aktivieren! Gibt es denn die Möglichkeit dies zu realisieren?
Ich versuche es schon seit 2 Tagen , aber leider vergeblich.  :-[

MIt freundlichen Grüßen
Atha

Offline befu

  • Full Member
  • ***
  • Beiträge: 134
Re: Boolsche Verknüpfung
« Antwort #1 am: Mai 11, 2005, 15:37:45 Nachmittag »
Hallo Atha,

leider kann ich die Fragestellung nicht ganz nachvollziehen, der Baustein BV ist immer aktiv, d.h. in jedem Zyklus werden die Eingänge I1 und I2 je nach eingestellter Betriebsart binär verknüpft und das Ergebnis an QV bereitgestellt. Der Ausgang ZE ist lediglich eine Zusatzinformation, wenn der Wert QV = 0 ist.

Was genau ist denn Deine Problemstellung, die Dich schon 2 Tage beschäftigt? Hast Du schon die Online-Hilfe von easySoft zu Rate gezogen?

Freundliche Grüße

Bernhard

Offline Patros

  • Newbie
  • *
  • Beiträge: 9
Re: Boolsche Verknüpfung
« Antwort #2 am: Mai 11, 2005, 15:57:35 Nachmittag »
Hallo Bernhard,

also ich beschreibe mein Problem mal ein bisschen:
Ich verwende ein DWord um meine Masken anzusteuern. Ein DWord besteht ja aus 4 Byte. So und mein Wunsch ist es jetzt, über 4 Bit jeweils nur 1 Byte zur Maskenansteuerung zu verwenden...ich will also 3 Byte eines dWords ausblenden so dass die Werte die diese Bytes haben für die Maskenansteuerung nicht von bedeutung sind.

Ein Beispiel:
Wenn MBit(Mb) 1 aktiv ist soll MByte(MB) 1 zur Maskenansteuerung durchgelassen werden und MB2-4 ausgefiltert werden

So jetzt wollte ich das über die "Boolsche Verknüpfung" realisieren, aber die ist ja wie du sagt IMMER aktiv...ich will sie aber nr aktiv schalten wenn Mb 1 den Wert '1' hat. bekomme ich das auf irgend eine Weise hin? Oder gibt es andere Möglichkeiten dies zu realisieren!

MfG Atha!



Offline befu

  • Full Member
  • ***
  • Beiträge: 134
Re: Boolsche Verknüpfung
« Antwort #3 am: Mai 11, 2005, 17:35:32 Nachmittag »
Hallo Atha,

der Baustein BV kann zum Ausmaskieren des MB01 verwendet werden: an I1 liegt MD01, an I2 die Konstante 256 (Betriebsart AND), dann zeigt QV nur den Wert von MB01 an. Jetzt kann man z.B. einen Baustein AR nachschalten, dessen I1 wird mit dem QV des BV beschaltet, der I2 mit  der Konstante 1 (Betriebsart SUB) und nun ist der Ausgang ZE genau dann 1, wenn das MB01 den Wert "1" besitzt.

Vielleicht hilft Dir das weiter, aber möglicherweise habe ich das Problem immer noch nicht richtig erfasst.

Mit der eigentlichen Visualisierung bzw. Maskenansteuerung bin ich nicht so vertraut, da musst Du evtl. noch mal fragen und hoffen, dass ein anderer helfen kann.

Freundlichen Gruß

Bernhard

Offline Patros

  • Newbie
  • *
  • Beiträge: 9
Re: Boolsche Verknüpfung
« Antwort #4 am: Mai 12, 2005, 09:05:51 Vormittag »
Hallo Bernhard,

okey du hast zumindest verstanden dass ich MB01 ausblenden will  ;)

Jetzt will ich das ganze NUR dann haben, wenn ein von mir festgelegtes Merker-Bit (zB M 01) den zustand '1' hat.

Sprich:
- Wenn M01 = '1' dann soll die BV MB01 durchlassen und die restlichen
   Bytes ausblenden
- Wenn M01 = '0' dann soll die BV NICHTS ausblenden und die Signale ganz
   normal durchlassen

Hast du jetzt verstanden was ich meine?  :D

Freundliche Grüße

Offline befu

  • Full Member
  • ***
  • Beiträge: 134
Re: Boolsche Verknüpfung
« Antwort #5 am: Mai 12, 2005, 10:25:12 Vormittag »
Hallo Atha,

jetzt hab' ich's glaub ich! Die Verwirrung entstand auch dadurch, dass in Deiner Beschreibung M01 und MB01/MD01 aufgetaucht sind. Schau Dir noch mal die Tabelle über die physische Anordnung der Merker im Speicher an (Online-Hilfe, Kontakte und Spulen, Merker). Der Merker M01 ist zugleich auch jeweils Bit 0 von MB01 und MD01, ist das so von Dir gewollt? Wenn Du in Abhängigkeit von einem Merker-Bit die Ausmaskierung von MB01 aus dem MD01 steuern willst, muss ein Merker ab M33 aufwärts benutzt werden, da die Merker M01 bis M32 im Doppelwort MD01 liegen.

Nun zu Deinem eigentlichen Problem: Mit fällt da nur ein Multiplexer MX ein, der kann auf I1 mit dem gewünschten MD01 beschaltet werden, auf I2 liegt der Ausgang QV des BV-Bausteins mit dem auf MB01 begrenzten Wert. Die Ansteuerung des Kanals K muss nun mit einem Merkerbyte z.B. MB11 erfolgen, wobei die eigentliche Information im Bit 0 des MB11, also im M81 liegt, die Merker M82 bis M88 dürfen dann nicht verwendet werden und müssen auf "0" bleiben.

Wenn nun M81 = 0 ist (MB11 = 0), dann wird das gesamte MD01 am Ausgang QV des MX erscheinen, wenn M81 = 1 ist (MB11 = 1), dann wird der begrenzte Wert durchgeschaltet.

Leider geht es wohl nicht einfacher, als dafür 2 FBs und 8 Merker zu verbraten, oder Dir fällt noch etwas besseres ein!

Viele Grüße

Bernhard

Offline Patros

  • Newbie
  • *
  • Beiträge: 9
Re: Boolsche Verknüpfung
« Antwort #6 am: Mai 12, 2005, 10:59:07 Vormittag »
Hallo Bernhard,

ja das mit der Speicheranordnung ist mir natürlich klar. Direkt so will ich das natürlich auch nicht realisieren, die Steuerung geschieht bei mir über Bits die NICHT im MD01 liegen, aber um es einfacher erklären zu können haben ich es so beschrieben, was aber wohl nur NOCH mehr verwirrt hat  ;D

??? Was ich vielleicht noch hätte sagen sollen...ich verwende ein MFD-Titan, also ist die Lösung über MX nicht realisierbar  :-\

Na dann muss ich mich noch ein paar STunden hinsetzen und mir den Kopf drüber zerbrechen wie ich das realisieren kann. Ich hab gedacht vielleicht gibt es da schon etwas, weil ich Neuling im easy-Programmieren bin und noch nicht alles weiß  :)

Aber trotzdem recht herzlichen Dank Bernhard!!!!

Offline befu

  • Full Member
  • ***
  • Beiträge: 134
Re: Boolsche Verknüpfung
« Antwort #7 am: Mai 12, 2005, 15:20:43 Nachmittag »
Sorry Atha,

Maskenansteuerung, da hätte ich natürlich selber drauf kommen können, dass nur ein MFD infrage kommt.

Eine Idee könnte ich noch beisteuern, allerdings geht das nur mit der easySoft 6.10 und neuen MFD-Geräten ab Version 05-xxxxxxx. Da könnte man Deine Aufgabenstellung mit 2x BV, 2x JC (bedingter Sprung im Bausteinplan) und 2x LB (Sprunglabel im Bausteinplan) realisieren (siehe angehängte Zip-Datei).

Für easySoft 5.11 und MFD Version 01-xxxxxx sehe ich momentan noch keine Lösung, ich müsste da nochmal über eine Version mit 2 Bausteinen DB nachdenken.

Gruß

Bernhard

Offline befu

  • Full Member
  • ***
  • Beiträge: 134
Re: Boolsche Verknüpfung
« Antwort #8 am: Mai 12, 2005, 15:38:27 Nachmittag »
Schnell noch die Version für die easySoft V5.11 hinterher, damit wir nicht noch mehr Zeit verlieren.

Die Bausteine DB03 und DB04 kann man weglassen, wenn man in Kauf nimmt, dass das Zielmerkerwort MD02 nur in jedem zweiten Zyklus aktualisiert wird.

Eine ziemliche Materialschlacht, aber so geht es auch mit easySoft 5.11

So, jetzt bin ich mit meinem Latein am Ende,

Viel Erfolg

Bernhard

Offline Patros

  • Newbie
  • *
  • Beiträge: 9
Re: Boolsche Verknüpfung
« Antwort #9 am: Mai 31, 2005, 15:19:58 Nachmittag »
Hallo Bernhard,

die Idee mit mit 2x BV, 2x JC (bedingter Sprung im Bausteinplan) und 2x LB (Sprunglabel im Bausteinplan) ist wohl auch die einzigste Lösung für mein Problem.
Ich werde versuchen das Problem über diesen Weg zu lösen.

Recht herzlichen dank für deine Hilfe  ;)

Gruß Atha