Danke sehr!
Diese Erkenntnis wird mich sicher vor weiteren Fehlern schützen.
Danke noch mal!
Das funktioniert:
Noch weitere Erkenntnis ist, dass MD5_STR erst mit RUN:=FALSE aufgerufen werden soll. Sonst wird der gleiche Hash-Code für alle Eingaben zurückgeliefert.
			Diese Erkenntnis wird mich sicher vor weiteren Fehlern schützen.
Danke noch mal!
Das funktioniert:
Code Auswählen 
IF (bPerform) THEN
	CASE iStep OF
	0:
		bDone := FALSE;
		fbMD5_STR(RUN := FALSE,
			STR := sInputString,
			MD5 := abMD5Hash,
			DONE => bDone);
		sMD5Hash := '';
		IF (bDone) THEN
			bDone := FALSE;
			iStep := iStep + 10;
		END_IF
	10:
		fbMD5_STR(RUN := TRUE,
			STR := sInputString,
			MD5 := abMD5Hash,
			DONE => bDone);
		IF (bDone) THEN
			iStep := iStep + 10;
		END_IF
	20:
		sMD5Hash := MD5_TO_STRH(abMD5Hash);
		iStep := iStep + 10;
	30:
		bPerform := FALSE;
		iStep := 0;
	END_CASE
END_IF
Noch weitere Erkenntnis ist, dass MD5_STR erst mit RUN:=FALSE aufgerufen werden soll. Sonst wird der gleiche Hash-Code für alle Eingaben zurückgeliefert.