Добрый день. У кого такое было: в Machine Expert Когда онлайн то окно поиска присутствует. А если отключиться от контроллера это окно пропадает и 100500 нажатий комбинации Ctrl+F ничего не дает. Я даже не закрывая это окно поиска отключался от контроллера и оно пропадало
Комментарии: 19
Nick
А во вкладках нет ?
Iiy
Нету нигде Это пиздец, ещё так долго и бестолково как сегодня я ещё не искал эту ошибку конченую. Хоть бери и пиши всю программу заново И не показывает урод этот где ошибка Еле нашел
Rustem
Установи memory tools и можешь по дампу искать точку исключения. По адресу байтов.
Iiy
Короче нифига я не решил. До сих пор ебусь с этим дерьмом. Есть цикл FOR i := 0 TO вот тут херня DO Бла бла бла END_FOR И вот там где херня хоть константы хоть переменные, что бы я только не пихал туда но если его значение выше чем 50 то исключение это и контроллер останавливается
Nick
Выложи код хоть
Iiy
Вот ставлю 75 ошибка
Nick
Шаг то какой
Iiy
Ставлю 40 контроллер нормально себя чухает [RUN] Без шага ксли указать то цикл работает с шагом 1
Robert
Да, итерацию вы же не увеличиваете...
Nick
Пройдись пошагово В режиме отладки
Iiy
Это кодесис, там фо ай ту 40 ду значит что оно само увеличивает ай с каждым циклом. Пол контроллера этих циклов, там 3 километра кода уже написано а именно этот цикл выделывается
Evgeniy
MehIds это какой эррей? Проверили?
Nick
Загони for , в if , и как только посчитаешь до 999 не заходи больше в for
Nick
Или до 40
Rustem
Массив какой размерности? В кодесисе просто так обозначить тегами границы массива нельзя. Можно переменной объявленной в константах. Может в этом дело
Iiy
Обозначено константой
Rustem
В журнал зайди и глянь что за исключение. Походу твой массив залез в другую область,. Или два раза кликни на красное исключение - он сам тебя выведет а место исключения. Жёлтым будет.
Robert
Watchdog???
Evgeniy
У вас в логике нигде нет "вот тут херня + 1"? а типа, если к примеру выходите в недопустимый диапазон - может падать. типа, FOR i := 0 TO 10 DO IF val[i] > val[i + 1] THEN бимбим бамбом END_IF; END_FOR; Вот такая штука может крашить плк, если массив val [0..10]