Страница 419 из 1050 ПерваяПервая ... 319369409417418419420421429469519919 ... ПоследняяПоследняя
Показано с 4,181 по 4,190 из 10492

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

  1. #4181
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,695

    По умолчанию

    Блинк вообще фигня , не используйте его !

    Дакие штуки удобно делать при помощи оператора CASE :

    (* опустим раздел объявлений *)



    Case State_engine of

    0://*Стоим*)
    Tmr_pause(In:= true ,Pt:=t#3m);
    if Tmr_pause.q then
    Tmr_pause(In:=false);
    State_engine:=10;
    end_if
    R_engine:=false;

    10://*Мослаем 10 сек*)
    R_engine:=true;
    Tmr_pause(In:=true,Pt:=t#10s);

    if Tmr_pause.Q then
    Tmr_pause(In:=false);
    State_engine:=0;
    end_if

    end_case

    Подобными конструкциями можно сколько угодно (65534) разных вариантов работы задать , в таком простом случае конечно проще на IF конструкциях сделать (см.выше пример) , но если вариантов работы-уставки больше 2х , тогда конструкция CASE рулит + 1 таймер на толпу.

  2. #4182

    По умолчанию

    Вложение 19554
    Написал тестовые таймеры для помпы и компрессора, заливаю на ПЛК100, все как надо работает, выключаю питание во время работы, включаю, ничего не сохраняется. Дату и время выставляю текущие, выкл./вкл. питание ПЛК100, все сбрасывается. Что делать? Может нужно как то сохранить после заливки кода и изменения даты и времени? Или аккумулятор дохлый?
    Спасибо всем кто помог разобраться с таймерами для помпы и компрессора, осталось разобраться с таймером для светильника, пока не пойму что да как сделать.

    ...Сейчас проверил, время сохранилось. Но я менял сутки назад, ПЛК лежал без питания, время сбросилось.

    .....Сделал "создание загрузочного проекта" отключил на 1 минуту, все сохранилось На ночь выключу его, посмотрим сохранится ли дата и программа.

  3. #4183

    По умолчанию

    PLCInfo

    PLC model MODEL PLC 100
    Binary VERSION 2.12.7
    Need Target version 2.10
    Compiled: 11:34:29 Sep 30 2010
    MAC
    IP
    GATE
    MASK
    PIC upper version is 07
    Licence unlimited
    No DAC
    PIC lower version is 0a

    Нужно ли обновлять прошивку?

  4. #4184

    По умолчанию

    Вложение 19555
    Изменил время в blink, 2 часа выкл., 5 мин. работает. Включаю, исполнение программы начинается с 2 часового отключения, а мне нужно чтобы она начиналась с 5 мин. включения, как исправить? Или как вариант можно сделать принудительный 5 минутный пуск в любое время по кнопке, решается TP, TON, TOF ? Какую кнопку можно использовать на вход?

  5. #4185
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    964

    По умолчанию

    Попробуйте ФБ GEN_PULSE из библиотеки OSCAT, а еще можно время местами поменять и инверсию на выход, вообще BLINK не самый удачный выбор

  6. #4186

    По умолчанию

    Цитата Сообщение от Dobrosed Посмотреть сообщение
    Написал такой код:
    Код:
    PROGRAM TEMP_CONTROL
    VAR
    	T1,T2: TON;
    	T1_start, T2_start: BOOL;
    END_VAR
    		T2(IN:=T2_start, PT:=T#10s);
    		T2_start := FALSE;
    		IF NOT T2.Q THEN
    			Engine1 := 1;
    			Vibrator := TRUE;
    			T1_start := TRUE;
    		END_IF;
    		T1(IN:=T1_start, PT:=T#3m);
    		IF T1.Q AND T1_start THEN
    			Engine1 := 0;
    			Vibrator := FALSE;
    			T1_start := FALSE;
    			T2_start := TRUE;
    		END_IF;
    Всё работает, только почему-то, когда запустился таймер T1 и переменой T1_start установлено значение FALSE, код под условием IF T1.Q AND T1_start выполняется заново в следующем цикле, в связи с чем не могу в другом месте запустить двигатель. Почему так?
    Потому как сразу после выполнения IF T1.Q в следующем цикле выполняется IF NOT T2.Q где у вас прописано T1_start := TRUE т.е в это же втором цикле снова вызывается IF T1.Q. Программа и должна себя вести так как вы описали.

  7. #4187
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от Sergey666 Посмотреть сообщение
    Блинк вообще фигня , не используйте его !

    Дакие штуки удобно делать при помощи оператора CASE :

    (* опустим раздел объявлений *)



    Case State_engine of

    0://*Стоим*)
    Tmr_pause(In:= true ,Pt:=t#3m);
    if Tmr_pause.q then
    Tmr_pause(In:=false);
    State_engine:=10;
    end_if
    R_engine:=false;

    10://*Мослаем 10 сек*)
    R_engine:=true;
    Tmr_pause(In:=true,Pt:=t#10s);

    if Tmr_pause.Q then
    Tmr_pause(In:=false);
    State_engine:=0;
    end_if

    end_case

    Подобными конструкциями можно сколько угодно (65534) разных вариантов работы задать , в таком простом случае конечно проще на IF конструкциях сделать (см.выше пример) , но если вариантов работы-уставки больше 2х , тогда конструкция CASE рулит + 1 таймер на толпу.
    разные то разные, но это менять только одну пеоеменную. Не стоит списывать конструкцию IF/ELSIF, с помощью неё можно создать приоритетность условий, они могут быть любыми,не обязательно число, а були как внутренние,так и внешние, возвращение результата функции и т.п.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  8. #4188

    По умолчанию

    Цитата Сообщение от RV9WFJ Посмотреть сообщение
    Потому как сразу после выполнения IF T1.Q в следующем цикле выполняется IF NOT T2.Q где у вас прописано T1_start := TRUE т.е в это же втором цикле снова вызывается IF T1.Q. Программа и должна себя вести так как вы описали.
    Ага, когда в сотый раз прочитал свой код, понял это. Только в режиме эмуляции присвоение происходит быстро и Codesys постоянно показывал FALSE. В общем, надо быть внимательнее. Спасибо. Зато мне подсказали более красивые варианты как написать код.

  9. #4189
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,695

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    разные то разные, но это менять только одну пеоеменную. Не стоит списывать конструкцию IF/ELSIF, с помощью неё можно создать приоритетность условий, они могут быть любыми,не обязательно число, а були как внутренние,так и внешние, возвращение результата функции и т.п.
    Кэп , риспект и уважуха , но эти конструкции можно и нужно комбинировать и , самое главное учиться это делать . Если бы на видео-интернет уроках от Овен это делали , меньше вопросов было-бы . А так только профанация и популизм , как-то - использование Блинк (Вообще исключить из библиотек , или доработать ) , именование каналов в конфигураторе (сколько смотрел примеров для КДС2 для других ПЛК (Не Овен) , никто так не делает ) и прочее .

  10. #4190
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    я на семене,тоже сразу именую все входы выходы и не работаю с I,IW,ID и т.д
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

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

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

Ваши права

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