Показано с 1 по 10 из 38

Тема: Существует ли в CoDeSys v.2(v.3) альтернатива #if defined

Древовидный режим

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

    По умолчанию Существует ли в CoDeSys v.2(v.3) альтернатива #if defined

    Здравствуйте!

    В языке Си есть директива #if defined, говорящая препроцессору компилятора, что следующий код нужно компилировать в машинный код (прошивку) или нет, исходя из некоего условия. Пример:
    В начале программы
    Код:
    #define a
    //#define b
    Условие "a" установлено, условие "b" закомментировано.
    Далее, где-то в программе
    Код:
    #if defined (a)
    	ANCON0 = 0b01001100;
    #else
    	ANCON0 = 0b01000011;
    #endif
    Здесь если установлено условие "а" откомилируется в состав прошивки выделенная красным строка, иначе - выделенная зелёным. Таким образом очень удобно, например, писать код, который будет работать на разных процессорах, описав все различимые вещи в подобных #if defined, а условием выбирая нужный процессор. И смена целевого процессора производится закомментированием всех остальных и выбором одного, то есть пара нажатий кнопок.
    Теперь собственно вопрос. Есть ли в кодесис подобная возможность быстрой смены части конфигурации, программы и описания переменных? Т.е., можно ли сделать две альтернативные части конфигурации, скажем, для условия "release" переменные "Right", "Up", "Vertical" и тому подобные сконфигурированы как дискретные входы/выходы ПЛК. А для условия "debug" эти же переменные сконфигурированы как биты входных/выходных переменных подчинённого модуля связи.
    Сам вижу решение только в написании двух кусков блоков описания глобальных переменных и закомментирования ненужного целиком. В принципе не намного сложнее чем так, как привык, но это только если касается описания переменных, то есть одного куска. А если нужно по-разному настроить конфигурацию, по-разному написать часть программы, то есть в более общем случае?
    В общем, есть какое-либо подобное решение такого вопроса? Спасибо заранее.

    PS забыл в названии темы поставить знак вопроса, а отредактировать уже нельзя
    Последний раз редактировалось Вова; 02.06.2015 в 06:33.
    Железяка должна быть такой: нажал кнопку — работает

Ваши права

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