Beispiel eines Funktionsblockes nach IEC 61499
Der Voter hat zwei Ereigniseingänge: Reset und Vote. Der Reset Eingang setzt die internen Variablen zurück und signalisiert mit dem Ereignis Ready, dass der Block für die Verarbeitung bereit ist.
Das Ereignis Vote wird erst erscheinen, wenn die drei Binären Eingänge A,B und C belegt sind. Der Voter gibt das Resultat auf die Variable State und kennzeichnet dieses Ereignis mit dem Ausgang Voted.

Der Funktionsblock Voter
Die graphische Darstellung von diesem Beispiel findet sich in der vorangehenden Abbildung. Die textuelle Beschreibung dieses Funktionsblockes könnte so aussehen:
FUNCTION_BLOCK VOTER
EVENT_INPUT
Reset;
Vote WITH A, B, C;
END_EVENT
EVENT_OUTPUT
Ready;
Voted WITH State;
END_EVENT
VAR_INPUT
A : BOOL;
B : BOOL;
C : BOOL;
END_VAR
VAR_OUTPUT
State : BOOL;
END_VAR
EC_STATES
Ready : ResetAlg -> Ready;
Voted : VoteAlg -> Voted;
END_STATES
EC_TRANSITIONS
Ready TO Voted := Vote;
Voted TO Voted := Vote;
Voted TO Ready := Reset;
END_TRANSITIONS
ALGORITHM ResetAlg IN ST;
State := 0;
END_ALGORITHM
ALGORITHM VoteAlg IN ST;
IF State = 0 THEN
State := (A AND B) OR (B AND C ) OR (B AND C);
END_IF;
END_ALGORITHM
END_FUNCTION_BLOCK
Funktionsblöcke können auch aus anderen Funktionsblöcken zusammengesetzt sein. Dann ist die Beschreibung der Schnittstellen identisch, aber die Beschreibung der Zustände und Algorithmen wird durch eine Liste der Funktionsblöcke und der Verbindungen zusammengesetzt.
Der Funktionsblock oder der zusammengesetzte Funktionsblock ist die kleinste Einheit, die einer Ressource zugeordnet werden kann. Aus Funktionsblöcken werden dann Sub-Anwendungen und Anwendungen zusammengesetzt, die über mehrere Ressourcen in einem Gerät oder über mehrere Ressourcen verteilt über mehrere Geräte verteilt werden können.