Senden von Signalen

Grundsätzlich wird zwischen Signalen ohne Empfängerangabe (s.g. Broadcast-Signalen) und Standardsignalen, bei denen explizit ein Kanal als Empfänger angegeben ist, unterschieden.

Die Signale sind durch eine eindeutige Nummer identifiziert, wobei das Senden von Signalen mit gleichen Signalnummern erlaubt ist.

Bei Standardsignalen sind explizit ein oder mehrere NC-Kanäle als Empfänger anzugeben. Werden bei einem Signal mehrere Empfänger angegeben, so wirkt dies wie das mehrfache Senden der gleichen Signale an die einzelnen Kanäle.

Beispiel

example

Senden von Signalen

#SIGNAL [ID4711 CH1 CH2 CH3]

wirkt wie

#SIGNAL [ID4711 CH1]

#SIGNAL [ID4711 CH2]

#SIGNAL [ID4711 CH3]

Diese Signale sind nur für ein WAIT des adressierten Empfängers gültig und werden ohne Angabe des Verbrauchszählers (COUNT) bei einem WAIT des Empfängerkanals verbraucht. Wird ein Verbrauchszähler angegeben, so kann die Gültigkeitsdauer entsprechend erhöht werden.

Im Unterschied dazu können Broadcast-Signale durch ein WAIT eines beliebigen Kanals empfangen werden.

Wird bei Broadcast-Signalen kein Verbrauchszähler (COUNT) angegeben, so werden diese durch ein WAIT nicht verbraucht. D.h. sie bleiben bis zum expliziten Löschen (s. #SIGNAL REMOVE) bestehen. Wird ein Verbrauchszähler angegeben, so sind, wie bei Standardsignalen, genausoviele WAIT-Anforderungen bis zum Verbrauchen des Signals möglich.

#SIGNAL [<Modus>] [ ID<sgn_nr> [COUNT<expr>] { P[<idx>]=<param>} {CH<chan_nr>} ] (non-

                                                                                                                                                     modal)

<Modus>

Synchronisationsart. Zulässige Kennungen:

 

---

Synchronisation auf Decoder-Ebene (Grundeinstellung).
Diese Synchronisation ist z.B. erforderlich, wenn auf Parameter oder Variablen synchronisiert werden soll.

SYN

Synchronisation auf Interpolator-Ebene.
Diese Synchronisation ist bei Echtzeitanforderungen notwendig, z.B. Synchronisation zweier Bearbeitungseinheiten einer Mehrständermaschine

ID<sgn_nr>

Signalnummer, muss systemweit eindeutig sein. Positive Ganzzahl.

COUNT<expr>

Verbrauchszähler, definiert wie oft ein Signal mit #WAIT abgerufen werden kann. Positive Ganzzahl.

P[<idx>] = <param>

Signalparameter. Die Realwerte <param> werden entsprechend dem angegebenen Index ins Parameterarray des Signals eingetragen.

 

<idx>

Bereich für die maximal mögliche Parameteranzahl:

CH<chan_nr>

Nummer des Kanals, für den das Signal bestimmt ist.
1...max. Anzahl Kanäle (2)

Wird keine Kanalnummer angegeben, so wird ein Broadcast-Signal an alle verfügbaren Signalempfänger des Systems gesendet.

(1) siehe [6]-6.45, (2) siehe [6]-2.4

Programmierbeispiel

prg_example

Senden von Signalen

(Signal 812, Synchronisation auf DEC-Ebene, Broadcast)

N500 #SIGNAL [ID812]

(Signal 4711, Synchronisation auf DEC-Ebene, an Kanal 2)

N100 #SIGNAL [ ID4711 CH2 ]

(Signal 4711, Synchronisation auf DEC-Ebene,
fuer 10 #WAIT-Abfragen, Broadcast)

N100 #SIGNAL [ ID4711 COUNT10 ]

(Signal 815, Synchronisation auf Interpolator-Ebene,
zweimal an Kanal 2 und einmal an 3)

N200 #SIGNAL SYN [ ID815 CH2 CH2 CH3 ]

(Signal 911, Synchronisation auf Decoder-Ebene, an Kanal 3)

(1.Signalparameter V.A.MEAS.ACS.VALUE.X, 2.Signalparameter P200,
3.Signalparameter 94.4)

N260 P200 = 924

N300 #SIGNAL [ IDP100 CH3 P[0]=V.A.MEAS.ACS.VALUE.X P[1]=P200 P[2]=94.4 ]