In industrial automation, we often deal with messy incoming data strings. Whether you are parsing a CSV line from a barcode reader, handling commands from a serial port (RS232/RS485), or extracting parameters from an MQTT message, you will eventually need to split a string .
// Reset trigger IF NOT xExecute THEN xDone := FALSE; xError := FALSE; END_IF codesys split string
xDone := TRUE; END_IF
Extract the temperature from "TEMP:23.5 C" . In industrial automation, we often deal with messy
WHILE iCurrentPart <= 10 AND iStart <= LEN(sWork) DO iPos := FIND(sWork, sDelimiter, iStart); IF iPos > 0 THEN // Extract substring aParts[iCurrentPart] := MID(sWork, iPos - iStart, iStart); iStart := iPos + iDelimLen; iCurrentPart := iCurrentPart + 1; ELSE // Last part aParts[iCurrentPart] := MID(sWork, LEN(sWork) - iStart + 1, iStart); iPartCount := iCurrentPart; EXIT; END_IF END_WHILE WHILE iCurrentPart <= 10 AND iStart <= LEN(sWork)