Добрый день!
После запуска контроллера ПЛК210 в run. Появляется сообщение "Для данной позиции нет сходного кода". Компиляция проходит без ошибок. В стеке вызова показывает отсутствие расположения.
Как это можно вылечить?
Спасибо!
Вид для печати
Добрый день!
После запуска контроллера ПЛК210 в run. Появляется сообщение "Для данной позиции нет сходного кода". Компиляция проходит без ошибок. В стеке вызова показывает отсутствие расположения.
Как это можно вылечить?
Спасибо!
Это исключение. То есть, ошибка, связанная не с загрузкой программы, а с выполнением. Аналогия - Синий экран Windows/
Ну, например, деление на ноль создат исключение. Или обращение к несуществующей памяти.
Поэтому проверять надо код. Судя по всему, там что-то неверно написано для работы с COM-портом. Именно в твоей программе, а не в ПЛК.
Исключение пропало когда убрал из работы функцию для работы с COM -портом. Указатель показывал сразу на открытие COM-порта. На первый взгляд вроде бы все корректно.
Вложение 66058
Вложение 66059
Если создать новый пустой проект и добавить в него "функцию для работы с COM-портом" - проблема повторится?Цитата:
Исключение пропало когда убрал из работы функцию для работы с COM -портом.
В проекте используется опрос COM-порта и обмен между панелью и контроллером. По раздельности все работает. Когда использую и то и другое сразу возникает эта проблема.
Пока что это подтверждает гипотезу Cs-Cs о том, что в вашем коде есть ошибки в работе с памятью.
Выложите, пожалуйста, ваш проект, в котором после запуска сразу возникает исключение - посмотрим, в чем дело.
Все, что не связано с возникновением исключения - удалите из проекта.
Архив с программой
Навскидку:
В какой элемент массива awWriteReal (с каким индексом) произойдет запись при i = 30?Код:FOR i:= 0 TO 30 DO
fbRealToWord2(rInput := rWriteReal[i], wOutput1 => awWriteReal[i*2+1], wOutput2 => awWriteReal[i*2]);
OCL.SWAP_DATA(ADR(sWriteString), ADR(awWriteString), SIZEOF(awWriteString), FALSE, FALSE, FALSE);
END_FOR;
Не куда писать, спасибо)