Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 23

Тема: Глобальная переменная

  1. #1

    По умолчанию Глобальная переменная

    Добрый вечер

    Столкнулся с такой странной ситуацией. В программе на ST объявлена глобальная переменная типа WORD. По умолчанию ее значение равно 0.

    При старте программы этой глобальной переменной присваивается другое значение. В отладчике видно что переменная поменяла свое значение, однако оборудование работает так будто значение этой переменной равно 0.
    Последний раз редактировалось Newcomer; 10.11.2017 в 19:53.

  2. #2

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Ну так это обычное дело. Просто нужно исправить sin на exp в 17й строке.
    Ничего не понял, поясните, пожалуйста, поподробней.

  3. #3
    Пользователь
    Регистрация
    16.04.2012
    Адрес
    Тимашевск, Краснодарский край
    Сообщений
    326

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Ничего не понял, поясните, пожалуйста, поподробней.
    К ясновидящим в другой форум. Ну а если серьезно, то вполне вероятно, что в глобальной переменной и локальной одинаковые имена, возможно. Если нет, проект в студию, тогда и на помощь можно рассчитывать.

  4. #4

    По умолчанию

    Цитата Сообщение от Игорюня Посмотреть сообщение
    Ну а если серьезно, то вполне вероятно, что в глобальной переменной и локальной одинаковые имена, возможно.
    Я это сразу проверил. Нет такого. Я с подобным за 10 лет работы с CoDeSys первый раз столкнулся. Мистика какая-то. Может у человека, который пытает программу на объекте что-то с компьютером не то, вирус или еще что-то ?
    Последний раз редактировалось Newcomer; 11.11.2017 в 18:18.

  5. #5

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Ну у себя, в 17й строке PLC_PRG, ошиблись. Не то написали.
    Что именно не то ?

    У меня в глобальных переменных объявлено A:WORD; K:WORD := 16;, а в PLC_PRG сделано присвоение A := 200 * K;

    А должно быть равно 3200, а по факту 0.

  6. #6
    Пользователь
    Регистрация
    16.04.2012
    Адрес
    Тимашевск, Краснодарский край
    Сообщений
    326

    По умолчанию

    Знакомая ситуация у меня тоже не проканало a: ton := (pt:=t#1s) , пришлось в теле программы время забивать при каждом вызове.

  7. #7
    Пользователь
    Регистрация
    16.04.2012
    Адрес
    Тимашевск, Краснодарский край
    Сообщений
    326

    По умолчанию

    Валенок! Уже приводил и это обсуждали. Не надо по пустякам тролить.

  8. #8
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,225

    По умолчанию

    Цитата Сообщение от Игорюня Посмотреть сообщение
    Валенок! Уже приводил и это обсуждали. Не надо по пустякам тролить.
    что Вы там привели, решение которым кто то с Вами поделился, нет, сами сделали вывод, что добавив аргумент всё заработало, а по факту не грамотно составлена программа была с вызовом таймеров
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #9

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Передайте этому человеку что он несёт пургу.
    1.Забыл сделать старт
    2.Косяк в коде
    3.Кривое подключение.
    Все это мимо.

    Если в глобальных переменных объявлено А:WORD := 3200;, то все работает как надо.

    Если в глобальных переменных объявлено A:WORD; K:WORD := 16;, а в PLC_PRG сделано единственное присвоение для A
    A := 200 * K;, то не работает.

    Оператор A := 200 * K; почему-то игнорируется.

    Что такое кривое подключение ?

    А может исходный код программы не верно компилироваться из-за заражения компьютера вирусом ?
    Последний раз редактировалось Newcomer; 12.11.2017 в 13:49.

  10. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,225

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Все это мимо.

    Если в глобальных переменных объявлено А:WORD := 3200;, то все работает как надо.

    Если в глобальных переменных объявлено A:WORD; K:WORD := 16;, а в PLC_PRG сделано единственное присвоение для A
    A := 200 * K;, то не работает.

    Оператор A := 200 * K; почему-то игнорируется.

    Что такое кривое подключение ?

    А может исходный код программы не верно компилироваться из-за заражения компьютера вирусом ?
    а в пустом проекте тоже не работает?
    Вложения Вложения
    • Тип файла: rar global.rar (883.5 Кб, Просмотров: 10)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

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

Похожие темы

  1. Переменная из CoDeSys 2.3 в 3.5
    от Пьер в разделе Сетевые технологии
    Ответов: 0
    Последнее сообщение: 20.09.2017, 14:31
  2. Переменная Reset
    от xroi в разделе Среда программирования OWEN Logic
    Ответов: 17
    Последнее сообщение: 29.03.2016, 19:24
  3. Переменная
    от jus в разделе ПЛК1хх
    Ответов: 31
    Последнее сообщение: 30.03.2015, 16:54
  4. Вечная переменная!
    от Дмитрий Артюховский в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 15.03.2008, 19:21

Ваши права

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