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

Тема: Переменные в Codesys

  1. #1

    По умолчанию Переменные в Codesys

    Все кто здесь тусует, так или иначе программируют.... В детском саду учат что прежде чем использовать переменную - ее нужно описать! Это логично и понятно.... Идем далее, если переменную удалить из описания, что будет? Правильно - программа не транслируется - нет переменной, убита...... А вот Codesys идет своей дорогой!!! Один раз описанная переменная живет вечно! Введите имя в глобальных переменных, используйте ее в проекте, проверьте проект.... а теперь сотрите ее описание.... проект транслируется, как-то работает... а неописанная переменная живет своей жизнью.... в каждом блоке она принимает какие-то свои значения, подозреваю что дефалтные, и описания ее нету нигде , и присваивая ей какое-либо значение, не стоит ожидать что в последующем блоке значение будет такое-же!!! Такой подставы я не ожидал от в общем-то не нулевой версии среды разработки! Следите за переменными! И упаси боже решить переименовать хоть одну из них, потребуется ручками перетрясти весь проект, поскольку среда не покажет ошибки!

  2. #2

    Question Кхм... кодесис не работает?

    Кажется понял... С Вами злую шутку сыграло авто декларирование. Когда вы используете первый раз переменную среда предлагает автоматически декларировать ее в текущем POU. Соотвественно даже если переменные уже декларированы как глобальные обращение идет к локальным.
    Попробовал - сделать как Вы описали - ничего не получилось. Использую CoDeSys 2.3.8.1. Либо опишите последовательность действий.

  3. #3

    По умолчанию

    добрый день.
    вставлю свой вопросик немного офф, но все же по переменным.

    обнаружил, что при отладке в отладчике не показываются локальные переменный функций. вместо значений - вопросики. значения параметров функций при этом видны.
    все это относиться к работе на таргете овена. с таргетом PLCWinNT отладчик работает ок.
    подскажите что сделать, чтобы нормально отлаживаться.

  4. #4

    По умолчанию

    Вопросики отображаются в функциональных блоках, если не выбран экземпляр. Так и должно быть.

    Если удалить объявление переменной в CoDeSys, то сразу выдается сообщение: 'Ошибка 4001: Идентификатор … не определен.' Если этого нет, то аналогичные переменные где-то объявлены (как предполагает Олег) либо поврежден файл проекта. Стоит дать команды 'Проект' –'Очистить все' – 'Компилировать все'. Либо в глобальных переменных (см. свойства списка) включен экспорт объявлений из файла (описания переменных подгружаются из созданного ранее файла) .
    Изображения Изображения
    • Тип файла: jpg tst_1.JPG (163.0 Кб, Просмотров: 154)

  5. #5

    По умолчанию

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Вопросики отображаются в функциональных блоках, если не выбран экземпляр. Так и должно быть.

    Если удалить объявление переменной в CoDeSys, то сразу выдается сообщение: 'Ошибка 4001: Идентификатор … не определен.' Если этого нет, то аналогичные переменные где-то объявлены (как предполагает Олег) либо поврежден файл проекта. Стоит дать команды 'Проект' –'Очистить все' – 'Компилировать все'. Либо в глобальных переменных (см. свойства списка) включен экспорт объявлений из файла (описания переменных подгружаются из созданного ранее файла) .
    Я полагаю первый ответ - на мой вопрос, а второй - для создателя темы?

    Но я спрашивал про функции а не про фб! Причем в функциях недоступны значения именно на таргете овен. Значения параметров видны только в составе структуры, которая передается по указателю.

    Прикреплены два проекта и два скриншота на которых все видно.
    Первый проект сделан под таргет овена. Потом сохранен под именем второго, таргет в нем сменен на PLCWinNt, конфигурация сброшена на стандартную.
    Прошу Ваших пояснений.
    Изображения Изображения
    Вложения Вложения
    Последний раз редактировалось Аркадий; 27.03.2008 в 15:24.

  6. #6

    По умолчанию

    Видимо дело в следующем.
    Значения переменных считываются из ПЛК по каналу связи. Число переменных, к-е может быть скачано за раз ограничено (канал связи не резиновый), в рез-те если у Вас много переменных - часть видна не будет.
    Для PLCWinNt, т.к. канала связи, как такового, нет (и среда разработки и PLCWinNt на одном компе), ограничение на число отображаемых переменных не накладывается (либо больше, чем на удал. ПЛК) и все переменные видны.
    Рекомендую закрыть окна, к-е не используются.

  7. #7

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Видимо дело в следующем.
    Значения переменных считываются из ПЛК по каналу связи. Число переменных, к-е может быть скачано за раз ограничено (канал связи не резиновый), в рез-те если у Вас много переменных - часть видна не будет.
    Для PLCWinNt, т.к. канала связи, как такового, нет (и среда разработки и PLCWinNt на одном компе), ограничение на число отображаемых переменных не накладывается (либо больше, чем на удал. ПЛК) и все переменные видны.
    Рекомендую закрыть окна, к-е не используются.
    Я извиняюсь, Вы смотрели проект приложенный к моему сообщению, или хотя бы скриншот?
    Во всем проекте два ПОУ, в одном две переменых, в другом две локальные и один параметр... итого всего 5 в проекте. Это много??? Открыты только два окна ПОУ.

    Что значит нет канала связи для PLCWinNt? связь осуществляется также через TCP/IP. Причем по IP, а не локальный хост.

  8. #8

    По умолчанию

    Проект написан с использованием SFC, модули написаны на ST, переменные описаны в блоках Global_Variables и PLC_PRG. Проблемная переменная была глобальной и в переменных PLC_PRG ее нет, проверено. Такое ощущение что для каждого action- модуля, который теоретически можно рассматривать как отдельный POU, заводиться свой список переменных, который не синхронизируется автоматически с глобальными.... но где посмотреть этот список?

  9. #9

    По умолчанию

    Уважаемые разработчики, есть какие нибудь предложения по моему вопросу?

Ваши права

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