8.5.1 F-Channel driver
The F I/O data cyclically transferred between an F-Device and an F-Host (Real-time Channel)) needs to be controlled by a user program. A programmer is either expecting appropriate Function Blocks ("F-Channel driver") within her/his programmer's tool libraries that she/he is able to embed into the customer program. Or she/he is expecting access to discrete logically addressable input or output variables (for example for ladder logic).
Figure 61 is illustrating such a programmer's view on "F-Channel driver" function blocks.
<IOData>
<Input Consistency="All items consistency">
<DataItem DataType="Float32+Unsigned8" TextId="AI channel" />
<DataItem DataType="Unsigned8" UseAsBits="false" TextId="Status1" />
<DataItem DataType="Unsigned8" UseAsBits="false" TextId="Status2" />
<DataItem DataType="Unsigned8" UseAsBits="false" TextId="Status3" />
<DataItem DataType="F_MessageTrailer4Byte" TextId="Safety" />
</Input>
<Output Consistency="All items consistency">
<DataItem DataType="Float32+Unsigned8" UseAsBits="false"TextId="AO channel" />
<DataItem DataType="F_MessageTrailer4Byte" TextId="Safety" />
</Output>
</IOData>
VERSION 01
IN_ADDRESS_RANGE 12
COUNT_PS_INPUT_BYTES_COMPOSITE 05
COUNT_PS_INPUT_CHANNELS_BOOL 24
COUNT_PS_INPUT_BYTES_BOOL 03
COUNT_PS_INPUT_CHANNELS_INT 00
COUNT_PS_INPUT_CHANNELS_REAL 00
OUT_ADDRESS_RANGE 09
COUNT_PS_OUTPUT_BYTES_COMPOSITE 05
COUNT_PS_OUTPUT_CHANNELS_BOOL 00
COUNT_PS_OUTPUT_BYTES_BOOL 00
COUNT_PS_OUTPUT_CHANNELS_ INT 00
COUNT_PS_OUTPUT_CHANNELS_ REAL 00
DATA_STRUCTURE_CRC 0xF33
CP 3/4 to CP 3/6 controller F-Host
Parameter, cyclic data
F-Parameter (SIL, Time, etc.) GSD
F-Devicewith FSCP 3/1 and
specific device technology e.g. light curtain F-Channel driver
programUser
Light curtain
Data structures (Bool, Integer etc.) Data from
light curtain Data to
light curtain
GSDML
Figure 61 – F-Channel driver as "glue" between F-Device and user program 8.5.2 Rules for standard F-Channel drivers
General system support from all kinds of F-Host types can be achieved by following a set of rules for the design of the F data structures transmitted cyclically:
• The data structure shall be described in the IODataSection of the GSD file. See detailed description in 8.3.2.
• A composed data structure shall have the following order: First all mixed types of Float32 + Unsigned8 if available. Then all Unsigned8, Unsigned16, Unsigned32 variables if available. Then all Integer16 variables if available. Then all floating-point variables if available.
Table 11 contains a list of sample F-Channel drivers. The drivers are representing different F- Input and F-Output data structures according to the associated safety PDUs. The permitted data types for FSCP 3/1 are listed in 5.5.4. Thus, 32 Boolean values shall be mapped into data type Unsigned32 and 8 bit into the data type Unsigned8. See 8.4.2 for details.
Table 11 – Sample F-Channel drivers
F-Channel driver configurationa
F-Input (from device) F-Output (to device) Remarks
F_IN_OUT_1 32 Boolean, 32 Boolean, for example light
curtains
F_IN_OUT_2 16 Boolean, 1 Integer16 16 Boolean, 1 Integer16 for example laser scanners F_IN_OUT_5 1 Float32, Unsigned8 (8 bit
"Qualifier") for example pressure
transmitter F_IN_OUT_6 "Readback": 1 Float32, 8 bit
"Checkback": 24 bit
"Setpoint": 1 Float32, 8 bit for example pneumatic valve
a The numbering does not necessarily mean different drivers. It can be one driver parameterized via GSD information.
Constraints:
• unused bits shall be set to "0";
• status and fault indications of an F-Device shall be defined within the input data structure if necessary (for example qualifier).
8.5.3 Recommendations for F-Channel drivers
Figure 62 shows a layout example of an F channel host driver for a complex F-Device.
F_IN_OUT_x iPar_OK_S OA_Req_S FV_activated_S
Bit_1 Bit_0
Bit_2
Bit_16 Int_16
from F-Device Bit_15
OA_C F_IN_OUT_x iPar_EN_C
Bit_1 Bit_0
Bit_2
Bit_16 Int_16 to
F-Device
Bit_15 Technology
-FB
activate_FV_C
Figure 62 – Layout example of an F-Channel driver The terms used in Figure 62 and the driver behaviors are specified below:
iPar_EN_C iParametrization enabled iPar_OK_S iParametrization completed
OA_C Operator Acknowledgement (for resumption after fault )
OA_Req_S When fault (Watchdog, CRC, Cons. Nr.) detected and removed FV_activated_S Fail-safe values activated by F-Device
activate_FV_C Fail-safe values to be activated within F-Device Fixed behavior of
F channel driver
Fail-safe values set to "0"
In addition to the device specific data structures there are some more FSCP 3/1 signals that are available to the programmer. See 7.1.3 "Status and Control Byte" and 6.1 for detailed information on the above-mentioned signals.
For performance reasons the F-Channel driver may be split into two function blocks, one for inputs and one for outputs (Figure 62). There is a fixed behavior of the F channel drivers in respect to fail-safe values: whether the data structure consists of bit (Unsigned8), Integer16, Float32 or Float32 + Unsigned8, every value is set to "0". If actuators cannot agree to FV =
"0", other values may be implemented either hard-coded or via iParameters. User programs may activate these device specific fail-safe values via bit 4 within the Control Byte (see 7.1.3). If sensors cannot agree to FV = "0", additional user program logic may turn them into individual values using the "activate_ FV_C" input of the F-Channel driver.