Страница 27 из 53 ПерваяПервая ... 17252627282937 ... ПоследняяПоследняя
Показано с 261 по 270 из 521

Тема: Функциональные блоки на языке ST

  1. #261

    По умолчанию

    Цитата Сообщение от Samel Посмотреть сообщение
    Так тоже нельзя
    Так можно, а если у вас не работает то, читайте
    Цитата Сообщение от 1exan Посмотреть сообщение
    Там проблема походу не в чтении, а в том, что тип у конструкции "tStepTP.PT" неопределён
    Вы вообще судя по коду даже таймер не вызвали, и РТ не присвоили.
    Последний раз редактировалось kondor3000; 29.09.2023 в 09:51.

  2. #262

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Так можно, а если у вас не работает то, читайте

    Вы вообще судя по коду даже таймер не вызвали, и РТ не присвоили.
    owen.png
    Что еще я забыл сделать ?

  3. #263

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Где, в ОЛ? Покажите картинку где Вы можете соединить два входа любых элементов на холсте, это концепция среды разработки, если менять положение дел в СТ значит и с квадратами придется что то мутить
    На FBD и CFC тоже нельзя, а на ST можно

  4. #264

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Ну так ведь в КДС, а не в ОЛ, ST это не перенос из КДС языка программирования, это просто название Structured text
    Выход здесь один, не использовать входные аргументы, а то что им присваивается по коду
    Да это все понятно. Это просто пример, который нигде не документирован. Но таких же приколов дофига. В эмуляторе работает - в ПР вообще не запускается.

  5. #265

    По умолчанию

    Цитата Сообщение от Samel Посмотреть сообщение
    Что еще я забыл сделать ?
    Проверил, TON1.PT нельзя сравнивать, а входную переменную можно, вот скрин 1 Присвоение в ФБ.jpg Помню, что уже делал подобное
    Код:
         var //объявление локальных переменных
           TON1:TON;
        end_var
                  
           TON1(In:=OnTim, T_z:=T_z, PT:=CurMinute, Q=>Res, ET=>ET);
           
           if CurMinute<>0 then
            TON1.PT:=5;   
           end_if
    И так ещё
    Код:
           if ET < CurMinute then
            TON1.PT:=5;   
           end_if
    Последний раз редактировалось kondor3000; 29.09.2023 в 10:42.

  6. #266

    По умолчанию

    вот так не работает
    Код:
       case stepTP of 
         
                1:   
                    tStepTP(IN := true, PT := 5, sec := sec);               
                    if tStepTP.Q THEN
                        tStepTP(IN := false); 
                        stepTP := 2;
                    end_if
    
     (*        2:  
                    tStepTP(IN := true, PT := 10, sec := sec);
                    if tStepTP.Q THEN
                        tStepTP(IN := false); 
                        stepTP := 3;
                    end_if
            3:  
                    tStepTP(IN := true, PT := 15, sec := sec);
                    if tStepTP.Q THEN
                        tStepTP(IN := false);
                        stepTP := 4;
                    end_if  
            else
    ;*)
        end_case
    вот так :
    Код:
       case stepTP of 
         
                1:   
                    tStepTP(IN := true, PT := 5, sec := sec);               
                    if tStepTP.Q THEN
                        tStepTP(IN := false); 
                        stepTP := 2;
                    end_if
    
            2:  
                    tStepTP(IN := true, PT := 10, sec := sec);
                    if tStepTP.Q THEN
                        tStepTP(IN := false); 
                        stepTP := 3;
                    end_if
            3:  
                    tStepTP(IN := true, PT := 15, sec := sec);
                    if tStepTP.Q THEN
                        tStepTP(IN := false);
                        stepTP := 4;
                    end_if  
            else
    
        end_case
    получим owen.png

  7. #267

    По умолчанию

    вот так
    check_ON(CLK := START);
    if check_ON.q then
    stepTP := 1;
    in := TRUE;
    tStepTP.PT := 5;
    end_if
    if NOT START AND stepTP <> 0 then stepTP := 0;
    end_if

    tStepTP(IN:= in, sec := sec);
    case stepTP of

    1:
    if tStepTP.Q THEN
    in := fALSE;
    tStepTP(IN := in);
    in := TRUE;
    tStepTP.PT := 10;
    stepTP := 2;
    end_if

    2:
    if tStepTP.Q THEN
    in := fALSE;
    tStepTP(IN := in);
    in := TRUE;
    tStepTP.PT := 15;
    stepTP := 3;
    end_if
    (* 3:

    if tStepTP.Q THEN
    in := fALSE;
    tStepTP(IN := in);
    stepTP := 4;
    end_if *)
    end_case
    работает только первая ветвь.
    если раскомментировать"3" - эмулятор выбивает ошибку как в прошлом примере.

  8. #268

    По умолчанию

    Любой вызов fb в теле case не отрабатывает, ну или он вообще не вызывается.

  9. #269

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    я бы и в КДС так не делал, вызов таймера сделайте после кейсов, а в них только присваивайте время и по условию переходите, запись же работает, сами писали
    Это второй вариант (вызов правда перед case). Я просто набрасываю примеры )

  10. #270

    По умолчанию

    просто сброс/останов таймера через tStepTP(IN := false) в case не работает

Страница 27 из 53 ПерваяПервая ... 17252627282937 ... ПоследняяПоследняя

Похожие темы

  1. ПЛК73 (Функциональные кнопки)
    от necro в разделе ПЛК63/73
    Ответов: 8
    Последнее сообщение: 18.05.2022, 10:03
  2. Функциональные блоки
    от ribamuka в разделе СПК2хх
    Ответов: 4
    Последнее сообщение: 08.04.2018, 15:01
  3. Функциональные блоки насосов в CoDeSys
    от Алексей Ермолаев в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 28.03.2017, 13:50
  4. Функциональные блоки- где искать?
    от Xops в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 01.03.2016, 11:07
  5. СПК функциональные клавиши
    от Lyohin в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 30.03.2015, 15:10

Ваши права

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