Страница 401 из 1043 ПерваяПервая ... 301351391399400401402403411451501901 ... ПоследняяПоследняя
Показано с 4,001 по 4,010 из 10426

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

  1. #4001
    Пользователь Аватар для Ryzhij
    Регистрация
    15.04.2013
    Адрес
    Рязань
    Сообщений
    918

    По умолчанию

    Цитата Сообщение от schlosser Посмотреть сообщение
    Это понятно. Но хочется понять почему, и как это устранить
    Я в таких случаях делаю задержку разрешения обработки аналоговых сигналов после включения питания на время, достаточное чтобы периферия "пришла в себя". По-старинке именую сей таймер "задержка на прогрев". Пол-минуты обычно достаточно.

  2. #4002
    Пользователь
    Регистрация
    09.03.2010
    Адрес
    Ключ Златоглавой
    Сообщений
    8

    По умолчанию

    Я в таких случаях делаю задержку
    И как делать эту задержку, можно по подробней? Пробовал после LE ставить AND и TON , но что то не получилось. Единственное может я время мало ставил, секунд 5

  3. #4003
    Пользователь Аватар для shagin
    Регистрация
    23.03.2015
    Адрес
    Саратов
    Сообщений
    6

    По умолчанию

    Цитата Сообщение от schlosser Посмотреть сообщение
    И как делать эту задержку, можно по подробней? Пробовал после LE ставить AND и TON , но что то не получилось. Единственное может я время мало ставил, секунд 5
    поробовал поставить после LE блок TON. у меня все работает - включается через заданное время

  4. #4004
    Пользователь
    Регистрация
    09.03.2010
    Адрес
    Ключ Златоглавой
    Сообщений
    8

    По умолчанию

    У меня проблема в том, что при подачи питания на плк и мв 8а на LE проскакивает импульс который активирует триггеры , хотя не должен температура плюсовая.

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

    По умолчанию

    Цитата Сообщение от schlosser Посмотреть сообщение
    Добрый день. Столкнулся с такой проблемой. a_p это температурный датчик, подключен у МВ100. 8А. При снижении температуры ниже 0 гр. включаются Pusk1 и A_pusk, так и должно быть. Но у меня проблема в том, что Pusk1 и A_pusk активируются при включении ПЛК и МВ при плюсовой температуре. Подскажите где искать?
    Вложение 18365
    Цитата Сообщение от schlosser Посмотреть сообщение
    Это понятно. Но хочется понять почему, и как это устранить
    Цитата Сообщение от schlosser Посмотреть сообщение
    У меня проблема в том, что при подачи питания на плк и мв 8а на LE проскакивает импульс который активирует триггеры , хотя не должен температура плюсовая.
    Блин, столько постов наплодили.
    Ни каких отрицательных значений при включении не проскакивает!
    Ну не ужели не понятно, что условие "LE" по русски "меньше или равно". При старте программы переменная a_p однозначно равна "0" до тех пор пока не прочитается значение из модуля МВ. По этому при старте программы условие a_p=0 выполняется всегда, R_TRIG срабатывает и Ваши Pusk1 и A_pusk закономерно установятся в TRUE. Это даже в эмуляции можно проверить.
    Вложение 18370
    Замените "LE" на "LT", или сравнивайте не с "0", а с"-0.5", например.

    ЗЫ. Если уж очень хочется строгое выполнение условия "<=", то сделать так
    Вложение 18371
    Порядок ФБ важен, таймер ТР должен выполнятся раньше чем LE. Уставку для таймера подобрать по факту.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #4006
    Пользователь
    Регистрация
    09.03.2010
    Адрес
    Ключ Златоглавой
    Сообщений
    8

    По умолчанию

    Спасибо, всё заработало.

  7. #4007
    Пользователь Аватар для VanoKing
    Регистрация
    27.07.2011
    Адрес
    Уфа
    Сообщений
    47

    По умолчанию ПЛК63

    Есть ПЛК63 с модулем МК110.8Д.4Р
    в основной программе реализована связь между ними
    в подпрограммах ST_1; - ST_5; реализация плавного регулирования 5ти групп светильников подключенных на выхода 0-10V от кнопок пульта(задание сцен освещения 4шт) и от выключателей.

    От выключателей все работает нормально, каждая отдельная группа регулируется своим выключателем плавно изменяется напряжение на выходе от 0 до 10 или от 10 до 0
    От одной кнопоки пульта регулируются сразу все группы освещения, так называемая сцена освещения.
    Проблема: регулировка на первых двух выходах(AO2,АО3) происходит плавно, а на последних трех(АО4,5,6) скачком, хотя все подпрограммы одинаковы и в онлайн симуляции регулирование плавное, в реальности проверено тестером на выходах скачок

    Пробовал увеличить время цикла выполнения программы отличное от 1ms - тогда пропадает связь.
    Пробовал заменить контроллер - все тоже, плавности нет

  8. #4008

    Post

    задача перегнать bit в word и обратно, подскажите пожалуйста все ли я правильно делаю

    Код:
    PROGRAM PLC_PRG
    VAR
    	Var_Word: WORD;
    	Byte_low: BYTE;
    	Byte_hi: BYTE;
    	Byte_low2: BYTE;
    	Byte_hi2: BYTE;
    	Bit1: BOOL;
    	Bit2: BOOL;
    	Bit3: BOOL;
    	Bit4: BOOL;
    	Bit5: BOOL;
    	Bit7: BOOL;
    	Bit8: BOOL;
    	Bit9: BOOL;
    	Bit10: BOOL;
    	Bit6: BOOL;
    	Bit11: BOOL;
    	Bit12: BOOL;
    	Bit13: BOOL;
    	Bit14: BOOL;
    	Bit15: BOOL;
    	Bit16: BOOL;
    
    	Bits: ARRAY [1..16] OF BOOL;
    
    	UNPACK1: UNPACK;
    	UNPACK2: UNPACK;
    	PACK1: UNPACK;
    	PACK2: UNPACK;
    END_VAR
    
    
    (*заполняем биты (библиотека UTIL)*)
    Bit1:=1;
    Bit2:=0;
    Bit3:=0;
    Bit4:=0;
    Bit5:=0;
    Bit6:=0;
    Bit7:=0;
    Bit8:=0;
    Bit9:=1;
    Bit10:=0;
    Bit11:=0;
    Bit12:=0;
    Bit13:=0;
    Bit14:=0;
    Bit15:=0;
    Bit16:=0;
    
    (*упаковываем биты в байты*)
    Byte_low2:=PACK(Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7,Bit8);
    Byte_hi2:=PACK(Bit9,Bit10,Bit11,Bit12,Bit13,Bit14,Bit15,Bit16);
    (*ну и байты в слово объединям*)
    Var_Word:=SHL(BYTE_TO_WORD(Byte_hi2),8) OR BYTE_TO_WORD(Byte_low2);
    
    
    (*ОБРАТНАЯ ПРОЦЕДУРА Переменная Var_Word разбивается на два байта*)
    Byte_low:=WORD_TO_BYTE(Var_word);
    Byte_hi:=WORD_TO_BYTE(Var_word/256);
    
    (*байты раскладываются на биты с помощью ФБ Unpack (библиотека UTIL)*)
    
    UNPACK1(
    	B:=Byte_low ,
    	B0=>Bits[1],
    	B1=>Bits[2] ,
    	B2=>Bits[3] ,
    	B3=>Bits[4] ,
    	B4=>Bits[5] ,
    	B5=>Bits[6] ,
    	B6=>Bits[7] ,
    	B7=>Bits[8] );
    UNPACK2(
    	B:=Byte_hi ,
    	B0=>Bits[9] ,
    	B1=>Bits[10] ,
    	B2=>Bits[11] ,
    	B3=>Bits[12],
    	B4=>Bits[13] ,
    	B5=>Bits[14],
    	B6=>Bits[15],
    	B7=>Bits[16]);
    
    (*все получили массив Bits заполненный (другая переменная чтобы легче было оценивать результат) *)

  9. #4009

    По умолчанию

    Цитата Сообщение от krollcbas Посмотреть сообщение
    Пользуюсь немного более простой конструкцией:
    Упаковка:
    IF BOOL_var THEN WORD_cmd:=WORD_cmd OR 1024; ELSE WORD_cmd:=WORD_cmd AND NOT 1024; END_IF;
    Распаковка:
    IF (WORD_sts AND 1024)<>0 THEN BOOL_var:=TRUE; ELSE BOOL_var:=FALSE; END_IF;
    можно Вас просить прокомментировать более подробно?
    если значение 1 тогда прибавить к word 1024? вот это не понял, ну и дальше

  10. #4010
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    Exclamation

    Цитата Сообщение от krollcbas Посмотреть сообщение
    Пользуюсь немного более простой конструкцией:
    Упаковка:
    IF BOOL_var THEN WORD_cmd:=WORD_cmd OR 1024; ELSE WORD_cmd:=WORD_cmd AND NOT 1024; END_IF;
    Распаковка:
    IF (WORD_sts AND 1024)<>0 THEN BOOL_var:=TRUE; ELSE BOOL_var:=FALSE; END_IF;
    Мда..... куда тут уж проще... жесть, товарищи

    Вот это, просто.
    Код:
    if bBool
      then
        wWord.0 := true;
        wWord.1 := false;
        wWord.2 := true;
        wWord.3 := false;
        wWord.4 := true;
        ...
        wWord.14 := true;
        wWord.15 := false;
    end_if
    ps. Еще интересно, писал в WORD_cmd, а читал из WORD_sts.

Страница 401 из 1043 ПерваяПервая ... 301351391399400401402403411451501901 ... ПоследняяПоследняя

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

Ваши права

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