Страница 1032 из 1050 ПерваяПервая ... 325329329821022103010311032103310341042 ... ПоследняяПоследняя
Показано с 10,311 по 10,320 из 10495

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

  1. #10311

    По умолчанию

    Цитата Сообщение от Easy_Enemy Посмотреть сообщение
    Прошу прощения, не правильно написал изначально, и народ запутал, уже голова не варила: заслонки трехпроводные, двухфазные, без отслеживания положения.
    И сейчас неправильно!
    Могу лишь догадываться, но скорее всего разговор про привод КЗР (клапан запорно-регулирующий) без датчика положения.
    И раз привод трёхпроводный, то никак не "двухфазный" (это вообще в нашем бренном мире существует???).
    Цитата Сообщение от Easy_Enemy Посмотреть сообщение
    Собственно, описанное с использованием REAL - были функции отслеживания текущего положения заслонки по времени ее работы.
    а люфт заслонки и привода, время выбега, инерционный выбег и т.д. учитывали?
    если нет, то уже через день весь ваш расчёт (функции отслеживания текущего положения заслонки) будет показывать это положение в попугаях.

  2. #10312

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Прочитал два раза, ничего не понял

    Посмотрел ещё раз ваш проект:
    Вы объявляете выходы в конфигурации:
    Вложение 73596
    а потом здесь зачем то читаете их состояние
    Код:
    Ven[1].Flap.Open:=Flap1Open;
    Ven[1].Flap.Close:=Flap1Close;

    Вы ничего не путаете?
    Как сказал capzap - неуемный метод тыка.. Предполагалось, что, таким образом их можно засунуть (выходы) в массив. Эт уже пробовал менять местами (а вдруг..). "Вдруг" не случилось. Теперь все работает. Может не очень красиво, но работает:
    Код:
    Ven[3].Flap.Num := ADR(%QB3.0);
    
    Ven[3].Flap.Num^.0 := Ven[3].Flap.Close; (* Бит 0, Заслонка 3, закрыть *)
    Ven[3].Flap.Num^.1 := Ven[3].Flap.Open;  (* Бит 1, Заслонка 3, открыть *)
    Соответственно - Ven[3].Flap.Num : Pointer to Byte
    Последний раз редактировалось Easy_Enemy; 15.02.2024 в 18:49.

  3. #10313

    По умолчанию

    Цитата Сообщение от west Посмотреть сообщение
    И сейчас неправильно!
    Могу лишь догадываться, но скорее всего разговор про привод КЗР (клапан запорно-регулирующий) без датчика положения.
    И раз привод трёхпроводный, то никак не "двухфазный" (это вообще в нашем бренном мире существует???).
    Правильно. Изначально озвучили "по фазе на каждую сторону"

    Цитата Сообщение от west Посмотреть сообщение
    а люфт заслонки и привода, время выбега, инерционный выбег и т.д. учитывали?
    если нет, то уже через день весь ваш расчёт (функции отслеживания текущего положения заслонки) будет показывать это положение в попугаях.
    Уже по факту наблюдений. Сейчас основное - запустить. Подстройка - как получится, не успеваю (да и не хочу) заниматься всем, но не попишешь.. Самой регулировкой будет заниматься пид, а ему, как водится, плевать на погрешность в пару градусов, есть обратная связь в виде скорости воздушного потока. Увидим позже
    Последний раз редактировалось Easy_Enemy; 15.02.2024 в 19:19.

  4. #10314

    По умолчанию

    Цитата Сообщение от Easy_Enemy Посмотреть сообщение
    Как сказал capzap - неуемный метод тыка.. Предполагалось, что, таким образом их можно засунуть (выходы) в массив. Эт уже пробовал менять местами (а вдруг..). "Вдруг" не случилось. Теперь все работает. Может не очень красиво, но работает:
    Код:
    Ven[3].Flap.Num := ADR(%QB3.0);
    
    Ven[3].Flap.Num^.0 := Ven[3].Flap.Close; (* Бит 0, Заслонка 3, закрыть *)
    Ven[3].Flap.Num^.1 := Ven[3].Flap.Open;  (* Бит 1, Заслонка 3, открыть *)
    Соответственно - Ven[3].Flap.Num : Pointer to Byte
    Да надо было просто в вашем первом варианте так и написать:

    Flap1Open := Ven[1].Flap.Open;
    Flap1Close := Ven[1].Flap.Close;
    Flap2Open := Ven[2].Flap.Open;
    ...

  5. #10315

    По умолчанию

    Цитата Сообщение от Easy_Enemy Посмотреть сообщение
    Правильно. Изначально озвучили "по фазе на каждую сторону"



    Уже по факту наблюдений. Сейчас основное - запустить. Подстройка - как получится, не успеваю (да и не хочу) заниматься всем, но не попишешь.. Самой регулировкой будет заниматься пид, а ему, как водится, плевать на погрешность в пару градусов. Увидим позже
    Регулятор - что с аналоговым выходом, что с дискретными открыть/закрыть - может вообще обходиться без информации о текущем положении заслонки

  6. #10316

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Да надо было просто в вашем первом варианте так и написать:

    Flap1Open := Ven[1].Flap.Open;
    Flap1Close := Ven[1].Flap.Close;
    Flap2Open := Ven[2].Flap.Open;
    ...
    С этого и началась вся тема - так не работает в режиме калибровки, который состоит из нескольких шагов CASE. Вся история заканчивается тем, что видно, что происходит на каждом шаге и даже присваиваются значения в Ven[1].Flap.Open, но не в Flap1Open.
    Условно
    Код:
    CASE step Of
    1: .... 
     Ven[1].Flap.Open:=true;
     ...
     ...
    2: ...
     Ven[1].Flap.Close:=true;
    ...
    ...
    END_CASE
    Так не работает. Ven[1].Flap.Open / Close - меняют значения, но не пишут их в выходы.


    Код:
    CASE step Of
    1: .... 
     Flap1Open:=true;
     ...
     ...
    2: ...
     Flap1Close:=true;
    ...
    ...
    END_CASE
    Так работает, но это уже не массив

    Поэтому вчера перешел на побитовую адресацию

    Цитата Сообщение от 1exan
    Регулятор - что с аналоговым выходом, что с дискретными открыть/закрыть - может вообще обходиться без информации о текущем положении заслонки
    С положением-то проблем не было, как раз..
    Последний раз редактировалось Easy_Enemy; 15.02.2024 в 19:17.

  7. #10317

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Мдяяя. Чего то не работало. Был выложен фрагмент в котором куча вопросов. После оказалось что фрагмент не тот. А тот что тот - тоже не работает. Потом, снова внезапно, оказалось проблема не в том фрагменте который не выложился, а совсем в другом месте. Но в том месте тоже работает не так. Зато - маппирование, прямая адресация, глубокомысленные думки про скорость..
    Но надо запустить. Как нибудь))
    Цитата Сообщение от Easy_Enemy Посмотреть сообщение
    Отлично работает, видно включение выхода на ПЛК, видно движение в визуализации.
    Вчера написал режим калибровки/антизалипания (время от времени полностью открывать, потом закрывать для синхронизации положения) и проблема, в том, что, по каким-то причинам данный функция пытается выполниться за 1 цикл ПЛК, то есть не записывает выходные переменные. Подскажите, как обыграть данную ситуёвину( Максимально упрощенный блок калибровки:
    Цитата Сообщение от Easy_Enemy Посмотреть сообщение
    Таймеры и внутри и за CASE - работают. Работает и счетчик шагов, но не присваивались значения на выходы ПЛК..
    Вопрос по сути, не по содержимому. Содержимое менялось раз 500 в попытке дойти до чего-то

  8. #10318
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,256

    По умолчанию

    Ну да. Все отлично работает. Только не записывает. И надо дойти до чего нибудь. Чтоб записывало. А так - все хорошо. Даже 500 вариантов

  9. #10319

    По умолчанию

    Думаю надо с нуля переработать код. Обычно это помогает.
    Я год прорабатывал программу для управления механизмом с 32мя датчиками, всеми авариями от не сошёл с концевого до одновременно нажатых кнопок. 3 раза переделывал. Теперь только в проекты его вставляю и не задумываюсь как там что работает.

  10. #10320

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Думаю надо с нуля переработать код. Обычно это помогает.
    Я год прорабатывал программу для управления механизмом с 32мя датчиками, всеми авариями от не сошёл с концевого до одновременно нажатых кнопок. 3 раза переделывал. Теперь только в проекты его вставляю и не задумываюсь как там что работает.
    По-большому счету - так и получилось. Единственное - пока так и не понял, как можно обработать быстрые дискретные выходы в массиве, но пока забью, решилось и без них.

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

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

Ваши права

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