Вопрос решил написанием пары функций. Решил выложить сюда вдруг кому пригодиться :-)

Для начала написал конвертор из байта в символ
Код:
FUNCTION fncWord2String : STRING(1) // Из байта получаем символ.
VAR_INPUT
	wdInPut: WORD:=0;	
END_VAR
VAR
    pByte   : POINTER TO BYTE;
	bByte	: BYTE:=0;
END_VAR


// Через указатели сконвертим word в STRING(1)

// Сначала получим из ворда байт
bByte:=TO_BYTE(wdInPut);

// Запомним адрес этого байта
pByte := ADR(bByte);

// Область памяти со значением байта переложим в STRING(1)
// и отправим на верх. 
fncWord2String[0]:=pByte^;
Дальше сама функция перевода строки WSTRING в STRING.

Код:
FUNCTION UNICODE_TO_CP1251_1 : STRING // Строку WSTRING конвертим в STRING.
VAR_INPUT
    wsIn : WSTRING(255);
END_VAR
VAR
    iCounter       : WORD;
    wdlen     : WORD;
    w_Char   : WORD;
    wsBuff	: STRING(254):='';
END_VAR


// Таблица символов 1251. Символ и его соответствующий код. 
// https://ru.wikipedia.org/wiki/Windows-1251

// Введем ограничение на длину сообщения
wdlen := MIN(255, INT_TO_WORD(Standard64.WLEN(wsIn)));

FOR iCounter := 0 TO wdlen - 1 DO
    w_Char := TO_WORD(wsIn[iCounter]);

    (* ASCII диапазон 0x00–0x7F -> копируем как есть *)
    IF w_Char <= 16#7F THEN
		wsBuff:=Standard.CONCAT(wsBuff, fncWord2String(wdInPut:=w_Char));

    (* Кириллица и спецсимволы CP1251: 0400–04FF и некоторые спецсимволы *)
    ELSIF (w_Char >= 16#0400) AND (w_Char <= 16#04FF) THEN
        (* Таблица маппинга UCS-2 -> CP1251 для кириллицы *)
        CASE w_Char OF
            16#0410..16#042F: (* А–Я *)
				wsBuff:=Standard.CONCAT(wsBuff, fncWord2String(wdInPut:=w_Char - 848));
            16#0430..16#044F: (* а–я *)
				wsBuff:=Standard.CONCAT(wsBuff, fncWord2String(wdInPut:=w_Char - 848));
            16#0401: (* Ё *)
				wsBuff:=Standard.CONCAT(wsBuff, 'Ё');
            16#0451: (* ё *)
				wsBuff:=Standard.CONCAT(wsBuff, 'ё');
        ELSE
            (* Нестандартные/редкие символы кириллицы -> пропускаем или заменяем *)
			wsBuff:=Standard.CONCAT(wsBuff, '?');
        END_CASE;
    ELSE
        (* Символы вне CP1251 — пропускаем либо заменяем на '?' *)
		wsBuff:=Standard.CONCAT(wsBuff, '?');
    END_IF;
END_FOR;

(* Передадим на верх полученную строку.*)
UNICODE_TO_CP1251_1 := wsBuff;
Понимаю что тут нет двойных ковычек, неразрывных пробелов, переносов строк и т.д. Для меня это не критично, но если кто дополнит/упростит буду ОЧЕНЬ признателен.