Sending signals

Basically, a distinction between two signals with no receive specified (called broadcast signals) and non-broadcast signals where a channel is explicitly specified as the receiver.

The signals are identified by a unique number, although it is permitted to send signals with identical signal numbers.

In the case of non-broadcast signals, one or more NC channels are explicitly specified as receivers. If several receivers are specified for one signal, this acts in the same way as the multiple transmission of the same signals to single channels.

Example

example

Sending signals

#SIGNAL [ID4711 CH1 CH2 CH3]

acts in the same way as

#SIGNAL [ID4711 CH1]

#SIGNAL [ID4711 CH2]

#SIGNAL [ID4711 CH3]

These signals are only valid for a WAIT of the addressed receiver and are used up if the consumption counter (COUNT) is not specified for a WAIT of the receiver channel. If a consumption counter is specified, the period of validity can be prolonged accordingly.

As opposed to this situation, broadcast signals can be received by a WAIT of any channel.

If no consumption counter (COUNT) is specified for broadcast signals, they are not used up by a WAIT. This means that they remain until they are explicitly cleared (see #SIGNAL REMOVE). If a consumption counter is specified, the same number of WAIT requests are possible until the signal is used up as is the case with non-broadcast signals.

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

<Mode>

Synchronisation mode. Permitted identifiers:

 

---

Synchronisation at decoding level (initial state)
For example, this synchronisation is required if it is necessary to synchronise to parameters or variables.

SYN

Synchronisation at interpolator level.
This synchronisation is required in the case of real-time requests, e.g. synchronisation of two machining units of a multi-column machine

ID<sgn_nr>

Signal number; must be unique system-wide. Positive integer.

COUNT<expr>

Consumption counter; defines how frequently a signal can be retrieved with #WAIT. Positive integer.

P[<idx>] = <param>

Signal parameter. The real values <param> are entered in the parameter array of the signal according to the specified index.

 

<idx>

Range for maximum possible number of parameters:

CH<chan_nr>

Number of the channel for which the signal is destined.
1...max. number of channels (2)

If no channel number is specified, a broadcast signal is sent to all available signal receivers in the system.

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

Programing Example

prg_example

Sending signals

(Signal 812, synchronisation at DEC level, broadcast)

N500 #SIGNAL [ID812]

(Signal 4711, synchronisation at DEC level, to channel 2)

N100 #SIGNAL [ ID4711 CH2 ]

(Signal 4711, synchronisation at DEC level,
for 10 #WAIT requests, broadcast)

N100 #SIGNAL [ ID4711 COUNT10 ]

(Signal 815, synchronisation at IPO level,
twice to channel 2 and once to 3)

N200 #SIGNAL SYN [ ID815 CH2 CH2 CH3 ]

(Signal 911, synchronisation at DEC level, to channel 3)

(1st signal parameter V.A.MEAS.ACS.VALUE.X, 2nd signal parameter P200,
3rd signal parameter 94.4)

N260 P200 = 924

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