3.4 TSB-File : Erstellen einer Sendesequenz


 

Eine Sequenz beschreibt einen einfachen Programmablauf und kann bis zu 200 Anweisungen ( Zeile 0 ...199 ) aufnehmen. Es können mehrere Telegramme aus verschiedenen TDB-Puffern zu einer Sendefolge zusammengefügt werden. Zur Steuerung der Sendefolge steht ein kleiner Befehlssatz zur Verfügung.

Der Anwender kann unterschiedliche Sequenzen in verschiedenen TSB-Dateien speichern und bei Bedarf wieder verwenden.

Um eine dieser Dateien bei der Simulation nutzen zu können, muss sie in der Prozesskonfiguration angegeben werden.
( vgl. Abschnitt <Konfiguration> )

 


Symbolleiste Sequenzliste

 

 

Sequenzliste speichern Speichert die Änderungen in die Datei.
Sequenzliste speichern unter Speichert die Sequenzliste unter neuem Namen.
Zeile(n) ausschneiden Schneidet die markierten Zeilen aus und verschiebt sie in die Zwischenablage.
Zeile(n) kopieren Kopiert die markierten Zeilen in die Zwischenablage.
Zeile(n) einfügen Fügt die Zeile(n) aus der Zwischenablage an der markierten Zeile in die Sequenzliste ein.
Rückgängig machen Macht das letzte Ausschneiden rückgängig.
Suchen Sucht den angegebenen Text. ( Hier nicht verwendet ! )
Ersetzen Ersetzt einen bestimmten Text durch einen anderen. ( Hier nicht verwendet ! )
Alles markieren Markiert das gesamte Dokument. ( Hier nicht verwendet ! )
Drucken Druckt das aktive Dokument. ( Hier nicht verwendet ! )

 


Befehlssatz

 

code

par 1

par 2

 

1, 2 ...8, 9, 0

nnn

mmm

Sende TDB Puffer von/ bis auf Kanal x

Der Code [1 ...9, 0] gibt an, über welchen Kanal ( 0 entspricht Kanal 10 ) das oder die Telegramme gesendet werden sollen. Das Feld [par 1] enthält die Nummer des Sendepuffers, der das zu sendende Telegramm enthält. Ist ein Parameter [par 2] angegeben, werden alle TDB Puffer von 'nnn' bis 'mmm' übertragen.

C

nnnn

 

counter load

Internen Schleifenzähler mit dem Wert 'nnnn' laden.

L

zzz

 

loop, jump zu Zeile zzz

Dekrementiert den internen Schleifenzähler und springt zur Zeile 'zzz'.

D

nnnn

 

delay

Verzögerung des Programmablaufs ( nnnn = 1 entspricht 100 ms ).

G

zzz

 

go to Zeile zzz

Unbedingter Sprung zur Zeile 'zzz'.

S

zzz

 

call subroutine auf Zeile zzz

Sprungbefehl zu einem Unterprogramm, das in der Zeile 'zzz' beginnt.
Aus einem Unterprogramm kann man weitere Unterprogramme, bis zu einer Schachtelungstiefe von 8, aufrufen.

R

 

 

return

Springt aus der Subroutine zum Hauptprogramm zurück.

E

 

 

end program

Schliesst die Sendefolge ab.

 


Beispiel einer Sendesequenz

 

 

Nachfolgend sehen Sie eine exemplarisch aufgebaute Sendefolge, wobei jede Zeile mit einem Kommentar versehen ist :

 

Zeile

code

par 1

par 2

Beschreibung

000

1

46

 

send

Hier wird der Sendepuffer 46 auf Kanal 1 gesendet.

001

D

50

 

delay

Die Ausführung der Folge wird für 50 x 100 ms unterbrochen.

002

2

3

4

send

Hier wird der Sendepuffer 3 bis 4 auf Kanal 2 gesendet.

003

C

5

 

counter

Der Schleifenzähler wird mit dem Wert 5 geladen. Eine Schleife besteht aus dieser Zuweisung, einer Reihe von Befehlen und dem anschliessenden Wiederholen dieser Reihe von der Zeile an, in der der Befehl 'L' für 'loop' steht (siehe unten in Zeile 007). Diesem Zähler darf in einer Sequenz nur einmal ein Wert zugewiesen werden, da jede weitere Zuweisung diesen Wert überschreibt.

004

1

47

 

send

Hier wird der Sendepuffer 47 auf Kanal 1 gesendet.

005

2

8

 

send

Hier wird der Sendepuffer 8 auf Kanal 2 gesendet.

006

D

20

 

delay

Die Ausführung der Folge wird für 20 x 100 ms unterbrochen.

007

L

004

 

loop

Dieser Befehl ähnelt dem goto-Befehl 'G'; die Sendefolge wird in der angegebenen Zeile ( hier Zeile 3 ) fortgesetzt. Im Unterschied zur goto-Anweisung wird der Schleifenzähler 'G' ( siehe oben ) bei jedem Aufruf des loop-Befehls um eins reduziert, die so entstehende Schleife wird dann sooft durchlaufen, bis 'C' den Wert 0 erreicht hat.

008

D

10

 

delay

Die Ausführung der Folge wird für 10 x 100 ms unterbrochen

009

1

45

 

send

Hier wird der Sendepuffer 45 auf Kanal 1 gesendet.

010

D

50

 

delay

Die Ausführung der Folge wird für 50 x 100 ms unterbrochen

011

2

1

 

send

Hier wird der Sendepuffer 1 auf Kanal 2 gesendet.

012

S

020

 

subroutine

Dieser Befehl veranlasst das Programm die Sendefolge in der Zeile 20 fortzusetzen. Die dort definierte Sequenz wird bis zum Auftauchen des Befehls 'R' ( return ) abgearbeitet. Anschliessend wird die Sendefolge in der nächsten Zeile nach dem 'S'-Befehl fortgesetzt. Diese sogenannten Subroutinen eigenen sich vor allem dazu, komplexere Sendefolgen übersichtlich zu gestalten.

013

D

100

 

delay

Die Ausführung der Folge wird für 100 x 100 ms unterbrochen.

014

G

000

 

goto

Dieser Befehl führt einen unbedingten Sprung zur angegebenen Zeile ( 000 ) durch. Er eignet sich z.B. dazu, bestimmte Einzelsequenzen der Folge kurzfristig auszuklammern.

015

E

 

 

end

Dieser Befehl markiert das Ende der Sendefolge.

...

...

...

...

Beginn der SubRoutine ( Unterprogramm )

020

2

10

 

send

Hier wird der Sendepuffer 10 auf Kanal 2 gesendet.

021

2

12

 

send

Hier wird der Sendepuffer 12 auf Kanal 2 gesendet.

022

2

14

 

send

Hier wird der Sendepuffer 14 auf Kanal 2 gesendet.

023

R

 

 

return

Springt zur Zeile nach dem aufrufenden 'S' Befehl zurück.

 

Im Kanalfenster ( Kanal 1 ...12 ) wird die Sendesequenzliste über das Symbol gestartet bzw. beendet.
( vgl. Abschnitt <Kanal 1 ...12> )

 


Jede Änderungen in der Sendeliste wird durch einen Stern * in der Titelleiste angezeigt und ist erst nach dem Speichern wirksam.

 


MAYR Software

Wuerzburger Ring 39,  D 91056 Erlangen

Handbuch LIAN 98


LIAN 98 Protocol Router, Simulator and Analyzer
© Copyright 2001, 2006, 2011 by Werner Mayr. All Rights reserved.