Страница 537 из 859 ПерваяПервая ... 37437487527535536537538539547587637 ... ПоследняяПоследняя
Показано с 5,361 по 5,370 из 8582

Тема: CODESYS V3.5. Вопросы и ответы

  1. #5361
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,647

    По умолчанию

    Добрый день.

    ведь я уже написал условие , что если wa>1, то на IN в TON будет FALSE соответственно и выход должен стать фальшем, а он остается TRUE.
    Выход таймера - должен и становится. Вы путаете его с вашей переменной Pusk_Nasos_Otop_Syst. Исправление, которое поясняет ситуацию:

    Код:
    IF w09>1 THEN
       TON_2(IN:=FALSE, Q=>Pusk_Nasos_Otop_Syst);
    ELSE
       TON_2(IN:=wa11,PT:=w12,Q=>Pusk_Nasos_Otop_Syst,ET=>wa25);
    END_IF
    Можно и так:

    Код:
    TON_2(IN := wa11 AND NOT(w09>1), PT := w12, Q => Pusk_Nasos_Otop_Syst, ET => wa25);

  2. #5362

  3. #5363

    По умолчанию

    Ограничение диапазона значений:

    Ограничение диапазона позволяет объявить переменную, значения которой ограничены в определенных пределах. Существует возможность создать в проекте новые типы данных с ограниченным диапазоном значений либо задать диапазон непосредственно при объявлении переменной.

    Создание нового типа выглядит так:

    TYPE < Имя > : < Целый тип > (<от>..<до>) END_TYPE;



    <Имя>
    любой допустимый МЭК идентификатор,

    <IЦелый тип>
    один из типов SINT, USINT, INT, UINT, DINT, UDINT, BYTE, WORD,

    DWORD (LINT, ULINT, LWORD).

    <от>
    константа, определяющая начало диапазона значений включительно

    <до>
    константа, определяющая конец диапазона значений включительно.




    Пример:

    TYPE

    SubInt : INT (-4095..4095);

    END_TYPE



    Ограничение диапазона при объявлении переменной:

    i : INT (-4095..4095);

    ui : UINT (0..10000);

    END_VAR


    Это Кодесис 2.3 в 3.5 что то не выходит.
    Последний раз редактировалось Евгений Кислов; 16.03.2023 в 19:12.

  4. #5364

  5. #5365

    По умолчанию

    VAR_INPUT
    wa11: BOOL;
    w12: TIME;
    w13: TIME;
    w09: REAL;
    st01: REAL; Хочу w09 и st01 ограничить. Могу в INT перевести Делаю как указану в справочнике 2.3 не получается

  6. #5366
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,647

    По умолчанию

    Цитата Сообщение от Дмитрий Хороменков Посмотреть сообщение
    VAR_INPUT
    wa11: BOOL;
    w12: TIME;
    w13: TIME;
    w09: REAL;
    st01: REAL; Хочу w09 и st01 ограничить. Могу в INT перевести Делаю как указану в справочнике 2.3 не получается
    Для REAL ограничение диапазона не поддерживается.
    Если у вас "не получается" ограничить диапазон для INT - то выложите, пожалуйста, скриншот, на котором будет видно, как именно вы пытаетесь это сделать.

  7. #5367

    По умолчанию

    FUNCTION_BLOCK Nasos_Otop_Syst
    VAR_INPUT
    wa11: BOOL;
    w12: TIME;
    w13: TIME;
    w09: INT(0..60);
    st01: REAL;
    END_VAR
    VAR_OUTPUT
    Pusk_Nasos_Otop_Syst: BOOL;
    Pusk_Nasos_Ohl_Syst: BOOL;
    wa25: TIME;
    wa26: TIME;
    END_VAR
    VAR
    TON_2: TON;
    TOF_2 : TOF;
    a1 : BOOL;
    d1 : BOOL;
    b1 : BOOL;
    END_VAR Вот так сделал, блок вставляю в программу и на входе ставлю 70 или -10 , а оно работает, может это входную в программе надо ограничить? А я хотел бы чтобы у меня именно блок не пускал.

  8. #5368

    По умолчанию

    Да уж я опять напутал вход с переменной, но все таки хотелось бы без всякой писанины ограничить вход, а не переменную. Может есть такая возможность. Потому как блок он и есть, что то отдельное он должен сам себя защищать. Если подскажете прям спасете.

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

    По умолчанию

    Цитата Сообщение от Дмитрий Хороменков Посмотреть сообщение
    FUNCTION_BLOCK Nasos_Otop_Syst
    VAR_INPUT
    wa11: BOOL;
    w12: TIME;
    w13: TIME;
    w09: INT(0..60);
    st01: REAL;
    END_VAR
    VAR_OUTPUT
    Pusk_Nasos_Otop_Syst: BOOL;
    Pusk_Nasos_Ohl_Syst: BOOL;
    wa25: TIME;
    wa26: TIME;
    END_VAR
    VAR
    TON_2: TON;
    TOF_2 : TOF;
    a1 : BOOL;
    d1 : BOOL;
    b1 : BOOL;
    END_VAR Вот так сделал, блок вставляю в программу и на входе ставлю 70 или -10 , а оно работает, может это входную в программе надо ограничить? А я хотел бы чтобы у меня именно блок не пускал.
    Вы не забыли что цитировали документацию по созданию собственного типа данных, а не область объявлений ПОУ?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  10. #5370

    По умолчанию

    Да я пока путаюсь , извините. Хотя создание тоже пригодится.

Страница 537 из 859 ПерваяПервая ... 37437487527535536537538539547587637 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 4060
    Последнее сообщение: Вчера, 16:26
  2. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 861
    Последнее сообщение: 31.12.2025, 23:19
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 273
    Последнее сообщение: 08.09.2025, 13:21
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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