Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 26

Тема: вопросы начинающего

  1. #11
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    Цитата Сообщение от николаев андрей Посмотреть сообщение
    уберите галочку контроля, которая обозначена на вложенной картинке
    а это не повлияет на корректную работу программы?

  2. #12

    По умолчанию

    галочка не выход, а прятание головы в песок.
    просто установите среду разработки 2.3.8.1 - там эта проблема решена

  3. #13
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    Создал я, значит, функциональный блок, который описывает одно устройство. В программе создается вектор MyVector таких функциональный блоков, длина которого равна количеству устройств. В состав блока входят AT-переменные привязанные к входам и выходам ПЛК. Когда я пытаюсь обратиться из какой-либо точки программы к такой переменной, например MyVector[1].MyOutput, выдается ошибка 4020.

    Выход MyOutput описан в разделе Variable_Configuration: PLC_PRG.MyVector[1].MyOutput AT %QX1.0: BOOL;.
    Вот, собственно, вопрос: как правильно обратиться к такой переменной?

  4. #14

    По умолчанию

    Описание ошибки:
    <
    4020
    "Variable with write access or direct address required for 'ST', 'STN', 'S', 'R'"

    Замените первый операнд переменной, имеющей доступ на запись.
    >
    Видимо где -то в программе есть присвоение значения этой переменной.

  5. #15
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    Описание ошибки:
    <
    4020
    "Variable with write access or direct address required for 'ST', 'STN', 'S', 'R'"

    Замените первый операнд переменной, имеющей доступ на запись.
    >
    Видимо где -то в программе есть присвоение значения этой переменной.
    Да, описание ошибки я читал, но вот только не понял, что оно означает... Присвоений значений нигде нет, есть только привязка дискретного выхода к переменной функционального блока.

  6. #16

    По умолчанию

    Скорее всего компилятор берет выражение PLC_PRG.MyVector[1].MyOutput AT %QX1.0 не как декларацию а как обращение.
    Видимо нужно объявить массив указателей на ФБ. Потом объявить экземпляры ФБ например fb_1:myFB;...fb_n:myFB

    Привязывать как fb_1.MyOutput AT %QX1.0: BOOL
    и проинициализировать массив указателей на fb.

    Игорь Викторович, возможно есть не такой корявый метод?

  7. #17

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    Описание ошибки:
    <
    4020
    "Variable with write access or direct address required for 'ST', 'STN', 'S', 'R'"

    Замените первый операнд переменной, имеющей доступ на запись.
    >
    Видимо где -то в программе есть присвоение значения этой переменной.
    Да, тут только доступ по указателю - это защита от дурака.

  8. #18

    По умолчанию

    Объявляем в ФБ
    VAR
    MyOutput: AT %Q*: BOOL;
    END_VAR
    А Variable_Configuration определяем
    VAR_CONFIG
    PLC_PRG.MyVector[1].MyOutput AT %QX1.0 : BOOL;
    END_VAR
    и поидее все работает, правда на ОВЕН непробовал но поидее должно быть также.

  9. #19
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    Цитата Сообщение от Nekit Посмотреть сообщение
    Объявляем в ФБ
    VAR
    MyOutput: AT %Q*: BOOL;
    END_VAR
    А Variable_Configuration определяем
    VAR_CONFIG
    PLC_PRG.MyVector[1].MyOutput AT %QX1.0 : BOOL;
    END_VAR
    и поидее все работает, правда на ОВЕН непробовал но поидее должно быть также.
    Вот именно, что на этом этапе всё работает. А вот если попытаться в теле основной программы обратиться к MyVector[1].MyOutput, чтобы на выход подать, например, TRUE, то компилятор выдает ошибку. Сейчас попробую через указатель достучаться к переменной.

  10. #20
    Пользователь Аватар для Flomaster
    Регистрация
    03.05.2007
    Адрес
    Khabarovsk
    Сообщений
    278

    По умолчанию

    всё, получилось! через указатели нормально работает! вот еще вопрос один появился. планируется использовать в связке с плк-150 модуль мдвв. самого модуля пока нет. где бы почитать, как работать с его входами/выходами? и можно ли как-нибудь сэмулировать присутствие модуля?

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Ваши права

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