Steuerungsaufgaben erfordern oftmals die Verwendung von Speicherfunktionen. Eine Speicherfunktion liegt dann vor, wenn ein kurzzeitig auftretender Signalzustand festgehalten (gespeichert) wird. Steuerungsprogramme mit Speicherfunktionen werden auch als Schaltwerke bezeichnet.
Bei den Grundoperationen hängt der Ausgangssignalwert nur von der augenblicklichen Kombination der Eingangswerte ab. Bei Speicherfunktionen ist der Signalzustand der Ausgangssignale abhängig vom Zustand des Speichergliedes. Unterschieden wird dann nur noch dadurch ob das Speicherglied als dominant aus (SR-Glied) oder dominant ein (RS-Glied) definiert ist.

Dominant aus: hat ein Speicherglied an beiden Eingängen (S und R) den Signalzustand 1 anliegen, so führt der Ausgang den Signalzustand 0 (rücksetzdominant).
Die meisten Programmerstellungswerkzeuge für SPS-Programmierungen bieten nach IEC 61131-3 Speicherbausteine als Standard-Bausteine an. SR-Glieder und RS-Glieder liegen also fertig vor und können bei der Programmierung angewählt und mit entsprechenden Eingangs- und Ausgangsvariablen programmiert werden.
Bei Step 7® werden Speicherbausteine durch eine Setz- und eine Rücksetzoperation mit dem selben Operanden in der AWL (Anweisungsliste) realisiert. Die beiden Operationen lassen sich auch im Funktionsplan (FUP) als Speicherbaustein darstellen (siehe oben). Für die Funktionsweise der Speicherfunktion ist es wichtig, in welcher Reihenfolge die Setz- und Rücksetzoperation programmiert wird. Wird zuerst die Setz- und dann die Rücksetzoperation programmiert, so entsteht eine Speicherfunktion mit vorrangigem Rücksetzen (rücksetzdominant). Im umgekehrten Fall entsteht eine Speicherfunktion mit vorrangigem Setzen (setzdominant).
Das Setzen sowie auch das Rücksetzen eines Operanden kann an verschiedenen Stellen im Steuerungsprogramm ausgeführt werden. Der Speicherbaustein zerfällt dann in die beiden Operationen Rücksetzen und Setzen. Dadurch geht zwar die Übersicht verloren, durch welche Bedingungen Operanden gesetzt bzw. rückgesetzt werden, aber es kann der Vorteil genutzt werden ein Verknüpfungsergebnis (VKE) für mehrere Setz- und Rücksetzoperationen zu nutzen. Somit können mehrere Setz- und Rücksetzfunktionen sowie Zuweisungen (z.B. Ausgänge, Merker) in beliebiger Kombination dasselbe Verknüpfungsergebnis VKE auswerten.
Die entsprechenden Operationen werden in der AWL (Anweisungsliste) mit den dazu gehörenden Operanden untereinander geschrieben. Solange Setz-, Rücksetz- und Zuweisungs-Operationen bearbeitet werden, ändert sich das Verknüpfungsergebnis nicht. Erst wieder mit der nächsten Abfrageanweisung wird ein neues Verknüpfungsergebnis durch die CPU gebildet.
Auch im Funktionsplan ist eine Darstellung von Mehrfachabfragen des Verknüpfungsergebnisses möglich. Dazu werden mehrere Boxen am Ende der Verknüpfung angeordnet. Das Zeichen in der Box bestimmt, ob der zugehörige Operand gesetzt oder rückgesetzt wird oder ob eine Zuweisung vorliegt.
Beispiel Anweisungsliste ( AWL )
| U | E | 0.0 |
| UN | E | 0.1 |
| S | A | 0.0 |
| R | A | 0.1 |
| S | A | 2.0 |
| = | M | 10.0 |
| = | A | 4.7 |

Beispiel eines Funktionsplanes ( FUP ):
In der Steuerungstechnik ist das Verriegeln von Speichern ein immer wiederkehrendes und gleichzeitig auch wichtiges Prinzip. Es lassen sich zwei Arten von Verriegelungen unterscheiden.
Beim gegenseitigen Verriegeln dürfen bestimmte Speicherfunktionen nicht gleichzeitig gesetzt sein. Ein gutes Beispiel hierfür wäre eine Wendeschützschaltung, hier dürfen der Linkslauf- und der Rechtslaufschütz niemals gleichzeitig angesteuert werden.
Bei der anderen Art der Verriegelung (Reihenfolgeverriegelung) darf ein Speicher nur gesetzt werden, wenn bereits einer oder mehrere Speicherfunktionen gesetzt sind. Hintereinander geschaltete Förderbänder sind hierfür ein gutes Beispiel.
Am Beispiel von zwei SR-Speicherfunktionen sollen die beiden Möglichkeiten der gegenseitigen Verriegelung gezeigt werden.Ist eines der beiden Speicherglieder gesetzt, kann das andere nicht mehr gesetzt werden. Für diese Verriegelung gibt es zwei Realisierungsmöglichkeiten.

Verriegeln über den Rücksetzeingang unter Beachtung der Rücksetzdominanz beider Speicherglieder:
Setzt man über einen Taster S1 den Ausgang A1, dann ist der Ausgang A2 aufgrund der Rücksetzdominanz der Speicherglieder nicht setzbar. Im umgekehrten Fall ist der Ausgang A1 nicht setzbar, da dann die Rücksetzdominanz über den gesetzten Ausgang A2 auf den Ausgang A1 wirkt.

Verriegelung über den Setz-Eingang:
Über die UND-Verknüpfung an den Setzeingängen der Speicherglieder wird der Setzbefehl nur dann wirksam, wenn der andere Speicher nicht gesetzt ist, also ein "0" - Signal hat.
Der Unterschied zwischen beiden Verriegelungsarten besteht darin, dass bei der Verriegelung über die Rücksetzeingänge ein bereits gesetzter Speicher durch eine Verriegelungsbedingung zurückgesetzt werden kann. Dieser Fall kommt bei Schrittkettenprogrammierung mit Hilfe von Speicherfunktionen sehr häufig vor. Der Folgeschritt setzt dabei stets den vorangegangenen Schritt zurück. Die Verriegelung über den Rücksetzeingang wird in den meisten Fällen bei Steuerungsprogrammen bevorzugt.
Reihenverriegelungen programmiert man dann, wenn Speicherfunktionen nur in einer ganz bestimmten festgelegten Reihenfolge gesetzt werden dürfen. Die folgenden Beispiele zeigen die beiden Möglichkeiten der Folgeverriegelungen von zwei SR-Speichergliedern. Damit eine Speicherfunktion gesetzt werden kann muß zuvor ein anderer Speicher gesetzt sein.

Verriegelung über den Setz-Eingang:
Am Setzeingang der SR-Speicherfunktion A2 wird über die UND-Verknüpfung der Setzbefehl nur dann wirksam, wenn die Speicherfunktion A1 "1"-Signal hat, also gesetzt ist.

Verriegelung über den Rücksetz-Eingang:
Die Verriegelung über den Rücksetz-Eingang hat den Nachteil, dass beim Rücksetzen der Speicherfunktion A1 auch die Speicherfunktion A2 zurückgesetzt wird. Deshalb werden Reihenfolgeverriegelungen in der Mehrzahl über den Setz-Eingang programmiert.