Показано с 1 по 6 из 6

Тема: ПЛК 210 программа загружена исключение

  1. #1

    По умолчанию ПЛК 210 программа загружена исключение

    при старте проекта в ПЛК выдает сообщение программа загружена исключение
    Изображения Изображения
    Я не волшебник, я только учусь...

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,627

    По умолчанию

    Цитата Сообщение от AllXXX Посмотреть сообщение
    при старте проекта в ПЛК выдает сообщение программа загружена исключение
    Добрый день.
    Судя по "AccessViolation" - у вас ошибки при работе с памятью (при использовании массивов, указателей или чего-то подобного).
    Можете почитать статью про отладку в CODESYS V3.5 (ссылка в подписи) - там рассматривается эта тема.

    Если не разберетесь - пишите мне в телеграм (в подписи), поможем решить вашу проблему.

  3. #3

    По умолчанию

    Спасибо Евгений Кислов за оперативную помощь!!!
    Моя ошибка была в том, что в индекс массива пытался записать число больше чем размер массива. Режим эмуляции данную ошибку игнорировал.
    PHP код:

    Variable
    :     ARRAY [0..100]OF REAL;
    Variable1:    ARRAY [0..10OF INT := [00102030405060708090100]; 
    Было:
    PHP код:

    FOR := 0 TO 10 BY 1 DO
        FOR 
    := 0 TO 10 BY 1 DO
        
    Variable[n*10+x] := … Линейное уравнение  Y Yn + (Xn)*(Yk Yn)/ (Xk Xn)
        
    END_FOR
    END_FOR 
    Стало:
    PHP код:

    FOR := 0 TO 9 BY 1 DO
        FOR 
    := 0 TO 10 BY 1 DO
        
    Variable[n*10+x] := … Линейное уравнение  Y Yn + (Xn)*(Yk Yn)/ (Xk Xn)
        
    END_FOR
    END_FOR 
    Я не волшебник, я только учусь...

  4. #4

    По умолчанию

    Цитата Сообщение от AllXXX Посмотреть сообщение
    Спасибо Евгений Кислов за оперативную помощь!!!
    Моя ошибка была в том, что в индекс массива пытался записать число больше чем размер массива. Режим эмуляции данную ошибку игнорировал.
    .../ (Xk - Xn)
    Проверку деления на 0 на всякий случай тоже сделайте, если еще не сделали

  5. #5

    По умолчанию

    Ещё прям классным правилом является использование констант. Можно писать так (пишу определение и обход массива):
    PHP код:
    VAR
       
    arrData : ARRAY [DataStart..DataMaxOF WORD;
       
    wIndex WORD;
    END_VAR

    VAR CONSTANT
       DataStart 
    WORD := 0;
       
    DataMax WORD := 10;
    END_VAR

    FOR iIndex := DataStart TO DataMax DO
       
    lalala := arrData[iIndex];
    END_FOR 
    В таком случае мы используем именованные константы для границ массива. Это позволяет назвать их как надо (например, для какого-нить буфера данных назвать SMSBufferSize, что сразу понятно), и везде подставлять их значения. Если надо будет что-то поменять - то меняется константа в одном месте.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  6. #6

    Exclamation

    Хорошее замечание.
    Сделал функцию так как часто использую:
    PHP код:
    FUNCTION LinearEquation BOOL
    VAR_INPUT
        rArr        
    :    REFERENCE TO ARRAY[0..100OF REAL;
        
    iXniXk    :    INT;
        
    rYnrYk    :    REAL;
    END_VAR
    VAR
        
    iX        :    INT;
    END_VAR 
    PHP код:
    IF (iXk-iXn)<>0 THEN
        
    FOR iX := iXn TO iXk BY 1 DO
            
    rArr[iX] := rYn + (iX-iXn)*(rYk-rYn)/(iXk-iXn);
        
    END_FOR
    END_IF 
    Я не волшебник, я только учусь...

Похожие темы

  1. Программа загружена - ИСКЛЮЧЕНИЕ
    от Deoxes в разделе СПК1xx (архив)
    Ответов: 16
    Последнее сообщение: 22.04.2024, 16:18
  2. Исключение
    от Dmitrijb в разделе СПК210, СПК1xx [М01]
    Ответов: 4
    Последнее сообщение: 14.04.2022, 14:27
  3. Исключение
    от 19_Артем_17 в разделе СПК2xx (архив)
    Ответов: 8
    Последнее сообщение: 09.06.2021, 11:49
  4. СПК107 Програма загружена - ИСКЛЮЧЕНИЕ
    от Ярослав555 в разделе СПК1xx (архив)
    Ответов: 24
    Последнее сообщение: 07.12.2014, 21:49
  5. Ответов: 2
    Последнее сообщение: 20.12.2013, 10:04

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •