Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 21 по 30 из 44

Тема: работа несколько функциональных блоков (PID_FUNCTION) на ПЛК110-60 М2

  1. #21

    По умолчанию

    Причем у меня эти значения на рабочем ФБ ПИД присваиваются во время работы и сохраняются даже после сброса( заводского) и обнуления программы контроллера, хотя сам ФБ не в Retain. Вот на скрине переименовал ФБ -ки и запустил в работу, значения INDEX и NEXT у всех по нулям. Чуть позже скину скрин, когда заполнятся значения.
    Изображения Изображения

  2. #22

    По умолчанию

    YuriBel заметил у Вас на скрине разные значения PV_time. Вы откуда берете эти значения?

  3. #23

    По умолчанию

    Я использую блоки МВ110-2А, и из них забираю это время. соответственно , для каждого канала это время своё. Насколько я понял. Овеновская библиотека под это "заточена", это позволяет точнее вычислять интегральную составляющую.

  4. #24

    По умолчанию

    Цитата Сообщение от YuriBel Посмотреть сообщение
    Я использую блоки МВ110-2А, и из них забираю это время. соответственно , для каждого канала это время своё. Насколько я понял. Овеновская библиотека под это "заточена", это позволяет точнее вычислять интегральную составляющую.
    Используете регистры "Циклическое время измерения входа"?
    У меня тоже стоит МВ110 только 8а. Мне кажется если не читать регистры групповым запросом, то особой точности от этого не получишь, ввиду задержек при опросе. Я в каждом цикле программы увеличиваю счетчик на время цикла и подаю на вход, потому что есть два датчика температуры с rs 485.
    Если переменные INDEX и NEXT не сбрасываются при обнуление и перезаливки программы, значит они пишутся в определенную область памяти?

  5. #25

    По умолчанию

    Да, я использую данные этих регистров. Блоки медленные, и если вы читаете их чаще, чем в каналах обновляются данные, не учитывая время, в которое они измерены, то вносите дополнительную погрешность в интеграл. Я читаю из блока необходимые данные одним запросом (строкой), поэтому полагаю, что опрос у меня идет чаще, чем измеряются данные в каналах. Но это все нюансы, никак не связанные с тем, что у вас из нескольких регуляторов работает только один. Почему так получается- не знаю. Но там, где несколько регуляторов работают, у них разные переменные Index и Next. Так что даже и не знаю. что посоветовать. Возможно, имеет смысл перейти на регулятор из Util.lib.

  6. #26

    По умолчанию

    У меня была такая же проблема с ФБ в своем проекте. Год назад делал станок на ПЛК110 -М2. Общался с техподдержкой, но результата не было. Да и некогда было, станок уже надо было сдавать в работу. Вот выдержки из письма:
    "
    1. Вначале самопроизвольно изменялась переменная внутри функционального блока
    (этот ФБ имеет 18 экземпляров).
    Решил, что возможно, это я где-то ошибся. Переписал ФБ без этой внутренней переменной.
    Ошибка пропала.

    2. Потом в переключателе CASE возникли переходы из состояния CLOSE в
    состояние BEGIN, хотя по программе это возможно только из состояния M_CUT.
    Эти состояния используются в подпрограммах left_mould_cycle, right_mould_cycle
    по переменным l_mould_mode, r_mould_mode. Эту ошибку я вообще никак
    не смог отловить и объяснить.

    На скриншоте видно, что экземпляр ФБ screv_lower_ctrl вызывается с параметром
    IN := FALSE, и в то же время его выход screv_lower_ctrl.Q = TRUE (а по логике
    ФБ должен быть FALSE). И в отладчике видно, что ФБ вызван с IN = TRUE?!!
    "
    Изображения Изображения

  7. #27

    По умолчанию

    Поскольку был цейтнот, тупо переписал программу, выкинув все ФБ (!).
    Но это точно ошибка где-то в распределении памяти ПЛК, поскольку ФБ влияют друг на друга.
    Теперь боюсь брать ПЛК110-М2 в свои проекты.

  8. #28

    По умолчанию

    Это не "ля-ля с картинками", а отладчик, в котором видно, что в основной программе вызывается экземпляр ФБ с IN := false, а внутри экземпляра этого ФБ вход IN имеет значение true в это же самое время!

  9. #29
    Пользователь
    Регистрация
    15.06.2012
    Адрес
    Витебск
    Сообщений
    28

    По умолчанию

    Цитата Сообщение от Евгений Пашигоров Посмотреть сообщение
    Это не "ля-ля с картинками", а отладчик, в котором видно, что в основной программе вызывается экземпляр ФБ с IN := false, а внутри экземпляра этого ФБ вход IN имеет значение true в это же самое время!
    Такое возможно только если меняли таргеты, большой кусок кода ещё что-то тогда нужно сделать "Очистить всё" и перекомплировать проект и всё станет в норму. Если это делали, то 100% ошибка в коде которую вы не можете найти. Может где-то в другом куске программы присваиваете этому фб на вход IN:=TRUE. Сами же пишете что первый раз переписали ФБ и стало норм. Не совсем понятное для меня использование Case и таймеров внутри условий(что тоже нужно делать аккуратно).
    Согласен с Валенком тоже используем большое количество ФБ с указателями и без. И никогда не было проблем с распределением памяти только собственные ошибки.

  10. #30

    По умолчанию

    Цитата Сообщение от TOPan Посмотреть сообщение
    Такое возможно только если меняли таргеты, большой кусок кода ещё что-то тогда нужно сделать "Очистить всё" и перекомплировать проект и всё станет в норму.
    Пунктом "Очистить все" действительно, я не пользуюсь (даже не знаю, что он делает). Всегда делаю "Компилировать все".

    Цитата Сообщение от TOPan Посмотреть сообщение
    Может где-то в другом куске программы присваиваете этому фб на вход IN:=TRUE. Сами
    же пишете что первый раз переписали ФБ и стало норм.
    Все изменения команды на вход делаются выше по коду. Потом один раз вызывается этот ФБ.
    Цитата Сообщение от TOPan Посмотреть сообщение
    Не совсем понятное для меня использование Case и таймеров внутри условий(что тоже нужно делать аккуратно).
    Мне тоже непонятно ваше высказывание. Пришла команда отработать цилиндру - включить таймер, надо считать время работы цилиндра.
    А CASE и IF вообще братья-близнецы. CASE только намного лучше читается.
    Цитата Сообщение от TOPan Посмотреть сообщение
    тоже используем большое количество ФБ с указателями и без. И никогда не было проблем с распределением памяти только собственные ошибки.
    Непонятная мне необходимость в указателях! А зачем они вам?
    Цитата Сообщение от TOPan Посмотреть сообщение
    Если это делали, то 100% ошибка в коде которую вы не можете найти.
    Это точно. Ошибку не нашел.
    Вложения Вложения
    Последний раз редактировалось Евгений Пашигоров; 31.03.2021 в 10:39.

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Похожие темы

  1. Написание функциональных блоков
    от bobovich в разделе Среда программирования OWEN Logic
    Ответов: 10
    Последнее сообщение: 11.11.2020, 17:35
  2. Ответов: 15
    Последнее сообщение: 25.06.2020, 11:42
  3. Макс. число функциональных блоков
    от diman_ob_304 в разделе Программируемые реле
    Ответов: 3
    Последнее сообщение: 18.10.2017, 00:31
  4. Ответов: 1
    Последнее сообщение: 27.04.2017, 21:07
  5. Ответов: 13
    Последнее сообщение: 10.07.2009, 18:21

Ваши права

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