Definition:
Full Variability Language (FVL) is an IEC 61508 and IEC 61511 programming category that includes languages that offer maximum freedom in control logic but introduces more risks related to systematic errors. Think of the standard PLC programming process. There is a vast array of tools, add-ons, and features that can be arranged.

A component or process using FVL must then proceed via IEC 61508-3, which is very extensive. Because of this, FVL is essentially not used in a logic solver of any SIS, even the largest ones. Using a limited variability language (LVL) is the preferred route for most facilities or even an FPL for the simplest.
So who actually uses an FVL? It is the device designers. Such as Siemens when they program their safety software that facilities actually use. Or the smart instrument manufacturers who program the smarts in their transmitter. FVL typically uses the programming languages structured text (ST), instruction list (IL), and higher level languages like C and Pascal. But there can be variants.
Key Points:
- Requires stringent verification and validation methods via IEC 61508
- Is not used by any typical SIS logic solver. Lives in the vendor’s embedded firmware inside those devices — not the program you build on the safety PLC, which is LVL
- Programming language choice can vary just like in LVL.
Example:
A facility has 300+ SIFs which was being expanded. Due to the complexity of some of the SIFs, it was discussed that the existing safety function blocks in their safety PLC/DCS software were not sufficient for what they wanted to control and they considered going to an FVL. However, a consultant was brought in and they pointed out the SRS is simply asking too much. Make the system simpler. Thus they decided to use an LVL via a typical safety PLC as most SIS do.
See Also: FPL, LVL, application program
Cited Source:
- IEC 61511-1:2016, Clause 3.2.75.3
- Excellent article on LinkedIn – Cornerstone of Successful Automation