Добрый день,
В программе на ST написанной для ПЛК 150, булевская переменная принимает странное значение и показывает ошибку для переменной xInit. Саму программу в которой это было обнаружено я упростил, убрал все лишнее, чтобы продемонстрировать ошибку. Если написать программу четко, как на скрине, то будет ошибка.
Ошибка возникает только если iCount:=6 и массив aBuffer: ARRAY [1..5] OF WORD из пяти элементов.
Можно подумать, что массив из 5 элементов, а iCount равен 6 и поэтому запись в массив некорректная, но во-первых причем тут булевская переменная xInit, которую вообще не трогают, а во-вторых при любых других значения iCount больших 6, такой ситуации не возникает.
И в принципе никогда больше такой ситуации не возникает, в которой булевская переменная принимает не свойственное ее типу ошибочное значение, какие бы комбинации размеров массива и iCount я не делал. То есть только комбинация когда массив из 5 элементов и iCount:=6 дает ошибочное значение xInit ни каким боком не относящейся к этому массиву и переменной iCount. Если массив и переменную wX сделать типа INT то ошибки также не возникает даже при комбинации iCount=6 и массива aBuffer: ARRAY [1..5] OF INT.
Прошу пояснить эту мистику на ПЛК150.
В приложении скрины.
С уважением, Михаил