:Revision=3
:html
<<
128.116
LIN-Objekt|LIN
$NoSort
--
Das IP-Objekt <!RW>LIN dient dem Zugriff auf eine LIN-Schnittstelle (Local Interconnection Network).

Der eigentliche Zugriff wird ber eine RS232-Schittstelle (fester Name &quot;LIN&quot;) abgewickelt, die entsprechend parametriert sein muss.

In den Befehlen muss die Nummer des LIN-Busses angegeben werden. Da zur Zeit nur ein LIN Bus untersttzt wird, muss fr die Bus-Nummer immer 1 angegeben werden.

Seit Version 1.2.9 Build 968 wird der LIN Betrieb in 2 verschiedenen Modi untersttzt:
<H3>IO Modus</H3>
Dies ist der bereits zuvor untersttzte Modus, der ohne Vernderung weiter benutzt werden kann.
Die Kommunikation erfolgt mit den Befehlen Send und Received, zustzlich kann ein Keep-Alive-Frame festgelegt werden, der im Hintergrund gesendet wird.
Die einzelnen Kommunikationsframes mssen im Interpreter zusammengesetzt bzw. dekodiert werden. Die Kommunikation erfolgt also auf Frame-Ebene.
<H3>Task Modus</H3>
Dieser Modus wurde neu aufgenommen.
Die Kommunikation erfolgt komplett im Hintergrund. Hierzu wird eine LIN Definition aufgebaut. Dies kann durch Interpreterbefehlen geschehen, oder durch das Einlesen eines 'LIN Description Files' (LDF), ein standardisiertes Dateiformat.
Die LIN Definition enthlt alle Angaben ber die am Netz befindlichen Knoten, die Nachrichten, die ausgetauscht werden und wer diese sendet bzw. empfngt. Auerdem ist der Inhalt der Nachrichten in Form von Signalen aufgeschlsselt. Jeder Dateneinheit (Signal) wird quasi ihre Position innerhalb der Bits eines Frames zugeordnet. Vom Interpreter aus kann direkt der Wert eines Signales gelesen bzw. gesetzt werden. Das Einflechten bzw. Auslesen der Bits des Signals in den oder aus dem Frame bernimmt das Programm. Die Kommunikation erfolgt also auf Signal-Ebene.
Im Task-Modus kann das Programm auch die Funktion eines Slave-Knotens bernehmen und auf die Anforderungen eines realen Masters am LIN Bus reagieren. Hierdurch ist der Test von LIN Master Knoten mglich.

Die Auswahl, in welchem Modus kommuniziert werden soll, erfolgt in der Grundeinstellung. Eine Umschaltung im laufenden Betrieb ist nicht mglich. Die Befehle des jeweils nicht aktiven Modus haben keine Auswirkung.
>>

<<
128.116.1
Funktionen und Prozeduren in allen LIN Modi|Allgemein
--
>>
<<
128.116.1.1
LIN.IsActive|IsActive
--
<!DEF>
function <!TW>LIN.IsActive : real;
<!TXT>
Liefert <!RW>TRUE, wenn der LIN Bus aktiviert ist.

<!DEF>
function <!TW>LIN.IsActive (rNr : real) : real;
<!TXT>
Liefert <!RW>TRUE, wenn der LIN Bus <!PW>rNr aktiviert ist.
>>
<<
128.116.1.2
LIN.IsOpen|IsOpen
--
<!DEF>
function <!TW>LIN.IsOpen (rNr : real) : real;
<!TXT>
Liefert <!RW>TRUE, wenn der LIN Bus <!PW>rNr geffnet ist.
>>
<<
128.116.1.3
LIN.Error|Error
!128.116.4 - Fehlercodes
--
<!DEF>
function <!TW>LIN.Error (rNr : real) : real;
<!TXT>
Liefert das Ergebnis der letzten Aktion auf den LIN-Bus <!PW>rNr.
>>
<<
128.116.1.4
LIN.Open|Open
--
<!DEF>
procedure <!TW>LIN.Open (rNr : real);
<!TXT>
ffnet den LIN Bus <!PW>rNr.
>>
<<
128.116.1.5
LIN.Close|Close
--
<!DEF>
procedure <!TW>LIN.Close (rNr : real);
<!TXT>
Schliet den LIN Bus <!PW>rNr.
>>

<<
128.116.4
Fehlercodes des LIN-Objekts|Fehlercodes
--
<!STBL>
<!+>Code<!+>Bedeutung<!+>
<!c>0<!>alles okay<!>
<!c>1<!>kein serieller Port zugewiesen<!>
<!c>2<!>Port kann nicht geffnet werden<!>
<!c>3<!>Port nicht geffnet<!>
<!c>4<!>Timeout<!>
<!c>5<!>Fehler in der Checksumme<!>
<!c>6<!>Fehler beim Rcklesen gesendeter Zeichen<!>
<!c>7<!>Fehler im Frameaufbau<!>
<!c>8<!>Bus ist im falschen Modus (Task bzw. IO)<!>
<!c>9<!>Aktion nicht mglich, wenn Port geffnet<!>
<!c>10<!>Datei nicht gefunden<!>
<!c>11<!>Dateiinhalt ungltig<!>
<!c>99<!>Anderer Fehler<!>
<!ETBL>
>>

<<
128.116.2
Funktionen und Prozeduren im IO Modus|IO Modus
--
Hinweis: die Befehle in diesem Abschnitt haben nur dann eine Auswirkung, wenn der LIN Bus im <!SW>IO Modus betrieben wird.

In diesem Modus werden komplette Frames (Nachrichten) an LIN bergeben und empfangen.

Fr das Verpacken der Informationen in die Frames und das Dekodieren der Frames sind die Interpreterschritte zustndig.

Abgesehen vom Keep-Alive Frame, der automatisch immer dann gesendet wird, wenn fr eine definierte Zeit keine andere Aktion auf dem Bus stattgefunden hat, findet keine automatische Kommunikation statt.
>>

<<
128.116.2.1
LIN.Received|Received
--
<!DEF>
function <!TW>LIN.Received (rNr, rLength : real) : vector;
<!TXT>
Versucht, von der LIN-Schnittstelle <!PW>rLength Bytes + Checksumme einzulesen.

Nur die Datenbytes werden zurckgegeben. Wird nichts empfangen, so wird [] geliefert.

Der Status kann mit Error abgefragt werden.
>>
<<
128.116.2.2
LIN.Send|Send
--
<!DEF>
procedure <!TW>LIN.Send (rNr, rID : real; vData : vector);
<!TXT>
Sendet den Frame im Vektor <!PW>vData mit dem Master Task <!PW>rID auf den LIN-Bus <!PW>rNr.

Die Checksumme fr <!PW>vData wird automatisch berechnet.

Ein berprfung des Identifiers und der Datenlnge findet nicht statt.
>>
<<
128.116.2.3
LIN.KeepAlive|KeepAlive
--
<!DEF>
procedure <!TW>LIN.KeepAlive (rNr, rID : real; vFrame : vector [; rInterval : real]);
<!TXT>
Definiert den Frame, der fr den Lebenserhalt der Kommunikation verwendet wird.

Findet fr die Zeit <!PW>rInterval [ms] keine Kommunikation statt, so wird der <!PW>vFrame mit dem Identifier <!PW>rID gesendet. Ist <!PW>rInterval=0 so wird die zyklische bertragung abgeschaltet.
>>

<<
128.116.3
Funktionen und Prozeduren im Task Modus|Task Modus
--
Hinweis: die Befehle in diesem Abschnitt haben nur dann eine Auswirkung, wenn der LIN Bus im <!SW>Task Modus betrieben wird.

In diesem Modus luft die komplette Kommunikation, gesttzt auf eine LIN Definition, im Hintergrund ab.
Innerhalb der LIN Definition werden festgelegt:
<ul indent=15>
<li>Baudrate und das LIN Protokoll</li>
<li>Knoten am Bus</li>
<li>Signale (Dateneinheiten)</li>
<li>Nachrichten, die verschickt werden</li>
<li>Sendetabellen fr die Nachrichten</li>
<li>Dekodierungsvorschriften fr die Signale</li>
</ul>
und selbstverstndlich die logischen Verknpfungen zwischen diesen Elementen, z.B. welches Signal in welchem Frame von welchem Knoten gesendet wird und wie dieses Signal zu dekodieren ist.

Gesttzt auf diese Daten luft die eigentliche Kommunikation im Hintergrund ab. Daher ist die Simulation von Slave-Knoten mglich.

Interpreterbefehle knnen die Daten der einzelnen Elemente lesen und setzen. Es ist also mglich, direkt den Wert eines Signals (z.B.: Displayhelligkeit) auszulesen oder zu setzen, ohne sich darum kmmern zu mssen, welche Bits in welchem Frame von diesem Signal belegt werden.

nderungen an der LIN Definition knnen nur dann vorgenommen werden, wenn die Definition nicht aktiv ist, d.h. der LIN Bus nicht geffnet ist.
Falls der LIN Bus geffnet ist, haben Befehle zur nderung der LIN Definition keine Auswirkung.
>>

<<
128.116.3.1
LIN Definition|Definition
--
Die Befehle zur <!RW>LIN.Definition beziehen sich auf die gesamte LIN Definition.
>>

<<
128.116.3.1.1
LIN.Definition.Clear|Clear
--
<!DEF>
procedure <!TW>LIN.Definition.Clear (rNr : real);
<!TXT>
Lscht die komplette LIN Definition von LIN Bus <!PW>rNr. Nach diesem Befehl sind weder Knoten, noch Signale, Frames oder hnliches definiert.

Falls der LIN Bus geffnet ist, hat dieser Befehl keine Auswirkung.
>>

<<
128.116.3.1.2
LIN.Definition.Load|Load
--
<!DEF>
procedure <!TW>LIN.Definition.Load (rNr : real; sFileName : string);
<!TXT>
Ldt die LIN Definition fr LIN Bus <!PW>rNr aus der Datei <!PW>sFileName.

Der Dateiname kann eine Pfadschablone enthalten.

Die Datei muss der "LIN description file definition" der "LIN Configuration Language Specification, Revision 2.0" entsprechen. Zu MCD spezifischen Erweiterungen siehe LIN.Definition.Save

Bei Fehlern im Dateiformat wird eine Fehlermeldung angezeigt.

Falls der LIN Bus geffnet ist, hat dieser Befehl keine Auswirkung.
>>

<<
128.116.3.1.3
LIN.Definition.Save|Save
--
<!DEF>
procedure <!TW>LIN.Definition.Save (rNr : real; sFileName : string);
<!TXT>
Speichert die LIN Definition fr LIN Bus <!PW>rNr in die Datei <!PW>sFileName.

Der Dateiname kann eine Pfadschablone enthalten. Eine bestehende Datei wird berschrieben.

Die erzeugte Datei entspricht der "LIN description file definition" der "LIN Configuration Language Specification, Revision 2.0".

Zustzlich wird jedoch gespeichert, welche Knoten vom Programm simuliert wurden und welcher Schedule Table aktiv war.

Dies geschieht in Form vom Zeilenkommentaren, da die LIN Spezifikation keine kundenspezifischen Erweiterungen des Formates vorsieht.

Die simulierten Knoten werden in der Form:
<!CODE>
//<b>[MCD:SimulatedNodes:</b><i>NodeName</i><b>,</b><i>NodeName</i><b>...]</b>
<!TXT>
gespeichert. Falls keine Knoten simuliert werden, ist dieser Kommentar nicht vorhanden.

Die aktive Schedule Tabelle wird in der Form:
<!CODE>
//<b>[MCD:ActiveSchedule:</b><i>TableName</i>]</b>
<!TXT>
gespeichert. Falls keine Tabelle aktiv ist, ist dieser Kommentar nicht vorhanden.

Die AutoIncOnSend Option der Signale wird in der Form:
<!CODE>
//<b>[MCD:AutoIncOnSaveSignals:</b><i>SignalName</i><b>,</b><i>SignalName</i><b>...]</b>
<!TXT>
gespeichert. Falls keine Signale mit dieser Option vorhanden sind, ist dieser Kommentar nicht vorhanden.
>>

<<
128.116.3.1.4
LIN.Definition.Setup|Setup
--
<!DEF>
procedure <!TW>LIN.Definition.Setup (rNr, rBaudRate, rProtocol : real);
<!TXT>
Setzt die Grundlagen der LIN Definition fr LIN Bus <!PW>rNr.

 <!PW>rBaudrate ist die Kommunikationsbaudrate des LIN Busses (1000 .. 20000 Bd)

 <!PW>rProtocol whlt die Feinheiten des Protokolls

<!STBL>
<!+>rProtocol<!+>LIN Protokoll<!>
<!c>0<!>LIN 1.2<!>
<!c>1<!>LIN 1.3<!>
<!c>2<!>LIN 2.0<!>
<!ETBL>
>>

<<
128.116.3.2
LIN Knoten (Nodes)|Node
--
Die Befehle der Gruppe <!RW>LIN.Node dienen der Definition von LIN Knoten (Kommunikationsteilnehmer) am LIN Bus.
Das Testprogramm kann einen oder mehrere dieser Knoten simulieren. Jeweils ein Knoten muss als Master gekennzeichnet sein. Nur dieser kann die Kommunikation durch das Senden von Mastertasks anstoen.
>>

<<
128.116.3.2.1
LIN.Node.Count|Count
--
<!DEF>
function <!TW>LIN.Node.Count (rNr : real) : real;
<!TXT>
Liefert die Anzahl definierter Knoten fr den LIN Bus <!PW>rNr.
>>
<<
128.116.3.2.2
LIN.Node.Exists|Exists
--
<!DEF>
function <!TW>LIN.Node.Exists (rNr : real; sNodeName : string) : real;
<!TXT>
Liefert <!RW>TRUE, wenn fr den LIN Bus <!PW>rNr ein Knoten mit dem Namen <!PW>sNodeName definiert ist.
>>

<<
128.116.3.2.3
LIN.Node.Add|Add
--
<!DEF>
procedure <!TW>LIN.Node.Add (rNr: real; sNodeName : string; rIsMaster, rIsSimulated : real);
<!TXT>
Erzeugt in der LIN Definition des LIN Busses <!PW>rNr einen neuen Knoten mit dem Namen <!PW>sNodeName.

Wenn ein Knoten mit diesem Namen bereits existiert, wird ein Fehler ausgelst.

Wenn <!PW>rIsMaster <!RW>TRUE ist, bernimmt der Knoten die Masterfunktion am LIN Bus. War zuvor ein anderer Knoten Master, so wird dieser andere Knoten zum Slave.
Wenn <!PW>rIsSimulated <!RW>TRUE ist, wird der Knoten vom Programm simuliert.
Fr einen simulierten Slave-Knoten antwortet das Programm auf Mastertasks mit den entsprechenden Slavetasks.
Fr einen simulierten Master-Knoten fhrt das Programm die aktivierte Scheduletabelle aus und schickt die Mastertasks.

Falls der LIN Bus geffnet ist, hat dieser Befehl keine Auswirkung.
>>

<<
128.116.3.2.4
LIN.Node.Set|Set
--
<!DEF>
procedure <!TW>LIN.Node.Set (rNr: real; .Node : string|real; rIsMaster, rIsSimulated : real);
<!TXT>
ndert den Master/Slave- und Simulationszustand eines Knotens am LIN Bus <!PW>rNr.

Der Knoten kann ber seinen Namen (<!PW>Node als <!RW>String) oder seinen Index (<!PW>Node als <!RW>Real) in der Liste (1 &lt;= <!PW>Node &lt;= Anzahl Knoten) angegeben werden. Die Angabe eines nicht vorhandenen Knotens fhrt zu einem Fehler.

Ist <!PW>rIsMaster <!RW>TRUE, bernimmt der Knoten die Masterfunktion am LIN Bus. War zuvor ein anderer Knoten Master, so wird dieser andere Knoten zum Slave.
Ist <!PW>rIsSimulated <!RW>TRUE, wird der Knoten vom Programm simuliert.
Fr simulierte Slaveknoten antwortet das Programm auf Mastertasks mit Slavetasks.
Fr simulierte Masterknoten bernimmt das Programm die Aussendung der mastertasks entsprechend der aktivierten Scheduletabelle.

Falls der LIN Bus geffnet ist, hat dieser Befehl keine Auswirkung.
>>

<<
128.116.3.2.4
LIN.Node.Delete|Delete
--
<!DEF>
procedure <!TW>LIN.Node.Delete (rNr: real; .Node : string|real);
<!TXT>
Entfernt einen Knoten aus der LIN Definition des LIN Busses <!PW>rNr.

Der Knoten kann ber seinen Namen (<!PW>Node als <!RW>String) oder seinen Index (<!PW>Node als <!RW>Real) in der Liste (1 &lt;= <!PW>Node &lt;= Anzahl Knoten) angegeben werden. Die Angabe eines nicht vorhandenen Knotens fhrt zu einem Fehler.

Wenn der Knoten entfernt wird, werden auch alle Frames entfernt, die dieser Knoten sendet.

Falls der LIN Bus geffnet ist, hat dieser Befehl keine Auswirkung.
>>

<<
128.116.3.2.5
LIN.Node.Get|Get
--
<!DEF>
procedure <!TW>LIN.Node.Get (rNr: real; .Node : string|real; var sNodeName : string; var rIsMaster, rIsSimulated : real);
<!TXT>
Holt die Daten eines Knoten der LIN Definition des LIN Busses <!PW>rNr.

Der Knoten kann ber seinen Namen (<!PW>Node als <!RW>String) oder seinen Index (<!PW>Node als <!RW>Real) in der Liste (1 &lt;= <!PW>Node &lt;= Anzahl Knoten) angegeben werden. Die Angabe eines nicht vorhandenen Knotens fhrt zu einem Fehler.

 <!PW>sNodeName enthlt nach dem Aufruf den Namen des Knoten (dies macht zwar bei Angabe des Knotennamens wenig Sinn, ist aber aufgrund der Befehlsstruktur ntig)

 <!PW>rIsMaster ist nach dem Aufruf <!RW>TRUE, wenn der Knoten der Master am Bus ist

 <!PW>rIsSimulated ist nach dem Aufruf <!RW>TRUE, wenn der Knoten vom Programm simuliert wird
>>

<<
128.116.3.3
LIN Nachrichten (Frames)|Frame
--
Die Befehle der Gruppe <!RW>LIN.Frame dienen der Definition von LIN Nachrichten am LIN Bus.

Frames sind ber ihre ID (0..63) einer Mastertask zugeordnet.

Ein Frame besitzt zwischen 1 und 8 Datenbytes.

Innerhalb der LIN Definition hat ein Frame einen eindeutigen Namen.

Frames werden von exakt einem Knoten gesendet, sobald der Master die der ID entprechende Mastertask sendet.

Einem Frame knnen ein oder mehrere Signale zugeordnet werden.
>>

<<
128.116.3.3.1
LIN.Frame.Count|Count
--
<!DEF>
function <!TW>LIN.Frame.Count (rNr : real) : real;
<!TXT>
Liefert die Anzahl definierter Frames fr den LIN Bus <!PW>rNr.
>>

<<
128.116.3.3.2
LIN.Frame.Exists|Exists
--
<!DEF>
function <!TW>LIN.Frame.Exists (rNr : real; sFrameName : string) : real;
<!TXT>
Liefert <!RW>TRUE, wenn fr den LIN Bus <!PW>rNr ein Frame mit dem Namen <!PW>sFrameName definiert ist.
>>
<<
128.116.3.3.3
LIN.Frame.Data.Get|Data.Get
--
<!DEF>
function <!TW>LIN.Frame.Data.Get (rNr : real; .Frame : real|string) : vector;
<!TXT>
Liefert die Slave-Task Daten eines Frames am LIN Bus <!PW>rNr.

Der Frame kann ber seinen Namen (<!PW>Frame als <!RW>String) oder seinen Index (<!PW>Frame als <!RW>Real) in der Liste (1 &lt;= <!PW>Frame &lt;= Anzahl Frames) angegeben werden. Die Angabe eines nicht vorhandenen Frames fhrt zu einem Fehler.

Wenn der LIN Bus geffnet ist wird der zuletzt empfangene bzw. gesetzte Zustand der Slave-Daten geliefert.
Wenn der LIN Bus geschlossen ist werden die Initialisierungsdaten geliefert.
>>

<<
128.116.3.3.4
LIN.Frame.Add|Add
--
<!DEF>
procedure <!TW>LIN.Frame.Add (rNr : real; sName : string; rID : real; .Sender : real|string; rLen : real [; vInitData : vector]);
<!TXT>
Erzeugt einen neuen Frame mit dem Namen <!PW>sName in der LIN Definition des LIN Busses <!PW>rNr.
Wenn ein Frame mit diesem Namen bereits existiert, wird ein Fehler ausgelst.

Der Frame wird ber seine ID <!PW>rID dem Mastertask <!PW>rID zugeordnet.
Wenn bereits ein Frame diesem Mastertask zugeordnet war, wird ein Fehler ausgelst.

 <!PW>Sender gibt den Knoten an, der den neuen Frame sendet. Der Knoten kann ber seinen Namen (<!PW>Sender als <!RW>String) oder seinen Index (<!PW>Sender als <!RW>Real) in der Liste (1 &lt;= <!PW>Sender &lt;= Anzahl Knoten) angegeben werden. Die Angabe eines nicht vorhandenen Knotens fhrt zu einem Fehler.

Die Anzahl Datenbytes im Slave-Task den Frames wird ber <!PW>rLen (1..8) festgelegt.

Wenn <!PW>vInitData angegeben ist, so wird er als Initialisierungsdaten verwendet.

Falls der LIN Bus geffnet ist, hat dieser Befehl keine Auswirkung.
>>

<<
128.116.3.3.5
LIN.Frame.Request|Request
--
<!DEF>
procedure <!TW>LIN.Frame.Request (rNr : real; Frame : real|string[,Frame2 : real|string]);
<!TXT>
Lst einen oder direkt hintereinander zwei Mastertasks fr den Frame auf dem LIN Bus <!PW>rNr aus.

Der Frame wird ber den Namen (<!PW>Frame als <!RW>String) oder den Index (<!PW>Frame als <!RW>Real) in der Liste (1 &lt;= <!PW>Frame &lt;= Anzahl Frames) angegeben werden. Die Angabe eines nicht vorhandenen Frames fhrt zu einem Fehler.

Der Mastertask wird auch dann ausgelst, wenn das Programm den Master-Knoten nicht simuliert.

Dies kann unter Umstnden zu ungltigen Situationen auf dem Bus fhren. Daher solte dieser Befehl nur benutzt werden, wenn das Programm den Masterknoten simuliert.
>>

<<
128.116.3.3.6
LIN.Frame.Set|Set
--
<!DEF>
procedure <!TW>LIN.Frame.Set (rNr : real; .Frame : real|string; rID : real; .Sender : real|string; rLen : real [; vInitData : vector]);
<!TXT>
ndert die Daten eines Frames in der Lin Definition des LIN Busses <!PW>rNr.

Der Frame kann ber seinen Namen (<!PW>Frame als <!RW>String) oder seinen Index (<!PW>Frame als <!RW>Real) in der Liste (1 &lt;= <!PW>Frame &lt;= Anzahl Frames) angegeben werden. Die Angabe eines nicht vorhandenen Frames fhrt zu einem Fehler.

Der Frame wird ber seine ID <!PW>rID dem Mastertask <!PW>rID zugeordnet.
Wenn bereits ein Frame diesem Mastertask zugeordnet war, wird ein Fehler ausgelst.

 <!PW>Sender gibt den Knoten an, der den neuen Frame sendet. Der Knoten kann ber seinen Namen (<!PW>Sender als <!RW>String) oder seinen Index (<!PW>Sender als <!RW>Real) in der Liste (1 &lt;= <!PW>Sender &lt;= Anzahl Knoten) angegeben werden. Die Angabe eines nicht vorhandenen Knotens fhrt zu einem Fehler.

Die Anzahl Datenbytes im Slave-Task den Frames wird ber <!PW>rLen (1..8) festgelegt.

Wenn <!PW>vInitData angegeben ist, legt er die Initialisierungsdaten fest.

Falls der LIN Bus geffnet ist, hat dieser Befehl keine Auswirkung.
>>

<<
128.116.3.3.7
LIN.Frame.Delete|Delete
--
<!DEF>
procedure <!TW>LIN.Frame.Delete (rNr : real; .Frame : real|string);
<!TXT>
Entfernt einen Frames aus der LIN Definition des LIN Busses <!PW>rNr.

Der Frame kann ber seinen Namen (<!PW>Frame als <!RW>String) oder seinen Index (<!PW>Frame als <!RW>Real) in der Liste (1 &lt;= <!PW>Frame &lt;= Anzahl Frames) angegeben werden. Die Angabe eines nicht vorhandenen Frames fhrt zu einem Fehler.

Signale, die diesem Frame zugeordnet waren, sind danach keinen Frame mehr zugeordnet.

Ist der Frame in Schedule-Tabellen enthalten, so wird er dort entfernt.

Falls der LIN Bus geffnet ist, hat dieser Befehl keine Auswirkung.
>>

<<
128.116.3.3.8
LIN.Frame.Get|Get
--
<!DEF>
procedure <!TW>LIN.Frame.Get (rNr : real; .Frame : real|string; var sName : string; var rID : real; var sSender : string; rLen : real; var .InitData : string|vector]);
<!TXT>
Holt die Daten eines Frames aus der LIN Definition des LIN Busses <!PW>rNr.

Der Frame kann ber seinen Namen (<!PW>Frame als <!RW>String) oder seinen Index (<!PW>Frame als <!RW>Real) in der Liste (1 &lt;= <!PW>Frame &lt;= Anzahl Frames) angegeben werden. Die Angabe eines nicht vorhandenen Frames fhrt zu einem Fehler.

 <!PW>sName enthlt nach dem Aufruf den Namen des Frames (dies macht zwar bei Angabe des Framenamens wenig Sinn, ist aber aufgrund der Befehlsstruktur ntig)

 <!PW>rID enthlt nach dem Aufruf die ID des Frames.

 <!PW>sSender ist nach dem Aufruf der Name des Knotens, der diesen Frame sendet.

 <!PW>rLen enthlt nach dem Aufruf die Anzahl datenbytes des Slavetasks.

 <!PW>InitData wird auf den Wert der Initialisierungsdaten des Frames gesetzt. Wenn <!PW>Initdata den Typ <!RW>String hat, wird der Frame als Bytestring (ein Byte pro Zeichen) geliefert, wenn <!PW>InitData vom typ <!RW>Vector ist, wird der Frame als Bytevektor (ein Byte pro Element) geliefert.
>>

<<
128.116.3.3.9
LIN.Frame.Data.Set|Data.Set
--
<!DEF>
procedure <!TW>LIN.Frame.Data.Set (rNr : real; .Frame : real|string; .Data : string|vector; [rECS,[rCounterFlags, rCounterOffset, rCounterLen]]);
<!TXT>
Setzt die Slave-Task Daten eines Frames am LIN Bus <!PW>rNr.

Der Frame kann ber seinen Namen (<!PW>Frame als <!RW>String) oder seinen Index (<!PW>Frame als <!RW>Real) in der Liste (1 &lt;= <!PW>Frame &lt;= Anzahl Frames) angegeben werden. Die Angabe eines nicht vorhandenen Frames fhrt zu einem Fehler.

Die Daten knnen als String (ein Byte pro Zeichen) oder Bytevektor angegeben werden.

Wenn der LIN Bus geffnet ist, werden die aktuellen Slavetask-Daten gesetzt - hierdurch werden auch die Werte der Signale, die diesem Frame zugeordnet sind, verndert.
Wenn der LIN Bus geschlossen ist werden die Initialisierungsdaten gesetzt.

<h4>Optionale Erweiterungen fr Taskmodus ber LIN-Kopf-Modul</h4>

Die folgenden optionalen Parameter haben nur dann eine Auswirkung, wenn die LIN-Kommunikation im Taskmodus ber das LIN-Kopf-Modul durchgefhrt wird und der LIN Bus bereits geffnet ist.

 <!PW>rECS : Erweiterte Prfsummenberechnung aktivieren/deaktivieren (True/False)

 <!PW>rCounterFlags : Flags fr automatische Message Counter ( Bit 0: ein/aus, ... )

 <!PW>rCounterOffset : Startposition fr automatische Message Counter

 <!PW>rCounterOffset : Lnge fr automatische Message Counter

>>

<<
128.116.3.3.10
LIN.Frame.Signal.Add|Signal.Add
--
<!DEF>
procedure <!TW>LIN.Frame.Signal.Add (rNr : real; .Frame : real|string; .Signal : real|string; rOffset : real);
<!TXT>
Ordnet ein Signal einem Frame am LIN Bus <!PW>rNr zu.

Der Frame kann ber seinen Namen (<!PW>Frame als <!RW>String) oder seinen Index (<!PW>Frame als <!RW>Real) in der Liste (1 &lt;= <!PW>Frame &lt;= Anzahl Frames) angegeben werden. Die Angabe eines nicht vorhandenen Frames fhrt zu einem Fehler.

Das Signal kann ber seinen Namen (<!PW>Signal als <!RW>String) oder seinen Index (<!PW>Signal als <!RW>Real) in der Liste (1 &lt;= <!PW>Signal &lt;= Anzahl Signale) angegeben werden. Die Angabe eines nicht vorhandenen Signals fhrt zu einem Fehler.

 <!PW>rOffset ist der Bitoffset des Signals im Frame (0..63)

Falls der LIN Bus geffnet ist, hat dieser Befehl keine Auswirkung.
>>

<<
128.116.3.4
LIN Schedule Tabellen|Schedule
--
Die Befehle der Gruppe <!RW>LIN.Schedule dienen der Definition von LIN Sendelisten am LIN Bus.

Die Sendelisten legen fest, in welcher Reihenfolge und mit welchem zeitlichen Abstand die Mastertasks einzelne Frames ausgelst werden.

Es knnen mehrere Sendelisten definiert werden, aber nur eine kann aktiv sein. Eine aktive Sendeliste wird nur dann beachtet, wenn das programm den Master-Knoten simuliert.
>>

<<
128.116.3.4.1
LIN.Schedule.Count|Count
--
<!DEF>
function <!TW>LIN.Schedule.Count (rNr : real) : real;
<!TXT>
Liefert die Anzahl definierter Sendelisten fr den LIN Bus <!PW>rNr.
>>

<<
128.116.3.4.2
LIN.Schedule.Exists|Exists
--
<!DEF>
function <!TW>LIN.Schedule.Exists (rNr : real; sScheduleName : string) : real;
<!TXT>
Liefert <!RW>TRUE, wenn fr den LIN Bus <!PW>rNr eine Sendeliste mit dem Namen <!PW>sScheduleName definiert ist.
>>

<<
128.116.3.4.3
LIN.Schedule.Active|Active
--
<!DEF>
function <!TW>LIN.Schedule.Active (rNr : real; .Schedule : real|string) : real;
<!TXT>
Liefert <!RW>TRUE, wenn die Sendeliste am LIN Bus <!PW>rNr aktiv ist.

Die Sendeliste kann ber ihren Namen (<!PW>Schedule als <!RW>String) oder ihren Index (<!PW>Schedule als <!RW>Real) in der Liste (1 &lt;= <!PW>Schedule &lt;= Anzahl Sendelisten) angegeben werden. Die Angabe einer nicht vorhandenen Sendeliste fhrt zu einem Fehler.
>>

<<
128.116.3.4.4
LIN.Schedule.Frame.Count|Frame.Count
--
<!DEF>
function <!TW>LIN.Schedule.Frame.Count (rNr : real; .Schedule : real|string) : real;
<!TXT>
Liefert die Anzahl der Frames, die in der Sendeliste am LIN Bus <!PW>rNr eingetragen sind.

Die Sendeliste kann ber ihren Namen (<!PW>Schedule als <!RW>String) oder ihren Index (<!PW>Schedule als <!RW>Real) in der Liste (1 &lt;= <!PW>Schedule &lt;= Anzahl Sendelisten) angegeben werden. Die Angabe einer nicht vorhandenen Sendeliste fhrt zu einem Fehler.
>>

<<
128.116.3.4.5
LIN.Schedule.Add|Add
--
<!DEF>
procedure <!TW>LIN.Schedule.Add (rNr : real; sName : string);
<!TXT>
Erzeugt eine neue Sendeliste dem Namen <!PW>sName in der LIN Definition des LIN Busses <!PW>rNr.

Wenn eine Sendeliste mit diesem Namen bereits existiert, wird ein Fehler ausgelst.

Falls der LIN Bus geffnet ist, hat dieser Befehl keine Auswirkung.
>>

<<
128.116.3.4.6
LIN.Schedule.Delete|Delete
--
<!DEF>
procedure <!TW>LIN.Schedule.Delete (rNr : real; .Schedule : real|string);
<!TXT>
Entfernt eine Sendeliste aus der LIN Definition des LIN Busses <!PW>rNr.

Die Sendeliste kann ber ihren Namen (<!PW>Schedule als <!RW>String) oder ihren Index (<!PW>Schedule als <!RW>Real) in der Liste (1 &lt;= <!PW>Schedule &lt;= Anzahl Sendelisten) angegeben werden. Die Angabe einer nicht vorhandenen Sendeliste fhrt zu einem Fehler.

Falls der LIN Bus geffnet ist, hat dieser Befehl keine Auswirkung.
>>

<<
128.116.3.4.7
LIN.Schedule.Get|Get
--
<!DEF>
procedure <!TW>LIN.Schedule.Get (rNr : real; .Schedule : real|string; var sName : string) ;
<!TXT>
Liefert die Slave-Task Daten eines Frames am LIN Bus <!PW>rNr.

Die Sendeliste kann ber ihren Namen (<!PW>Schedule als <!RW>String) oder ihren Index (<!PW>Schedule als <!RW>Real) in der Liste (1 &lt;= <!PW>Schedule &lt;= Anzahl Sendelisten) angegeben werden. Die Angabe einer nicht vorhandenen Sendeliste fhrt zu einem Fehler.

 <!PW>sName enthlt nach dem Aufruf den Namen der Sendeliste (dies macht zwar bei Angabe des Sendelistennamens wenig Sinn, ist aber aufgrund der Befehlsstruktur ntig)
>>

<<
128.116.3.4.8
LIN.Schedule.Frame.Add|Frame.Add
--
<!DEF>
procedure <!TW>LIN.Schedule.Frame.Add (rNr : real; .Schedule : real|string; .Frame : real|string; rDelay : real);
<!TXT>
Fgt einer Senderliste am LIN Bus <!PW>rNr einen Eintrag hinzu.

Die Sendeliste kann ber ihren Namen (<!PW>Schedule als <!RW>String) oder ihren Index (<!PW>Schedule als <!RW>Real) in der Liste (1 &lt;= <!PW>Schedule &lt;= Anzahl Sendelisten) angegeben werden. Die Angabe einer nicht vorhandenen Sendeliste fhrt zu einem Fehler.

Der Frame kann ber seinen Namen (<!PW>Frame als <!RW>String) oder seinen Index (<!PW>Frame als <!RW>Real) in der Liste (1 &lt;= <!PW>Frame &lt;= Anzahl Frames) angegeben werden. Die Angabe eines nicht vorhandenen Frames fhrt zu einem Fehler.

 <!PW>rDelay gibt die Zeit [1..120000 ms] vom Senden dieses Frames bis zum Senden des nchsten Frames an. Systembedingt kann am PC diese Zeit nicht exakt eingehalten werden.
>>

<<
128.116.3.4.9
LIN.Schedule.Frame.Delete|Frame.Delete
--
<!DEF>
procedure <!TW>LIN.Schedule.Frame.Delete (rNr : real; .Schedule : real|string; rIndex : real);
<!TXT>
Entfernt einen Eintrag aus einer Senderliste am LIN Bus <!PW>rNr.

Die Sendeliste kann ber ihren Namen (<!PW>Schedule als <!RW>String) oder ihren Index (<!PW>Schedule als <!RW>Real) in der Liste (1 &lt;= <!PW>Schedule &lt;= Anzahl Sendelisten) angegeben werden. Die Angabe einer nicht vorhandenen Sendeliste fhrt zu einem Fehler.

Der Frame muss mit <!PW>rIndex (1..Anzahl der Eintrge in der Sendeliste) ber den Index innerhalb der Sendeliste (nicht der Frameliste!) ausgewhlt werden, da ein Frame mehrmals in der Sendeliste auftreten kann.
>>

<<
128.116.3.4.10
LIN.Schedule.Frame.Get|Frame.Get
--
<!DEF>
procedure <!TW>LIN.Schedule.Frame.Get (rNr : real; .Schedule : real|string; rIndex : real; var sFrame : string; var rDelay : real);
<!TXT>
Holt die Daten eines Eintrags der Senderliste am LIN Bus <!PW>rNr.

Die Sendeliste kann ber ihren Namen (<!PW>Schedule als <!RW>String) oder ihren Index (<!PW>Schedule als <!RW>Real) in der Liste (1 &lt;= <!PW>Schedule &lt;= Anzahl Sendelisten) angegeben werden. Die Angabe einer nicht vorhandenen Sendeliste fhrt zu einem Fehler.

Der Frame muss mit <!PW>rIndex (1..Anzahl der Eintrge in der Sendeliste) ber den Index innerhalb der Sendeliste (nicht der Frameliste!) ausgewhlt werden, da ein Frame mehrmals in der Sendeliste auftreten kann.

In <!PW>sFrame wird der Name des Frames, in <!PW>rDelay die Verzgerungszeit in [ms] zurckgegeben.
>>
<<
128.116.3.5
LIN Signale|Signal
--
Die Befehle der Gruppe <!RW>LIN.Signal dienen der Definition von LIN Signalen am LIN Bus.

Ein Signal ist eine Informationseinheit, hat einen Namen und kann mit einem Bitbereich eines Frames, sowie einer Signalkodierung verknpft werden.
ber das Signal kann dann auf die Bits eines Frames zugegriffen werdem, ohne, dass Bitoperationen ntig werden. Es wird nur der Wert des Signals gesetzt oder gelesen und das LIN System bearbeitet die Bits des Frames.
Ein Signal kann ein skalarer Wert (ein Integer-Wert) oder ein Array (Bytefeld) sein.
>>

<<
128.116.3.5.1
LIN.Signal.Count|Count
--
<!DEF>
function <!TW>LIN.Signal.Count (rNr : real) : real;
<!TXT>
Liefert die Anzahl definierter Signale fr den LIN Bus <!PW>rNr.
>>

<<
128.116.3.5.2
LIN.Signal.Exists|Exists
--
<!DEF>
function <!TW>LIN.Signal.Exists (rNr : real; sSignalName : string) : real;
<!TXT>
Liefert <!RW>TRUE, wenn fr den LIN Bus <!PW>rNr ein Signal mit dem Namen <!PW>sSignalName definiert ist.
>>

<<
128.116.3.5.3
LIN.Signal.GetTypeCode|GetTypeCode
--
<!DEF>
function <!TW>LIN.Signal.GetTypeCode (rNr : real; .Signal : real|string) : real;
<!TXT>
Liefert die Datenart (skalar oder Array) eines Signals auf dem LIN Bus <!PW>rNr.

Das Signal kann ber seinen Namen (<!PW>Signal als <!RW>String) oder seinen Index (<!PW>Signal als <!RW>Real) in der Liste (1 &lt;= <!PW>Signal &lt;= Anzahl Signale) angegeben werden. Die Angabe eines nicht vorhandenen Signals fhrt zu einem Fehler.

Rckgabewert:
<!STBL>
<!>1<!>Skalarer Wert<!>
<!>3<!>Array<!>
<!ETBL>
>>

<<
128.116.3.5.4
LIN.Signal.Data.Get|Data.Get
--
<!DEF>
function <!TW>LIN.Signal.Data.Get (rNr : real; .Signal : real|string; rNice : real) : real|string|vector;
<!TXT>
Liefert den Dateninhalt eines Signals auf dem LIN Bus <!PW>rNr.

Das Signal kann ber seinen Namen (<!PW>Signal als <!RW>String) oder seinen Index (<!PW>Signal als <!RW>Real) in der Liste (1 &lt;= <!PW>Signal &lt;= Anzahl Signale) angegeben werden. Die Angabe eines nicht vorhandenen Signals fhrt zu einem Fehler.

Der Datentyp des Rckgabewertes ist abhngig von <!PW>rNice und der Art des Signals.

Wenn <!PW>rNice <!RW>FALSE ist, liefert die Funktion abhngig von der Art des Signals (skalar oder Array) einen Realwert oder einen Vector zurck.
Wenn <!PW>rNice <!RW>TRUE ist, liefert die Funktion immer einen String zurck. Dieser String ist der Wert des Signals und (falls vorhanden) um die Dekodierung des Wertes ergnzt.

Rckgabewert:
<!STBL>
<!+>rNice<!+>Art des Signals<!+>Rckgabetyp<!+>Beispiel<!>
<tr><td rowspan=2 align=center><!RW>FALSE<!c><!RW>Skalar<!c><!RW>real<!>1<!>
                                         <!c><!RW>Array <!c><!RW>vector<!>[50, 52, 54, 56, 65]<br><font size=-2>Byte Vektor</font><!>
<tr><td rowspan=2 align=center><!RW>TRUE <!c><!RW>Skalar<!c><!RW>string<!>'1 - Night illumination on'<!>
                                         <!c><!RW>Array <!c><!RW>string<!>'[32 34 36 38 41] = '2468A''<br><font size=-2>Byte Vektor, hexadezimal kodiert und Dekodierung, hier ASCII</font><!>
<!ETBL>
>>

<<
128.116.3.5.5
LIN.Signal.Add|Add
--
<!DEF>
procedure <!TW>LIN.Signal.Add (rNr : real; sSignalName : string; rAsArray, rLength : real; vInitData : vector; .Sender : real|string);
<!TXT>
Erzeugt ein neues Signal in der LIN Definition des LIN Busses <!PW>rNr.

 <!PW>sSignalName legt den neuen Namen des Signals fest.
Wenn ein Signal mit diesem Namen bereits existiert, wird ein Fehler ausgelst.

Wenn <!PW>rAsArray <!RW>TRUE ist, enthlt das Sigbnal ein Bytearray, ansonsten einen skalaren Wert.

 <!PW>rLength ist die Lnge des Signals in Bit. Eralubt sind fr skalare Signale die Werte 1 bis 16 und fr Arrays die Werte 8, 16, 24, 32, 40, 48, 56 und 64.

 <!PW>vInitData ist der Initialisierungswert des Signals. Fr skalare Signale muss ein Vektor mit einem Element angegeben werden. Dieses eine Element muss im Wertebereich des Signals liegen: 0 ..  2<sup><!PW>rLength</sup>-1. Fr Arrays muss ein Byte-Vektor der Lnge <!PW>rLength / 8 angegeben werden.
Fr skalare Signale muss ein Vektor mit einem Element angegeben werden. Dieses eine Element muss im Wertebereich des Signals liegen: 0 ..  2<sup><!PW>rLength</sup>-1. 
Fr Arrays muss ein Byte-Vektor der Lnge <!PW>rLength / 8 angegeben werden.

 <!PW>Sender is the node transmitting this signal.
>>
<<
128.116.3.5.6
LIN.Signal.Delete|Delete
--
<!DEF>
procedure <!TW>LIN.Signal.Delete (rNr : real; .Signal : real|string);
<!TXT>
Entfernt ein Signal aus der LIN Definition des LIN Busses <!PW>rNr.

Das Signal kann ber seinen Namen (<!PW>Signal als <!RW>String) oder seinen Index (<!PW>Signal als <!RW>Real) in der Liste (1 &lt;= <!PW>Signal &lt;= Anzahl Signale) angegeben werden. Die Angabe eines nicht vorhandenen Signals fhrt zu einem Fehler.
>>
<<
128.116.3.5.7
LIN.Signal.Get|Get
--
<!DEF>
procedure <!TW>LIN.Signal.Get (rNr : real; .Signal : real|string; var sName : string; var rIsArray, rLength : real; var vInitData : vector; var sSenderName : string);
<!TXT>
Holt die Daten eines Signals aus der LIN Definition des LIN Busses <!PW>rNr.

Das Signal kann ber seinen Namen (<!PW>Signal als <!RW>String) oder seinen Index (<!PW>Signal als <!RW>Real) in der Liste (1 &lt;= <!PW>Signal &lt;= Anzahl Signale) angegeben werden. Die Angabe eines nicht vorhandenen Signals fhrt zu einem Fehler.

 <!PW>sName enthlt nach dem Aufruf den Namen des Signals (dies macht zwar bei Angabe des Signalnamens wenig Sinn, ist aber aufgrund der Befehlsstruktur ntig)

 <!PW>rIsArray ist nach dem Aufruf <!RW>TRUE, wenn das Signal ein Array darstellt.

 <!PW>rLength ist die Datengre des Signals in Bit.

 <!PW>vInitData enthlt die Initialisierungsdaten des Signals.

 <!PW>sSenderName enthlt den Namen des Knotens, der das Signal sendet.
>>

<<
128.116.3.5.8
LIN.Signal.Request|Request
--
<!DEF>
procedure <!TW>LIN.Signal.Request (rNr : real; .Signal : real|string);
<!TXT>
Lst einen Mastertask auf dem LIN Bus <!PW>rNr aus um ein Signal abzufragen.

Das Signal kann ber seinen Namen (<!PW>Signal als <!RW>String) oder seinen Index (<!PW>Signal als <!RW>Real) in der Liste (1 &lt;= <!PW>Signal &lt;= Anzahl Signale) angegeben werden. Die Angabe eines nicht vorhandenen Signals fhrt zu einem Fehler.

Der Mastertask wird auch dann ausgelst, wenn das Programm den Master-Knoten nicht simuliert.

Dies kann unter Umstnden zu ungltigen Situationen auf dem Bus fhren. Daher solte dieser Befehl nur benutzt werden, wenn das Programm den Masterknoten simuliert.
>>

<<
128.116.3.5.9
LIN.Signal.Data.Set|Data.Set
--
<!DEF>
procedure <!TW>LIN.Signal.Data.Set (rNr : real; .Signal : real|string; vData : vector);
<!TXT>
Setzt den Wert eines Signals auf dem LIN Bus <!PW>rNr.

Das Signal kann ber seinen Namen (<!PW>Signal als <!RW>String) oder seinen Index (<!PW>Signal als <!RW>Real) in der Liste (1 &lt;= <!PW>Signal &lt;= Anzahl Signale) angegeben werden. Die Angabe eines nicht vorhandenen Signals fhrt zu einem Fehler.

 <!PW>vData ist der Wert des Signals. 
Fr skalare Signale muss ein Vektor mit einem Element angegeben werden. Dieses eine Element muss im Wertebereich des Signals liegen: <b>0 ..  2<sup>Signallnge</sup>-1</b>. 
Fr Arrays muss ein Byte-Vektor der Lnge <b>Signallnge / 8</b> angegeben werden.

Wenn der Bus aktiv ist, wird der aktuelle Wert des Signals gendert. Wenn der Bus geschlossen ist, wird die Initialisierungswert des Signals gendert.
>>

<<
128.116.3.5.10
LIN.Signal.Valid|Valid
--
<!DEF>
function <!TW>LIN.Signal.Valid (rNr : real; .Signal : real|string) : real;
<!TXT>
Liefert <!RW>TRUE, wenn das Signal gltig ist, d.h. auf die letzte Abfrage per Mastertask ein Slaveknoten geantwortet hat.


Das Signal kann ber seinen Namen (<!PW>Signal als <!RW>String) oder seinen Index (<!PW>Signal als <!RW>Real) in der Liste (1 &lt;= <!PW>Signal &lt;= Anzahl Signale) angegeben werden. Die Angabe eines nicht vorhandenen Signals fhrt zu einem Fehler.
>>

<<
128.116.3.5.11
LIN.Signal.Option.Set|Option.Set
--
<!DEF>
procedure <!TW>LIN.Signal.Option.Set (rNr : real; .Signal : real|string; rOptionNr, rOptionValue : real);
<!TXT>
Setzt eine Option eines Signals auf dem LIN Bus <!PW>rNr.

Das Signal kann ber seinen Namen (<!PW>Signal als <!RW>String) oder seinen Index (<!PW>Signal als <!RW>Real) in der Liste (1 &lt;= <!PW>Signal &lt;= Anzahl Signale) angegeben werden. Die Angabe eines nicht vorhandenen Signals fhrt zu einem Fehler.

 <!PW>rOptionNr whlt die Option, die gesetzt werden soll
 <!PW>rOptionValue ist der zu setzende Wert der Option

<!STBL>
<!+>OptionNr<!+>Beschreibung der Option<!+>Wertebereich fr OptionVal<!>
<!c>1<!><b>AutoIncOnSend</b><br>Das Signal wird bei Aussendung automatisch um 1 erhht<!><!RW>TRUE : Option aktiv<br><!RW>FALSE : Option inaktiv (default)<!>
<!ETBL>
>>

<<
128.116.3.5.12
LIN.Signal.Option.Get|Option.Get
--
<!DEF>
procedure <!TW>LIN.Signal.Option.Set (rNr : real; .Signal : real|string; rOptionNr, rOptionValue : real);
<!TXT>
Liest den Zustand einer Option eines Signals auf dem LIN Bus <!PW>rNr.

Das Signal kann ber seinen Namen (<!PW>Signal als <!RW>String) oder seinen Index (<!PW>Signal als <!RW>Real) in der Liste (1 &lt;= <!PW>Signal &lt;= Anzahl Signale) angegeben werden. Die Angabe eines nicht vorhandenen Signals fhrt zu einem Fehler.

 <!PW>rOptionNr whlt die Option, die ausgelesen werden soll

<!STBL>
<!+>OptionNr<!+>Beschreibung der Option<!+>Bedeutung des Rckgabewertes<!>
<!c>1<!><b>AutoIncOnSend</b><br>Das Signal wird bei Aussendung automatisch um 1 erhht<!><!RW>TRUE : Option aktiv<br><!RW>FALSE : Option inaktiv (default)<!>
<!ETBL>
>>
