With the new SARC firmware extension in the FSoE master series SCU, we offer a convenient option for solving complex safety-related tasks such as those required for Safe Robotic or AGV safety functions.
SARC stands for Safe Arithmetic Calculation and comprises a wide ranging library for safe calculations in float data format. These range from simple operations, such as addition or multiplication/division, through trigonometric and root functions, to matrix calculations. Thus, a wide range of safety-related tasks, such as the continuous monitoring of a winding speed as a function of the winding diameter, scanner field switching for AGVs related to their kinematics and position of the steering axes, up to more complicated calculations, such as safe TCP/Joint position and speed determination of a robot in a Cartesian coordinate system can be implemented. For the latter, matrix calculations for simple implementation of DH transformations as well as additional spatial monitoring functions have also been specifically included in the range of functions. In addition to the calculation functions, the SARC functions include conversion modules for converting position and velocity from integer to float format and vice versa. The result data are thus available as position and velocity of virtual axes for application to the safe drive monitoring functions integrated in the basic scope of the SCU series. For this purpose, input values (safe position / velocity, configurable constants, etc.) are converted into a "single precision float" value and normalized so that they can be further used for SARC.
For the further calculation, a multitude of mathematical functions, in the form of building blocks, are available, which can be individually linked with each other. These links ultimately result in an instruction list of the kinematic calculation, which is loaded and executed on the safety control.
The programming of the calculation is realized in the FBD format of the BBH engineering tool SafePLC². This tool allows among other things also the summary of a programmed logic or also SARC calculation to objects with defined interface for input and output data. An application object created in this way can be instantiated and also made available to other applications via a library function, thus generating its own knowledge base.
- certified for use in safety-related tasks up to SIL3/EN61508 or Pl e/EN13849-1.
- SARC function library is integrated in the BBH SCU/FSoE master series and is activated via an additional license key for which a charge is made.
Examples for application areas
List of SARC calculation functions
The SARC functionality provides the possibility to do safe kinematic calculations with provided input values. The input values can be either encoder readings, like a measured position or velocity, or defined constant values. For the kinematic calculations, a variation of possible function blocks is available. Currently, the following blocks can be used for calculations:
Defines a constant
|scientific = a.b*10c > single precision floating point = r|
|Conversion of input data to "single precision floating point|
a > single precision floating point = r D > single precision floating point = d a * d = r
|Conversion of the "single precision floating point" value to output data||a * D > integer32 Check length according to parameter L|
|Addition / subtraction of 2 ... 8 input values|
a1 + a2 = r
a1 – a2 = r
|Multiplication of two values|
a1*a2 = r
|Division of two values|
a1/a2 = r
|Square root of the input value|
SQRT(a) = r
|Absolute value of the input value|
ABS(a) = r
|SIN value of the input value (rad)|
SIN(a) = r
|ARC SIN value of the input value (rad)|
ARC SIN(a) = r
|COS value of the input value (rad)|
COS(a) = r
|ARC COS value of the input value (rad)|
ARC COS(a) = r
|TAN value of the input value (rad)|
TAN(a) = r
|ARC TAN value of the input value (rad)|
ARC TAN(a) = r
|Virtual axis||Saving calculation results in "virtual" axes|
Virtual axescan be used as standard axes