펑션블럭은 알고리즘과 유저 로직 한 부분의 데이터 선언을 모두 정의합니다. 이 정의로 인해 로직은 클래스로 고려될 수 있습니다. 펑션블럭 자체는 호출되지 않지만 이 펑션블록의 몇몇 인스턴스가 생성되어 별도로 사용될 수 있습니다. 각 인스턴스는 데이터 선언 메모리의 비공개 사본을 소유하고 펑션블록의 기능 실행을 위한 필수 데이터 정보를 제공합니다.
펑션블럭 인스턴스의 비공개 데이터 선언 메모리는 이 인스턴스의 한 호출에서 다음 호출로 유지됩니다. 이 내부 메모리를 사용하면 펑션블럭을 통해 증분 기능을 구현할 수 있습니다.
그 결과, 입력 변수가 동일한 한 펑션블록 인스턴스의 여러 호출은 반드시 같은 결과를 제공하지 않습니다.
펑션과 대비하여 펑션블록은 출력 변수 하나뿐만 아니라 펑션블록 결과를 나타내는 출력 변수 조합 정의를 허용합니다.
펑션블록의 인스턴스는 POU 하나 내에서 사용하기 위해 로컬에서 선언될 수 있습니다. POU 내 펑션블록 인스턴스를 선언하면 동시에 이 인스턴스의 범위도 정의됩니다.