:Revision=3
:html
<<
128.120
Digitale Ausgabe DOut-Objekt|DOut
--
Das IP-Objekt <!RW>DOut realisiert die digitale Ausgabe ber Karten des Universellen Messystems.
>>
<<
128.120.1
Funktionen des DOut-Objekts|Funktionen
--
>>
<<
128.120.1.1
DOut.Get|Get
--
<!DEF>
function <!TW>DOut.Get (aCard : address) : real;
<!TXT>
Liefert den Zustand der auf der Karte <!PW>aCard vorhandenen Ausgnge als 32 Bit Wert.

<!REM>
Experimentell vorhanden, noch nicht benutzen!
Syntax wird vmtl. noch gendert.
<!TXT>
>>
<<
128.120.2
Prozeduren des DOut-Objekts|Prozeduren
--
>>
<<
128.120.2.1
DOut.Bits|Bits
--
<!DEF>
procedure <!TW>DOut.Bits (aDOutAdr : address; rOperation, rSendIt : real);
<!TXT>
Die in der Adresse <!PW>aDOutAdr (Adresse auf einer DOut5450-Karte) angegebenen Bits werden wie in <!PW>rOperation angegeben mit dem aktuellen Zustand der Bits der Karte verknpft.

Wenn <!PW>rSendIt = <!RW>Send, dann werden die Daten zur Karte gesendet, ansonsten zwischen gespeichert.

 <!PW>rOperation kann sein : <!RW>CLR | <!RW>SET | <!RW>FLIP | <!RW>NOP oder 0..3

 <!PW>rSendIt kann sein : <!RW>STORE | <!RW>SEND oder 0..1
>>
<<
128.120.2.2
DOut.Word|Word
--
<!DEF>
procedure <!TW>DOut.Word (aDOutAdr : address; rSendIt : real);
<!TXT>
Die in der Adresse a<!PW>aDOutAdr (Adresse auf einer DOut5450-Karte) angegebenen Bits werden als neuer Zustand der Karte verwendet.

Wenn <!PW>rSendIt = <!RW>Send, dann werden die Daten zur Karte gesendet, sonst zwischen gespeichert.

 <!PW>rSendIt kann sein : <!RW>STORE | <!RW>SEND oder 0..1
>>
<<
128.120.2.3
DOut.BitsEx|BitsEx
--
<!DEF>
procedure <!TW>DOut.BitsEx (rGroup : real; sCommand : string);
<!TXT>
Makrokommando : Setzt/lscht Bits auf DOut-Karten und wartet

 <!PW>rGroup whlt eine Aktionsgruppe aus (0..9)

 <!PW>sCommand hat folgende Form:

<!CODE>
<!SW>Adresse,<!SW>Aktion[,<!SW>Aktion...][;<!SW>Adresse,<!SW>Aktion[,<!SW>Aktion...]...]
<!TXT>

 <!SW>Adresse ist eine Adresskonstante aus der Adressdatei und muss zu einer DOut5450-Karte gehren. Mehrere Adresskonstanten konnen mit + verknpft sein, wenn sie zu derselben Karte gehren

 <!SW>Aktion hat folgenden Aufbau (n ist jeweils die Gruppennummer 0..9 oder 'x') :
<!STBL>
<!>nS<!>Setzt die Bits<!>
<!>nR<!>Setzt die Bits zurck<!>
<!>nDz<!>Wartezeit von z Millisekunden<!>
<!ETBL>

 <!SW>n gibt die Gruppe an. Es werden nur solche Aktionen ausgefhrt, deren Gruppe durch den Parameter <!PW>rGroup ausgewhlt ist. 'x' passt immer!

<ul indent=12>
<li>Wird durch rGroup keine Aktion aktiviert, so wird nichts gemacht.</li>
<li>Sind keine Aktionen angegeben, so wird nichts gemacht.</li>
<li>Ist sCommand leer, so passiert nichts.</li>
<li>In sCommand knnen mehrere AdrKonstanten mit Aktionen angegeben werden (durch ';' getrennt), die Adresskonstanten werden dann nacheinander bearbeitet.</li>
</ul>

Beispiel
<!CODE>
DOut.BitsEx (1, 'MSpg_34_R,1r,9s,1d100,9d50');

Die '1' aktiviert Gruppe 1.
Die Bstandteile von sCommand im einzelnen
'MSpg_34_R' ist die Adresse der bearbeiteten Bits
'1r' wenn Gruppe 1 aktiv, dann Bits rcksetzen
'9s' wenn Gruppe 9 aktiv, dann Bits setzen
'1d100' wenn Gruppe 1 aktiv, dann 100 ms Pause
'9d50' wenn Gruppe 9 aktiv, dann 50 ms Pause

Da Gruppe 1 aktiv ist, wird MSpg_34_R zurckgesetzt und 100 ms gewartet!
<!TXT>
>>
<<
128.120.2.4
DOut.Send|Send
--
<!DEF>
procedure <!TW>DOut.Send (aCard : address);
<!TXT>
Sendet evtl. zwischengespeicherte Daten der Karten <!PW>aCard.
>>
