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

Тема: СПК110 [М01] + PersistantVars - некорректное восстановление значений при перезапуске.

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

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

    По умолчанию

    Цитата Сообщение от rch Посмотреть сообщение
    Если закомментировать строку
    Код:
    PLC_PRG.SpL11_PurgePeriod:= PersistentVars.SpL11_PurgePeriod;
    , то проблема уходит, но она необходима, для того чтобы исключить повторную проверку уставки.
    а где комментировали? Во всех трех местах или в какой то одной программе, которая считаете выполняется когда, первой последней ...
    в PRG создавать область ввода это как то не профессионально
    приоритета выполнения тоже нет, каждый раз может запустится в любой последовательности
    в основном в эту переменную идет запись внутри условия, значит условие это выполняется может стоит обратить внимание на смежную переменную
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  2. #2

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    в PRG создавать область ввода это как то не профессионально
    В CS3.5 я вообще могу убрать/переименовать PLC_PRG, это всего лишь имя POU. Ну и в общем не профессиональность в этой теме обсуждаем...

    Цитата Сообщение от capzap Посмотреть сообщение
    приоритета выполнения тоже нет, каждый раз может запустится в любой последовательности
    Все POU в одной задаче, выполняются последовательно, приоритет не влияет, последовательность выполнения POU всегда одна и та же.

    Цитата Сообщение от capzap Посмотреть сообщение
    а где комментировали? Во всех трех местах или в какой то одной программе, которая считаете выполняется когда, первой последней ...
    в основном в эту переменную идет запись внутри условия, значит условие это выполняется может стоит обратить внимание на смежную переменную
    Проверено неоднократно в разных комбинациях. В ходе тестов выяснилось, что проблема уходит при отключении стандартного компонента Modbus RTU Slave, при этом ничего не закомментировано.
    Делаю вывод, что проблема в нём. Как это происходит - вопрос к разработчикам компонента.

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

    По умолчанию

    Цитата Сообщение от rch Посмотреть сообщение
    В CS3.5 я вообще могу убрать/переименовать PLC_PRG, это всего лишь имя POU.
    я акцентирую не на имя PLC_PRG, а на тип PRG, область входных переменных используется в функциональных блоках и функциях

    Цитата Сообщение от rch Посмотреть сообщение
    Все POU в одной задаче, выполняются последовательно, приоритет не влияет, последовательность выполнения POU всегда одна и та же
    ну а как же тогда предложение перегружать несколько раз, у кого то вот и на пятый раз проблем нет, значит случайность, значит под вопросом как ПОУ запускаются в одной задаче

    запустите все свои ПОУ в одном PLC_PRG это ни чем не будет отличатся от того что на данный момент, зато конкретно будет ясна последовательность выполнения и как бы Вы не говорили что не поднимать тему об навыках и умениях, но по несколько раз писать одно и тоже только в разных ПОУ это дичь, кто Вас такому научил, это даже на подстраховку не похоже
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  4. #4

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    я акцентирую не на имя PLC_PRG, а на тип PRG, область входных переменных используется в функциональных блоках и функциях
    Не запрещается использовать VAR_INPUT в POU типа PROGRAM, хотя может и не является типичным. Если вы почитаете справку на CODESYS, то увидите это:https://help.codesys.com/webapp/_cds...rsion=3.5.17.0

    Цитата Сообщение от capzap Посмотреть сообщение
    ну а как же тогда предложение перегружать несколько раз, у кого то вот и на пятый раз проблем нет, значит случайность, значит под вопросом как ПОУ запускаются в одной задаче
    Это предложение просто для повторяемости результата. По факту у меня всегда с первого раза некорректно восстанавливаются значения. И для размышления, у Евгения Кислова, который отвечал выше, на СПК данная проблема на выложенном мной выше проекте вообще не проявляется, но у него СПК выпущен до октября 2022г.

    Цитата Сообщение от capzap Посмотреть сообщение
    запустите все свои ПОУ в одном PLC_PRG это ни чем не будет отличатся от того что на данный момент, зато конкретно будет ясна последовательность выполнения и как бы Вы не говорили что не поднимать тему об навыках и умениях, но по несколько раз писать одно и тоже только в разных ПОУ это дичь, кто Вас такому научил, это даже на подстраховку не похоже
    Во-первых, в разные POU код проверки разнесён для удобочитаемости, чтобы не было многокилометровых листингов в одном файле (что как раз и есть дичь).
    Во-вторых, эти POU обрабатывают разные входные данные и код в них разный, и речь вовсе не о подстраховке.
    В-третьих, перенос всего этого кода в один POU не изменяет порядок выполнения никак, т.к. POU в задаче выполняются последовательно в том порядке, в котором они указаны в настройках задачи. Чтобы не быть голословным, сделал вариант (как вы предлагаете), где всё в одном POU (PRG без VAR_INPUT), и как ни странно дичь при восстановлении значений PersistentVars осталась.

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 05.06.2019, 21:33
  2. ТРМ-210. некорректное отображение температуры.
    от Max1998 в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 27.10.2015, 13:58
  3. Ответов: 11
    Последнее сообщение: 28.10.2013, 12:30
  4. Ответов: 2
    Последнее сообщение: 06.05.2013, 15:13
  5. Ответов: 2
    Последнее сообщение: 03.02.2011, 15:02

Метки этой темы

Ваши права

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