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

Тема: битовая адресация через глобальные константы

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию битовая адресация через глобальные константы

    Почему компилятор выдает ошибку 4027?
    Сделано все вроде правильно в ссответствии с руководством пользователя codesys 2.3 (пункт 10.12)
    Вложения Вложения

  2. #2

    По умолчанию

    1) Побитно можно использовать только переменные типа битовых строк (BYTE, WORD, DWORD)
    2) Номер бита может быть только константой.

    VAR
    aaa:WORD;
    END_VAR

    aaa.2 := TRUE; - OK
    aaa.i := TRUE; - ошибка

  3. #3
    Пользователь
    Регистрация
    18.03.2007
    Адрес
    г. Краснодар
    Сообщений
    233

    По умолчанию

    aaa.i := TRUE; - ошибка
    Это не ошибка, просто i нужно объявить
    var global constant
    i : byte := 2;
    end var

    Но настроить компилятор чтобы константы были в исполняемом коде.

  4. #4

    По умолчанию

    а где настройки компилятора?

  5. #5
    Пользователь
    Регистрация
    18.03.2007
    Адрес
    г. Краснодар
    Сообщений
    233

    По умолчанию

    project | build
    Replace constant
    разрешает «вшивать» значения скалярных (все кроме массивов, строк и структур)
    констант в машинный код. В режиме Online такие константы изображаются зеленым. Фиксация, запись
    таких констант невозможна. При отключенной опции константы сохраняются в памяти данных кон-
    троллера и с ними можно обращаться так же, как и с обычными переменными (код, естественно, будет
    медленнее).

  6. #6

    По умолчанию

    спасибо, я уже разобрался.
    Кстати не надо никаких WORD,BYTE все работает как у меня в примере.
    Да и BYTE мне не подходит т.к. мне это нужно для символьной нумерации входов/выходов МДВВ т.е. до 12. Все таки приятнее смотрится в программе (да и ошибок меньше) , например,
    OUTMDVV.PUMP:=TRUE где PUMP:INT:=3;
    И даже не в этом дело. При изменении элетрической схемы установки (что происходит сплошь и рядом во время разработки и отладки оборудования) достаточно изменить цифру, чем лазить по всей программе и искать этот насос. У меня в проекте 31 датчик и 26 клапанов, насосов и индикаторов, так что смысл понятен.
    Еще раз спасибо всем за помощь

Ваши права

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