Страница 461 из 1044 ПерваяПервая ... 361411451459460461462463471511561961 ... ПоследняяПоследняя
Показано с 4,601 по 4,610 из 10436

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

  1. #4601

  2. #4602

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Util.lib / RAMP_INT
    Спасибо

  3. #4603

    По умолчанию

    Такой вопрос!
    ПЛК 100 работают через TCP/IP, время от времени зависают. Находятся в разных цехах, работают с разными OPC серверами. Общая только сеть. Зависают в одно и тоже время! что может быть?
    Сеть в порядке, зависают только ПЛК.

  4. #4604
    Пользователь
    Регистрация
    22.02.2013
    Адрес
    г.Тихорецк, Краснодарский край
    Сообщений
    384

    По умолчанию

    Как выполнить вызов визуализации по событию, которое в ней произошло? Имеется три визуализации в проекте. В каждой из них есть переменная, которая по событию переходит в true. Нужно, чтобы автоматически открывалась эта визуализация при изменении значения этой переменной.. В визулизации кдс написано невнятно по этой теме-помогите, пожалуйста, примером или словами поконкретнее..

  5. #4605

    По умолчанию

    Здравствуйте!
    Есть двигатель, его включают и выключают. И бывает он сгорает. Необходимо учесть время, которое отработал двигатель. И при замене обнулить счетчик.
    На входной канал плк подается значение тока двигателя.
    Решение.
    Тут все просто и понятно
    Если Ток > 0 запустить секундомер.
    Когда Ток=0 остановить секундомер.
    Величину что получили Присвоить переменной "Время Работы".
    При замене передать сигнал управления и обнулить переменную "Время Работы"
    Вопрос, Как запустить секундомер в плк. Таймеры они идут от заданной величины времени к 0.

    timV1(I > 0, PT := T#1s, x:=x+1 Q =0) Вот такое решение будет правильное?

  6. #4606
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от Evgenyi Посмотреть сообщение
    Здравствуйте!
    .....
    На входной канал плк подается значение тока двигателя.
    Решение.
    Тут все просто и понятно
    Если Ток > 0 запустить секундомер.
    Когда Ток=0 остановить секундомер.
    Величину что получили Присвоить переменной "Время Работы".
    .....
    Вопрос, Как запустить секундомер в плк.
    ......
    Код:
    VAR
        I: REAL;
        R_TRIG_1: R_TRIG;
        Start: TIME;
        F_TRIG_1: F_TRIG;
        Tim_work: TIME;
    END_VAR
    
    R_TRIG_1(CLK:= I>0, Q=> );
    IF R_TRIG_1.Q THEN
        Start:=TIME();
    END_IF
    F_TRIG_1(CLK:=I>0 , Q=> );
    IF F_TRIG_1.Q THEN
        Tim_work:=TIME()-Start;
    END_IF
    Время будет в формате TIME

    PS.
    двигатель, его включают и выключают. И бывает он сгорает. Необходимо учесть время, которое отработал двигатель
    Код:
    VAR
    VAR
        I: REAL;
        R_TRIG_1: R_TRIG;
        Start: TIME;
        F_TRIG_1: F_TRIG;
        Tim_Cycle: TIME;        (*Время работы двигателя от последнего пуска*)
    END_VAR
    VAR RETAIN
        Time_Sum: UDINT;        (*Время работы двигателя, ИТОГО*)
        Cycle: UDINT;        (*Число пусков двигателя*)
    END_VAR
    
    
    R_TRIG_1(CLK:= I>0, Q=> );
    IF R_TRIG_1.Q THEN
        Start:=TIME();
        Cycle:=Cycle+1;
    END_IF
    F_TRIG_1(CLK:=I>0 , Q=> );
    IF F_TRIG_1.Q THEN
        Tim_Cycle:=TIME()-Start;
        Time_Sum:=Time_Sum + TIME_TO_UDINT(Tim_Cycle)/1000;
    END_IF
    Время наработки двигателя в секундах
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #4607

    По умолчанию

    Написал несколько программ на базе PID_2POS_IM_ANR ПИД-регулятора с автонастройкой. Пока не создал загрузочного проекта в ПЛК все было чудесно, коэффициенты подбирались довольно хорошо. Однако, эти коэффициенты, как оказалось, не сохраняются в памяти ПЛК! Т.е. после отключения питания данные стираются. Есть ли варианты запоминания коэффициентов (может к ним удастся подобраться через библиотеку)?

  8. #4608
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    В документации про реманентные переменные читайте (RETAIN).

  9. #4609

    По умолчанию

    Уважаемые форумчане, подскажите начинающему инженеру как реализовать сей

    проект(восстанавливаю погрузчик):

    крутишь руль и колесо отрабатывает тот же угол поворота , имеются следующие компоненты:

    Есть датчик угла поворота руля которым управляют и датчик угла поворота

    колеса. они оба подключены на 1 и 2 входы Fast analog inputs.

    Все собрано на контроллере PLC160.

    К выходам уже прикручены устройства для управления силовой сетью(но для пробы прикрутил

    лампочки на 24V одна влево, другая вправо). они обе подключены на 1 и 2 входы Discrete

    outputs.

    Думаю что надо задать переменные на вход аналоговых сигналов
    и при разнице подать сигнал на дисретные выходы и если разница будет положительна, то

    загорается лампочка вправо, если отрицательна, то влево.


    Пока писал, догадался ,но не до конца.

    надо бы выставить погрешность побольше у аналоговых входов(то есть к примеру значение 5,2312 преобразовать в 5 ) в значениях, а то двигатель не остановиться резко и "загорается другая лампа"Вложение 21757

  10. #4610
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от Evgenyi
    Здравствуйте!
    Вы мне подсказали как учитывать время работы.
    А можете мне подсказать как отслеживать время работы, не после выключения, а в момент работы!
    И в момент работы и после выключения
    Код:
    VAR
        I: REAL;
        R_TRIG_1: R_TRIG;
        Start: TIME;
        Tim_Cycle: UDINT;        (*Время работы двигателя в текущем цикле работы в секундах*)
        delta: UDINT;
        Time_SumOld: UDINT;
        Tim_CycleOld: UDINT;    (*Время работы двигателя в предыдущем цикле работы в секундах*)
    END_VAR
    VAR RETAIN
        Time_Sum: UDINT;        (*Время работы двигателя, ИТОГО  в секундах*)
        Cycle: UDINT;        (*Число пусков двигателя*)
    END_VAR
    
    R_TRIG_1(CLK:= I>0, Q=> );
    IF R_TRIG_1.Q THEN
       Start:=TIME();
       Cycle:=Cycle+1;
    END_IF
    
    IF  I>0 THEN
        delta:=TIME_TO_DWORD(TIME()-Start)/1000;
        Tim_Cycle:=delta;
        Time_Sum:=Time_SumOld +delta;
    ELSE
        Time_SumOld:=Time_Sum;
        Tim_CycleOld:=Tim_Cycle;
    END_IF
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Страница 461 из 1044 ПерваяПервая ... 361411451459460461462463471511561961 ... ПоследняяПоследняя

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

Ваши права

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