Нужно писать len := LEN(str$)- 1;
Операция $ описана в сообщении по языку. А -1 потому что индексация символов начинается с нуля, а не с 1, как в Дельфи.

А вообще, можно обойтись и без определения длины строки, бо все строки в КП оканчиваются 0X:
## Код:
```
PROCEDURE CheckBrackets* (IN str: ARRAY OF CHAR); 
     VAR i, j: INTEGER; 
   BEGIN 
     i := 0; j := 0;
     WHILE (i < LEN(str)) & (str[i] # 0X) DO
         IF str[i] = "(" THEN INC(j)
         ELSIF str[i] = ")" THEN DEC(j)
         END;
     END;
     Log.Bool(j > 0)
   END CheckBrackets;
```

Сравнение i < LEN(str) можно убрать, если у Вас гарантируется, что строка оканчивается нулём. Можно не выносить его в отдельную переменную, потому как взятие длины массива операция быстрая, в отличие от вычисления длины строки (тут я может и не прав, старшие товарищи поправят).
Вместо StdLog лучше применять модуль Log - не факт, что StdLog окажется в любой системе, в которой работает Ваша программа (в консоли его нет, например). Это общее правило в компонентной среде - использовать интерфейсные модули, а не модули реализации.