Autor Thema: Block Comparison  (Gelesen 2117 mal)

Offline rolfblom

  • Newbie
  • *
  • Beiträge: 3
Block Comparison
« am: September 18, 2006, 17:25:09 Nachmittag »
Ich versuche die function BC, aber ohne result.

Ich habe ein beispielprogramm gemacht.
Ein teller lauft (blinkend) 1s an/aus, und schaltet ein Counterrelais (C01).
Der wert der C01 geht nach MB1
Wenn MB1, 5 erreicht muss dieses nummer auf MB2 geschrieben worden.

Was mach ich falsch?

(Easy Soft V5.11)



Rolf

« Letzte Änderung: September 18, 2006, 17:30:19 Nachmittag von rolfblom »

Offline befu

  • Full Member
  • ***
  • Beiträge: 134
Re: Block Comparison
« Antwort #1 am: September 19, 2006, 11:00:47 Vormittag »
Hallo Rolf,

wenn nur ein Byte verglichen werden soll, dann ist der Funktions-Baustein A (Analogwertvergleicher) besser geeignet.

In Deinem Beispiel mit dem Blockvergleich BC fehlt zum einen die Beschaltung des EN-Eingangs, d.h. die Freigabe des Bausteins. Der eigentliche Fehler ist aber die Beschaltung von I2 mit einer Konstanten: An I1 und I2 werden bei diesem Baustein (und bei BT) die Adressen der Merker-Operanden übergeben. Eine Konstante wird dabei nicht als absoluter Zahlenwert, sondern als Offset im Merkerbereich auf die Adresse des MB1 interpretiert.

So wie Du Dein Beispiel programmiert hast, vergleicht der Baustein (EN = 1 vorausgesetzt) den Inhalt von MB01 nicht mit dem Wert "5" sondern mit dem Inhalt von MB06!

Das alles ist auch in der Online-Hilfe genau beschrieben!

Freundliche Grüße

Bernhard

Offline rolfblom

  • Newbie
  • *
  • Beiträge: 3
Re: Block Comparison
« Antwort #2 am: September 19, 2006, 13:08:47 Nachmittag »
Danke Bernhard,

Dein Antwort hat mir sehr gut geholfen.
Ich verstehe mein fehler, und kan jetzt weiter mit programmieren.


Grüsse,

Rolf