Страница 773 из 773 ПерваяПервая ... 273673723763771772773
Показано с 7,721 по 7,726 из 7726

Тема: Экспресс вопрос (ответ)

  1. #7721
    Пользователь
    Регистрация
    23.02.2010
    Адрес
    Краснодар
    Сообщений
    262

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Зуб болит, поэтому от нечего делать напишу код по вашему из... В голове это выглядит так:
    Код:
    If firstbit then
       firstbit:=false;
       nextoper:=true;
       Result:=A-B;
    end if
    If nextoper and secondbit then
       nextoper:=false;
       secondbit:=false;
       Result:=Result-B
    end if
    Но тут разные дискретные сигналы... Первоначально подумал что это не один сигнал...

    Для одного:
    Код:
    If bit then
       bit:=false;
       Result:=Result-B
    end if
    МихаилГл, не спорю, возможно неверно описал задачу. Постараюсь подробнее.
    Есть переменная А, переменная В. По сигналу, например EN, на выход ФБ подается значение переменной А. Далее при поступлении "строба" (имульса) на второй дискретный вход на выходе ФБ будет А-В. При следующем "стробе" предыдущее значение (А-В)-В и т.д.
    Т.е., если кратко: есть две уставки - А, С. Есть шаг, например 10. Получается (А - С)/10 = В. Первый строб А-В, второй строб предудущее значение - В и т.д.

  2. #7722

    По умолчанию

    Цитата Сообщение от ALFIX Посмотреть сообщение
    МихаилГл, не спорю, возможно неверно описал задачу. Постараюсь подробнее.
    Есть переменная А, переменная В. По сигналу, например EN, на выход ФБ подается значение переменной А. Далее при поступлении "строба" (имульса) на второй дискретный вход на выходе ФБ будет А-В. При следующем "стробе" предыдущее значение (А-В)-В и т.д.
    Т.е., если кратко: есть две уставки - А, С. Есть шаг, например 10. Получается (А - С)/10 = В. Первый строб А-В, второй строб предудущее значение - В и т.д.
    "При следующем стробе... ", а на какой из входов не сказано... Точнее, точнее)
    Код:
    If firstbit then
       firstbit:=false;
       nextoper:=true;
       Result:=A;
    end if
    If nextoper and secondbit then
       secondbit:=false;
       Result:=Result-B;
    end if

  3. #7723
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,128

    По умолчанию

    Цитата Сообщение от ALFIX Посмотреть сообщение
    МихаилГл, не спорю, возможно неверно описал задачу. Постараюсь подробнее.
    Есть переменная А, переменная В. По сигналу, например EN, на выход ФБ подается значение переменной А. Далее при поступлении "строба" (имульса) на второй дискретный вход на выходе ФБ будет А-В. При следующем "стробе" предыдущее значение (А-В)-В и т.д.
    Т.е., если кратко: есть две уставки - А, С. Есть шаг, например 10. Получается (А - С)/10 = В. Первый строб А-В, второй строб предудущее значение - В и т.д.
    Второй абзац не очень понял, а по первому так
    Безымянный.png

  4. #7724

    По умолчанию

    Судя по всему - плавное изменение уставки для безударного перехода.

    Если не ошибся с предсказанием, то такую задачу решал так - приближение с заданным шагом, завершение, когда очередной шаг был меньше заданного. Только приближение не по внешнему разрешению, а по таймеру раз в секунду
    Изображения Изображения
    • Тип файла: png 1.PNG (19.9 Кб, Просмотров: 9)
    • Тип файла: png 2.PNG (29.8 Кб, Просмотров: 8)

  5. #7725

    По умолчанию

    Цитата Сообщение от ALFIX Посмотреть сообщение
    Работает как надо, но за время имульса по входу stp разность производится несколько раз.
    Вход на вход ENA однократно подается импульс в начале цикла.
    По входу, можно было добавить R_Trig (можно прямо в ФБ) и не будет считать несколько раз.
    Можно и без триггера, только одну переменную добавить x: Bool;
    Код:
    var
       x:bool;
    end_var
    
    if ENA then
          Q :=START;
         else
       if stp and not x and Q>0 then   //  Q>0 без отрицательных чисел на выходе
          Q := Q-RAZN; x:=true;    
         elsif not stp and x then
           x:=false;    
        end_if    
    end_if
    end_function_block
    Последний раз редактировалось kondor3000; Вчера в 08:45.

  6. #7726
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,238

    По умолчанию

    Так если значение "В" не меняется, проще можно сделать, в смысле, счётчик поставить: С = А - (В х N),
    где N - значение счётчика! У товарища формула конечно непонятная, в смысле, никто не понял, а объяснение понятное, мне кажется, формулу не стоило бы выводить!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 773 из 773 ПерваяПервая ... 273673723763771772773

Похожие темы

  1. ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)
    от Serge_UA в разделе ПЛК (среда CoDeSys V2.3)
    Ответов: 10426
    Последнее сообщение: Вчера, 21:06
  2. CODESYS V3.5. Вопросы и ответы
    от ООО "БЛС инжинеринг" в разделе ПЛК (среда CODESYS V3.5)
    Ответов: 7074
    Последнее сообщение: Вчера, 17:56
  3. вопрос-ответ , или а поговорить????
    от Павел Братковский в разделе Трёп (Курилка)
    Ответов: 10
    Последнее сообщение: 24.01.2018, 11:05
  4. Преобразовать ответ
    от IIeroniux в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 05.10.2015, 17:45

Ваши права

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