:Revision=5
:html
<<
128.152
RS232-Objekt|RS232
$NoSort
--
Das IP-Objekt <!RW>RS232 dient dem Zugriff auf RS232-Schnittstellen (COM-Ports).

Die Ports werden mit den in der Grundeinstellung definierten Namen angesprochen, nicht unter ihrer Portnummer!

Die Einstellung der Schnittstellenparameter erfolgt ebenfalls in der Grundeinstellung.
>>

<<
128.152.1
Funktionen des RS232-Objekts|Funktionen
--
>>
<<
128.152.1.1
RS232.IsActive|IsActive
--
<!DEF>
function <!TW>RS232.IsActive : real;
<!TXT>
Liefert <!RW>TRUE, wenn die seriellen Ports aktiviert sind.

<!DEF>
function <!TW>RS232.IsActive (sName : string);
<!TXT>
Liefert <!RW>TRUE, wenn der serielle Port <!PW>sName aktiviert ist.
>>
<<
128.152.1.2
RS232.IsOpen|IsOpen
--
<!DEF>
function <!TW>RS232.IsOpen (sName) : real;
<!TXT>
Liefert <!RW>TRUE, wenn der serielle Port <!PW>sName geffnet ist.
>>
<<
128.152.1.3
RS232.Error|Error
!128.152.3 - Fehlercodes
--
<!DEF>
function <!TW>RS232.Error (sName) : real;
<!TXT>
Liefert den aktuellen Errorcode des seriellen Ports <!PW>sName.
>>
<<
128.152.1.4
RS232.ByteAvailable|ByteAvailable
--
<!DEF>
function <!TW>RS232.ByteAvailable (sName : string) : real;
<!TXT>
Liefert die Anzahl der Zeichen, die im Empfangspuffer des seriellen Ports <!PW>sName stehen
>>
<<
128.152.1.5
RS232.Read|Read
--
<!DEF>
function <!TW>RS232.Read (sName : string [; rTimeout : real [; rYield : real]]) : string;
<!TXT>
Liest einen String vom seriellen Port <!PW>sName ein.

Wenn <!PW>rTimeout [ms] nicht angegeben oder -1 ist, dann wird der Wert aus der Grundeinstellung verwendet.

Zum Erkennen des Stringendes wird die Input-EOS-Sequenz benutzt.

Wird bei dem Parameter <!PW>rYield True angegeben ist der TMCE noch ansprechbar, der Nachteil ist das so die Funktion langsammer wird. Wird False angegben ist der TMCE whrend des TimeOuts nicht mehr erreichbar aber schneller.

>>
<<
128.152.1.6
RS232.Get|Get
--
<!DEF>
function <!TW>RS232.Get (sName : string; rMin, rMax : real [; rTimeout : real[; rYield : real]]) : string;
<!TXT>
Liest Zeichen vom seriellen Port <!PW>sName ein.

Wenn <!PW>rTimeout [ms] nicht angegeben oder -1 ist, dann wird der Wert aus der Grundeinstellung verwendet.

Es wird gewartet, bis entweder die Timeoutzeit abgelaufen ist oder <!PW>rMax Zeichen angekommen sind.

Ist die Timeoutzeit abgelaufen und sind mindestens <!PW>rMin Zeichen angekommen, so wird dies NICHT als Timeout gewertet.

EOS-Sequenzen werden nicht beachtet.

Wird bei dem Parameter <!PW>rYield True angegeben ist der TMCE noch ansprechbar, der Nachteil ist das so die Funktion langsammer wird. Wird False angegben ist der TMCE whrend des TimeOuts nicht mehr erreichbar aber schneller.
>>

<<
128.152.1.7
RS232.CTS|CTS
!128.152.1.8
--
<!DEF>
function <!TW>RS232.CTS (sName : string) : real;
<!TXT>
Liefert den Status der Signalleitung <!SW>CTS (Clear To Send).
>>
<<
128.152.1.8
RS232.DSR|DSR
!128.152.1.7
--
<!DEF>
function <!TW>RS232.DSR (sName : string) : real;
<!TXT>
Liefert den Status der Signalleitung <!SW>DSR (Data Set Ready).
>>
<<
128.152.1.9
RS232.DCD|DCD
--
<!DEF>
function <!TW>RS232.DCD (sName : string) : real;
<!TXT>
Liefert den Status der Signalleitung <!SW>DCD (Data Carrier Detected).
>>
<<
128.152.1.10
RS232.RI|RI
--
<!DEF>
function <!TW>RS232.RI (sName : string) : real;
<!TXT>
Liefert den Status der Signalleitung <!SW>RI (Ring Indicator).
>>
<<
128.152.1.11
RS232.Exists|Exists
--
<!DEF>
function <!TW>RS232.Exists (sName : string) : real;
<!TXT>
Liefert <!RW>TRUE, wenn der serielle Port <!PW>sName vorhanden (definiert) ist.
>>

<<
128.152.1.12
RS232.OutBuffUsed|OutBuffUsed
--
<!DEF>
function <!TW>RS232.OutBuffUsed (sName : string) : real;
<!TXT>
Liefert die Anzahl der Zeichen, die noch im Sendepuffer des seriellen Ports <!PW>sName stehen.

Achtung: Dieser Wert wird von der seriellen Schnittstelle nur ereignisorientiert und damit nicht fr jedes einzelne Zeichen gendert. Er kann sich dadurch sprungweise ndern. 
Wenn der Wert auf 0 springt bedeutet dies nicht, dass keine Zeichen mehr gesendet werden, sondern nur, dass keine Zeichen mehr im Softwarepuffer des Programms stehen. Es knnen sich noch Zeichen im FIFO des UART oder dessen Schieberegister befinden.
>>

<<
128.152.1.13
RS232.OutBuffFree|OutBuffFree
--
<!DEF>
function <!TW>RS232.OutBuffFree (sName : string) : real;
<!TXT>
Liefert die Anzahl der Zeichen, fr die im Sendepuffer des seriellen Ports <!PW>sName noch Platz ist.

Achtung: Dieser Wert wird von der seriellen Schnittstelle nur ereignisorientiert und damit nicht fr jedes einzelne Zeichen gendert. Er kann sich dadurch sprungweise ndern. 
>>

<<
128.152.1.14
RS232.GetEOS|GetEOS
--
<!DEF>
function <!TW>RS232.GetEOS (sName : string; rSelect : real) : string;
<!TXT>
Gibt die <!SW>EOS/SOS - Sequenzen des seriellen Ports <!PW>sName zurck.

rSelect whlt die Sequenz:

<!STBL>
<!>0<!>Input Start-Of-String<br>(wird zu Zeit ignoriert)<!>
<!>1<!>Input End-Of-String<!>
<!>2<!>Output Start-Of-String<!>
<!>3<!>Output End-Of-String<!>
<!ETBL>
>>

<<
128.152.1.15
RS232.GetPortnumber|GetPortnumber
--
<!DEF>
function <!TW>RS232.GetPortnumber ( sPortName : string ) : real;
<!TXT>
Gibt den pysikalischen COM Port von <!PW>sPortName  zurck.

>>

<<
128.152.1.16
RS232.GetBaudrate|GetBaudrate
--
<!DEF>
function <!TW>RS232.GetBaudrate ( sPortName : string ) : real;
<!TXT>
Gibt die eingestellte Baudrate von <!PW>sPortName  zurck.

>>

<<
128.152.1.17
RS232.GetDataBits|GetDataBits
--
<!DEF>
function <!TW>RS232.GetDataBits ( sPortName : string ) : real;
<!TXT>
Gibt die eingestellte Anzahl an Datenbits von <!PW>sPortName  zurck.

>>

<<
128.152.1.18
RS232.GetParity|GetParity
--
<!DEF>
function <!TW>RS232.GetParity ( sPortName : string ) : string;
<!TXT>
Gibt die eingestellte Paritt von <!PW>sPortName  zurck.

>>

<<
128.152.1.19
RS232.GetStopBits|GetStopBits
--
<!DEF>
function <!TW>RS232.GetStopBits ( sPortName : string ) : real;
<!TXT>
Gibt die eingestellte Anzahl an Stopbits von <!PW>sPortName  zurck.

>>

<<
128.152.1.20
RS232.GetRcvTimeOut|GetRcvTimeOut
--
<!DEF>
function <!TW>RS232.GetRcvTimeOut ( sPortName : string ) : real;
<!TXT>
Gibt den eingestellten TimeOut beim Empfang ber <!PW>sPortName  zurck.

>>

<<
128.152.1.21
RS232.GetRcvEOS|GetRcvEOS
--
<!DEF>
function <!TW>RS232.GetRcvEOS ( sPortName : string ) : string;
<!TXT>
Gibt den eingestellten End Of String (EOS) an, der beim Empfang ber <!PW>sPortName  erwartet wird.

>>

<<
128.152.1.22
RS232.GetRmRcvEOSState|GetRmRcvEOSState
--
<!DEF>
function <!TW>RS232.GetRMRcvEOS ( sPortName : string ) : string;
<!TXT>
Der Funktions Name steht fr Get Remove (RM) Received (RCV) End of String (EOS) State und gibt an ob eingestellt ist das der End Of String (EOS) automatisch beim Empfang ber <!PW>sPortName  entfernt werden soll.

>>

<<
128.152.1.23
RS232.GetSendSOS|GetSendSOS
--
<!DEF>
function <!TW>RS232.GetSendSOS ( sPortName : string ) : string;
<!TXT>
Gibt den eingestellten Start Of String (SOS) an, der beim senden ber <!PW>sPortName  hinzugefgt wird.

>>

<<
128.152.1.24
RS232.GetSendEOS|GetSendEOS
--
<!DEF>
function <!TW>RS232.GetSendEOS ( sPortName : string ) : string;
<!TXT>
Gibt den eingestellten End Of String (SOS) an, der beim senden ber <!PW>sPortName  hinzugefgt wird.

>>

<<
128.152.2
Prozeduren des RS232-Objekts|Prozeduren
--
>>
<<
128.152.2.1
RS232.Open|Open
--
<!DEF>
procedure <!TW>RS232.Open (sName : string);
<!TXT>
ffnet den seriellen Port <!PW>sName.
>>
<<
128.152.2.2
RS232.Close|Close
--
<!DEF>
procedure <!TW>RS232.Close (sName : string);
<!TXT>
Schliet den seriellen Port <!PW>sName.
>>
<<
128.152.2.3
RS232.RTS|RTS
--
<!DEF>
procedure <!TW>RS232.RTS (sName : string; rOperation : real);
<!TXT>
Setzt den <!SW>RTS-Pin des seriellen Ports <!PW>sName.

 <!PW>rOperation kann sein : <!RW>CLR | <!RW>SET | <!RW>FLIP | <!RW>NOP oder 0..3
>>
<<
128.152.2.4
RS232.DTR|DTR
--
<!DEF>
procedure <!TW>RS232.DTR (sName : string; rOperation : real);
<!TXT>
Setzt den <!SW>DTR-Pin des seriellen Ports <!PW>sName.

 <!PW>rOperation kann sein : <!RW>CLR | <!RW>SET | <!RW>FLIP | <!RW>NOP oder 0..3
>>
<<
128.152.2.5
RS232.Setup|Setup
--
<!DEF>
procedure <!TW>RS232.SETUP (sName : string; rBaud, rData, rParity, rStop : real);
<!TXT>
Setzt die Kommunikationsparameter des seriellen Ports <!PW>sName

 <!PW>rBaud = 1..1000000,
 <!PW>rData = 5..8,
 <!PW>rStop = 1..2
 <!PW>rParity = 0..4 (none, odd, even, mark, space)
>>
<<
128.152.2.6
RS232.SetEOS|SetEOS
--
<!DEF>
procedure <!TW>RS232.SETEOS (sName : string; rSelect : real; sEOS : string);
<!TXT>
Setzt die <!SW>EOS/SOS - Sequenzen des seriellen Ports <!PW>sName.
rSelect whlt aus welche Sequenz gesetzt werden soll:
<!STBL>
<!>0<!>Input Start-Of-String<br>(wird zu Zeit ignoriert)<!>
<!>1<!>Input End-Of-String<!>
<!>2<!>Output Start-Of-String<!>
<!>3<!>Output End-Of-String<!>
<!ETBL>
>>
<<
128.152.2.7
RS232.Send|Send
--
<!DEF>
procedure <!TW>RS232.Send (sName : string; .Data : string|vector);
<!TXT>
Sendet den String oder Bytevektor <!PW>Data dekoriert mit den Output-SOS und -EOS Sequenzen auf den seriellen Port <!PW>sName.
>>
<<
128.152.2.8
RS232.Put|Put
--
<!DEF>
procedure <!TW>RS232.Put (sName : string; .Data : string|vector);
<!TXT>
Sendet den String oder Bytevektor <!PW>Data auf den seriellen Port <!PW>sName (ohne Output-SOS und -EOS Sequenzen zu beachten)
>>
<<
128.152.2.9
RS232.ClearInBuffer|ClearInBuffer
--
<!DEF>
procedure <!TW>RS232.ClearInBuffer (sName : string);
<!TXT>
Lscht den Empfangspuffer des seriellen Ports <!PW>sName.
>>
<<
128.152.2.10
RS232.ClearOutBuffer|ClearOutBuffer
--
<!DEF>
procedure <!TW>RS232.ClearOutBuffer (sName : string);
<!TXT>
Lscht den Sendepuffer des seriellen Ports <!PW>sName.
>>

<<
128.152.3
Fehlercodes des RS232-Objekts|Fehlercodes
--
<!STBL>
<!+>Code<!+>Bedeutung<!>
<!c>0<!>alles okay<!>
<!c>1<!>Port nicht geffnet (oder inaktiv)<!>
<!c>2<!>Exception (unerwarteter Fehler)<!>
<!c>3<!>Timeout beim Warten auf Daten<!>
<!ETBL>
>>

