Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 28

Тема: Запись переменной

  1. #1

    По умолчанию Запись переменной

    Делаю счетчик м/ч на ST. Необходима запись в переменные через экран. Проблема в том, что переменные участвует в цикле счетчиков. Пришлось создать дополнительные входы и панели ввода на экране.
    Вложения Вложения

  2. #2

    По умолчанию

    Цитата Сообщение от pahotnyh Посмотреть сообщение
    Делаю счетчик м/ч на ST. Необходима запись в переменные через экран. Проблема в том, что переменные участвует в цикле счетчиков. Пришлось создать дополнительные входы и панели ввода на экране.
    На 7 винде у меня не работает версия OWEN Logic2.10.365, дома на 10 винде всё работает.
    можете перенести в версию OWEN Logic2.9.364 ?
    Последний раз редактировалось kondor3000; 17.04.2025 в 15:36.

  3. #3

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    На 7 винде у меня не работает версия OWEN Logic2.10.365, дома на 10 винде всё работает.
    можете перенести в версию OWEN Logic2.9.364 ?
    Не дает. Требует обновить версию(

  4. #4

    По умолчанию

    Скрытый текст:
    FUNCTION_BLOCK RunTime_Counter //имя функционального блока
    VAR_INPUT //объявление входных переменных
    Run : BOOL; //разрешение работы
    Set : BOOL; //запись уставок времени
    Res : BOOL; //сброс счетчиов
    Ih, Im, Is, Ion: UDINT; //входы уставок
    Fh, Fm, Fs, Fon: UDINT; //вход обратной связи от внешних переменных
    END_VAR

    VAR_OUTPUT //объявление выходных переменных
    Q_out : UDINT;
    Qh, Qm, Qs, Qon: UDINT; //выходы времени и количества включений
    END_VAR

    VAR //объявление локальных переменных
    T, T1: UDINT;
    C_ : BOOL; //секундне импульсы в счетчик
    CTN_1: SYS.CTN; //объявление уиверсального счетчика м/ч
    Tic : BOOL; //переменная секундного генератора
    SP : UDINT; //уставка универсального счетчика м/ч
    RTrig_1: SYS.RTRIG; //объявление Rtrig_1 счетчика включений
    Run1 : BOOL; //выход Rtrig_1
    CTN_2: SYS.CTN; //объявление уиверсального счетчика включений
    SP1 : UDINT; //уставка универсального счетчика включений
    END_VAR

    //область кода
    T:= TIME_TO_UDINT(GET_TIME());
    Tic:= T-T1 >=1000;
    IF Run AND Tic THEN T1:=T; C_:=TRUE; ELSE C_:=FALSE; END_IF;
    CTN_1(U := C_, D := FALSE, R := Set OR Res, N :=SP, Q => Q_out);
    IF Set AND NOT Res THEN
    Qh:=Ih;
    Qm:=Im;
    Qs:=Is;
    SP1:=Ion;
    ELSIF Res THEN
    Qh:=0;
    Qm:=0;
    Qs:=0;
    SP:=0;
    SP1:=0;
    ELSE
    Qh:=(Q_out/3600);
    Qm:=(Q_out-Qh*3600)/60;
    Qs:=(Q_out-Qh*3600)-(Qm*60);
    SP1:=Qon;
    END_IF;
    SP:=(Fh*3600+Fm*60+Fs);
    RTrig_1(I:=Run, Q => Run1);
    CTN_2(U := Run1, D := FALSE, R := Set OR Res, N :=SP1, Q => Qon);
    SP1:=Fon;

    END_FUNCTION_BLOCK




    Изображения Изображения
    Последний раз редактировалось pahotnyh; 17.04.2025 в 15:51.

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

    По умолчанию

    Ну, как-то так
    Вложения Вложения

  6. #6

    По умолчанию

    Цитата Сообщение от pahotnyh Посмотреть сообщение
    Делаю счетчик м/ч на ST. Необходима запись в переменные через экран. Проблема в том, что переменные участвует в цикле счетчиков. Пришлось создать дополнительные входы и панели ввода на экране.
    Зачем делать обратную связь по 3 переменным (час, мин, сек) , если можно по одной, Время Таймера.
    А те самые (час, мин, сек) использовать для задачи.

  7. #7

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Ну, как-то так
    Спасибо за науку. Разбираюсь. Оригинально счетчики на внешних переменных сделать.
    Вход SetOn, выход sOn не работают. Но работает запись в cOn, cOn_.
    Часть синтаксиса из "взрослого" ST? В мануале используемые вами конструкции не рассмотрены.
    Последний раз редактировалось pahotnyh; 17.04.2025 в 19:44.

  8. #8

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Ну, как-то так
    В вашем примере переменная Work энергонезависимая. Если каждую секунду писать ее, то ресурса памяти в ПР205 хватит на сутки. Или я ошибаюсь?

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

    По умолчанию

    Цитата Сообщение от pahotnyh Посмотреть сообщение
    В вашем примере переменная Work энергонезависимая. Если каждую секунду писать ее, то ресурса памяти в ПР205 хватит на сутки. Или я ошибаюсь?
    В ПРках энергонезависимые переменные записываются на флэшку только при потери питания

    Вход SetOn, выход sOn не работают.
    Забыл я про нее
    Вот допишите
    Код:
    if Run then
            if T-T1 >= 1000 then 
                Work := Work_ +1;
                T1 := T;
            end_if
            cOn := cOn_ + bool_to_udint(RunTrig.Q);
            sHour := Work / 3600;
            sMin := (Work / 60) mod 60;
            sSec := Work mod 60;
            sOn := cOn;
        else
    Последний раз редактировалось Dimensy; 17.04.2025 в 20:18.

  10. #10

    По умолчанию

    Тоже самое, только в версии OWEN Logic2.6.345.

    Жалко только, что при отключении питания ничего не сохраняется.
    Вложения Вложения
    Последний раз редактировалось kondor3000; 17.04.2025 в 23:14.

Страница 1 из 3 123 ПоследняяПоследняя

Похожие темы

  1. Запись переменной из Облака в проект
    от Чили-Рома в разделе Облачный сервис OwenCloud
    Ответов: 2
    Последнее сообщение: 26.11.2018, 08:09
  2. Запись и чтение значения переменной
    от kastor163 в разделе СПК2xx (архив)
    Ответов: 5
    Последнее сообщение: 15.06.2017, 12:20
  3. Запись OPC переменной
    от ALEXSP в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 04.12.2015, 15:32
  4. Запись в переменной из другой FB
    от DmitriiAnyushin в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 22.09.2015, 15:12
  5. Ответов: 4
    Последнее сообщение: 24.04.2009, 09:44

Ваши права

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