Страница 997 из 1050 ПерваяПервая ... 49789794798799599699799899910071047 ... ПоследняяПоследняя
Показано с 9,961 по 9,970 из 10495

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #9961

    По умолчанию

    То есть создаю новый программный блок PID_Timer.
    Объявляю глобальную переменную pv_time.
    В программном блоке инкрементирую pv_time := pv_time + 100;
    Создаю Таск с цикличностью 100мс и прикрепляю к нему PID_Timer.
    В основной программе в ФБ на вход Pv_Time вставляю мою глобальную переменную pv_time.

    Обнуление pv_time будет автоматически происходить при переполнении?

  2. #9962

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    То есть создаю новый программный блок PID_Timer.
    Объявляю глобальную переменную pv_time.
    В программном блоке инкрементирую pv_time := pv_time + 100;
    Создаю Таск с цикличностью 100мс и прикрепляю к нему PID_Timer.
    В основной программе в ФБ на вход Pv_Time вставляю мою глобальную переменную pv_time.

    Обнуление pv_time будет автоматически происходить при переполнении?
    Не понял зачем нужна глобальная - в той же программе, где и пид инкрементируйте локальную переменную.
    И насчёт значения 100 не уверен, в описании написано единица измерения 1/100сек, получается надо прибавлять не 100, а 10?
    Беззнаковый тип должен сам обнулиться

  3. #9963

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Не понял зачем нужна глобальная - в той же программе, где и пид инкрементируйте локальную переменную.
    Сам PLC_PRG имеет много другого кода, в нем же и ПИД регулятор реализую. А в программе PID_Timer(PRG) только pv_time := pv_time + 10;
    Если pv_time будет не глобальная тогда она не видима будет из PLC_PRG где сам пид регулятор прописан.
    Так же если я буду реализовывать пид в PID_Timer(PRG) то куча других переменных будет невидима, которые получаются в основной проге.

    Или я концептуально не правильно подошел? И нужно пид исполнить в PID_Timer(PRG) чтобы он по Таску отрабатывал каждые 100мл сек?
    А в основной программе присваиваю значения в глобальную структуру например data_for_PID
    Последний раз редактировалось senkos; 28.09.2023 в 13:45.

  4. #9964

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    Сам PLC_PRG имеет много другого кода, в нем же и ПИД регулятор реализую. А в программе PID_Timer(PRG) в только pv_time := pv_time + 10;
    Если pv_time будет не глобальная тогда она не видима будет из PLC_PRG где сам пид регулятор прописан.
    Так же если я буду реализовывать пид в PID_Timer(PRG) то куча других переменных будет невидима, которые получаются в основной проге.
    Я не уверен, что так будет работать.
    В принципе, никто не запрещает обращаться к пеерменной другого программного блока через "ИМЯ_ПРОГРАММЫ.ИМЯ_ПЕРЕМЕННОЙ"

  5. #9965

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    То есть создаю новый программный блок PID_Timer.
    Объявляю глобальную переменную pv_time.
    В программном блоке инкрементирую pv_time := pv_time + 100;
    Создаю Таск с цикличностью 100мс и прикрепляю к нему PID_Timer.
    В основной программе в ФБ на вход Pv_Time вставляю мою глобальную переменную pv_time.

    Обнуление pv_time будет автоматически происходить при переполнении?
    На сколько я знаю, те кто работает с PID регуляторами берут циклическое время измерения прямо с нужного входа МВ110-8А (8АС) и не парятся.
    У вас этого добра уже навалом с 7 блоков.
    Последний раз редактировалось kondor3000; 28.09.2023 в 17:31.

  6. #9966

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    Сам PLC_PRG имеет много другого кода, в нем же и ПИД регулятор реализую. А в программе PID_Timer(PRG) только pv_time := pv_time + 10;
    Если pv_time будет не глобальная тогда она не видима будет из PLC_PRG где сам пид регулятор прописан.
    Так же если я буду реализовывать пид в PID_Timer(PRG) то куча других переменных будет невидима, которые получаются в основной проге.

    Или я концептуально не правильно подошел? И нужно пид исполнить в PID_Timer(PRG) чтобы он по Таску отрабатывал каждые 100мл сек?
    А в основной программе присваиваю значения в глобальную структуру например data_for_PID
    У меня примерно такой подход

  7. #9967

    По умолчанию

    Почему так получилось, когда я добавил Task с периодичностью 100мс на выполнение даже пустой программы PID_Timer(PRG), то у меня перестает работать основная программа. В плане того что на панели не выводятся даже данные. Отключаю Таск и все нормально становится.

  8. #9968

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    Почему так получилось, когда я добавил Task с периодичностью 100мс на выполнение даже пустой программы PID_Timer(PRG), то у меня перестает работать основная программа. В плане того что на панели не выводятся даже данные. Отключаю Таск и все нормально становится.

    Если диспетчер задач не используется, то по умолчанию выполняется программный блок с именем "PLC_PRG" (в режиме свободного выполнения наверное).
    Если используется диспетчер задач, то все необходимые программные блоки надо вызывать явно.
    Можете добавить основную программу в ту-же задачу, что и пид - или создать для неё ещё один task, например со свободным выполнением

  9. #9969

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Если диспетчер задач не используется, то по умолчанию выполняется программный блок с именем "PLC_PRG" (в режиме свободного выполнения наверное).
    Если используется диспетчер задач, то все необходимые программные блоки надо вызывать явно.
    Можете добавить основную программу в ту-же задачу, что и пид - или создать для неё ещё один task, например со свободным выполнением
    Спасибо! Сделал отдельными Тасками. PLC_PRG нужно тип "Свободная", а для PID тип "Циклическая". Работает ))

  10. #9970

    По умолчанию

    Цитата Сообщение от denisrus81 Посмотреть сообщение
    Здравствуйте. Прошу помочь со следующим.
    Использую библиотеку для snmp от ОВЕН. Создал нужные OSNMP.Manager, OSNMP.VARBIND. При запуске поля принимают нужные значения. Но опрос никак не стартует.Вложение 70599Вложение 70600
    это выше раздел, здесь не тот кодесис

Страница 997 из 1050 ПерваяПервая ... 49789794798799599699799899910071047 ... ПоследняяПоследняя

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

Ваши права

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