SF_DPRAM_PM5XX_S_RECPermalink

This is the web edition of the original ‎⮫ AC500-S safety user manual, version 1.3.2. This web edition is provided for quick reference only. The original safety user manual must be used to meet functional safety application requirements.

04.06.072_SF_DPRAM_PM5XX_S_REC

Reading the data from non-safety CPU to safety application on safety CPU

DANGER

DANGER
DANGER
DANGER

DANGER

DANGER

It is not recommended to transfer data values from non-safety CPU to safety CPU. But if doing so, end-users have to define additional process-specific validation procedures in the safety program to check the correctness of the transferred non-safety data, if they would like to use those non-safety values for safety functions.

It is of no concern to transfer data values from safety CPU to non-safety CPU, e.g., for diagnosis and later visualization on operator panels.

DANGER

DANGER
DANGER
DANGER

DANGER

DANGER

If SF_DPRAM_PM5XX_S_REC function block is used to receive data from the non-safety CPU, then SIL 3 (IEC 61508 and IEC 62061) and PL e (ISO 13849-1) functional safety requirements will not be fulfilled for received data (independently on application safety communication profile used), because only one microprocessor (no 1oo2 safety architecture in the background) on safety CPU handles the receiving direction.

Contact ABB technical support on how to reach SIL 3 and PL e.

The SF_DPRAM_PM5XX_S_REC function block is used to receive data from the non-safety CPU. This data is stored in the memory area (DATA, memory address for received data, provided via ADR operator). The function block is enabled by a TRUE signal at input EN. It remains active until input EN is set to FALSE. Output DATA_LEN displays the length of the received data in bytes. DONE = TRUE and ERR = FALSE indicate successful data reception. If an error was detected during function block processing, the error is indicated at the outputs ERR and ERNO.

NOTICE

NOTICE
NOTICE
NOTICE

NOTICE

NOTICE

Reception using the SF_DPRAM_SM5XX_S_REC function block is not edge-triggered. Therefore, input EN has to be continuously set to TRUE during data reception.

Table 1150: FB name: SF_DPRAM_PM5XX_S_REC

Name

Data type

Initial value

Description, parameter values

VAR_INPUT

EN

BOOL

FALSE

Processing of this function block is controlled by input EN. The function block is active if EN = TRUE. The reception of data is indicated by output DONE.

DATA

DWORD

16#00000000

Input DATA is used to specify the address of the variable to which the user data is to be copied to. The address specified at DATA has to belong to a variable of the type ARRAY or STRUCT.

Set the variable size to the maximum expected amount of data in order to avoid overlapping of memory areas.

VAR_OUTPUT

DONE

BOOL

FALSE

Output DONE indicates the reception of data. This output always has to be considered together with output ERR.

The following applies:

  • DONE = TRUE and ERR = FALSE: Reception completed. A data set was received correctly.

  • DONE = TRUE and ERR = TRUE: An error occurred during reception. The error number is indicated at output ERNO.

ERR

BOOL

FALSE

Output ERR indicates whether an error occurred during reception. This output always has to be considered together with output DONE. The following applies if an error occurred during reception: DONE = TRUE and ERR = TRUE. Output ERNO indicates the error number.

ERNO

WORD

16#0000

Error number⮫ [3].

Output ERNO provides an error identifier if an invalid value has been applied to an input or if an error occurred during job processing. ERNO always has to be considered together with the outputs DONE and ERR. The output value at ERNO is only valid if DONE = TRUE and ERR = TRUE.

DATA_LEN

DWORD

16#00000000

Output DATA_LEN displays the length of the received data in bytes (the maximum number is 84). The output value at DATA_LEN is only valid if DONE = TRUE.

Call in ST

PM5xxRec (EN := PM5xxRec_EN,
DATA := ADR(PM5xxRec_DATA),
DONE => PM5xxRec_DONE,
ERR => PM5xxRec_ERR,
ERNO => PM5xxRec_ERNO,
DATA_LEN => PM5xxRec_DATA_LEN);