Вопрос. Какой должна быть переменная (локальная, глобальная) которая вводится в поле перед AT при конфигурированиии входов-выходов ПЛК?
Вопрос. Какой должна быть переменная (локальная, глобальная) которая вводится в поле перед AT при конфигурированиии входов-выходов ПЛК?
Эта переменная будет объявлена автоматически как глобальная.
Именно, если Вы вводите имя переменной перед АТ объявлять её где-то ещё не надо, хотя тут не ощибётесь -компилятор не пропустит 2 имени одинаковых.
Еще как проглотит.
Естественно при условии что одна будет глобальной, и ещё 150 локальных.
Но лучше всетаки работать через имя и задавать адрес переменной, а не просто вписывать в Конфигурации ПЛК
Оптимально если в ФБ и PRG будут алгоритмы, а привязка к входам-выходам будет в области глобальных переменных. Это позволит дальше перейти к контроллеру на другой архитектуре, и даже другого производителя. Т.е. если не устроит контроллер фирмы WWWW (ну например после изменения курса евро) можно использовать контроллер фирмы OOOO....(шутка юмора )
Есть понятие локальных и глобальных переменных.
Глобальные - это переменные к значению которых можно обращаться из любого ресурса проекта. Будь то основная программа, другие программные модули.
Объявляются глобальные переменные в разделе проекта "ресурсы" ресурс глобальные переменные.
Локальные переменные - переменные, объявленные в каком то одном программном модуле. Там они и работают.
То есть у Вас в проекте может быть переменная А глобальная для всего проекта, и Вы можете создавать еще много локальных - CoDeSys это прожует.
Я настойчиво рекомендую специалистам, которые только начинают создавать проекты четко отслеживать, чтобы в проектах не было переменных локальных и глобальных с одним именем.
Более подробно о типах переменных почитайте мануал. Крайне пользительная штука.
Что касается объявления переменных, относящихся к области ввода\вывода (Конфигурация ПЛК).
Их лучше всего изначально определять в ресурсе глобальные переменные, используя указатель на адрес.
Все адреса всегда можно посмотреть в Конфигурации ПЛК - в соответствующем канале.
если раньше назначить переменную перед At в области конфигурирования входов-выходов, то она автоматически объявляется глобальной. дальше можно использовать ее в проекте для ввода-вывода. эта последовательность работает. но если переменная уже объявлена глобальной, то потом при назначении ее входам-выходам возникает ошибка - переменные с одинаковым именем.
И это совершенно логично, значит CoDeSys работает.
Вы прочитали про глобальные, но забыли дочитать, что переменным ставится обращение к адресу в памяти входа\выхода.
Вот если при объявлении глобальных переменных Вы добавите адреса, то и перед АТ ничего писать не придется.
Спасибо. Теперь ясно как CoDeSys работает. Жаль только, что на понимание этого истрачено много времени. В описании CoDeSys этот момент мало объяснен. Сказалась привычка к уровню сервиса в Windows, за который собственно мы и платим гигагерцами и гигабайтами. Там информацию не нужно вводить дважды, система быстро понимает, что от нее хотят. CoDeSys тоже мог бы "сообразить" что если имя уже описанной переменной появляется перед AT в кофигурации входов-выходов, значит нужно так.