Страница 83 из 699 ПерваяПервая ... 3373818283848593133183583 ... ПоследняяПоследняя
Показано с 821 по 830 из 6982

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

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

    По умолчанию

    Цитата Сообщение от laskind Посмотреть сообщение
    подскажите как организовать задержку на языке ST
    при нажатии конпки должна выполняться подача команды
    команда по модбас рту, типа rising edge
    те нужно послать на булеву переменную тру, потом взвести тригер для исполнения в тру , сделать задержку и передать триггеру фалс
    Есть уверенность, что это необходимо делать? Потому что для rising edge нужен только фронт триггера, необязательно держать его в TRUE до получения ответа. Можно воспользовать ФБ R_TRIG для этого. Но если все-таки по каким-то причинам необходима именно задержка, посмотрите ФБ TON. Оба блока входят в библиотеку Standard.

  2. #822

    По умолчанию

    возможно вы правы, а где почитать ? как вызывать и описывать r_trig

  3. #823
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,059

    По умолчанию

    Цитата Сообщение от laskind Посмотреть сообщение
    возможно вы правы, а где почитать ? как вызывать и описывать r_trig
    Почитать можно либо прямо в библиотеке Standard (она всегда присутствует в Менеджере библиотек), либо в справке CODESYS (вызывается по F1).

  4. #824

    По умолчанию

    сделал как там описано

    RTRIGInst : R_TRIG ;

    RTRIGInst(CLK:= VarBOOL1);

    VarBOOL2 := RTRIGInst.Q;
    при компиляции пишет что
    ------ Компиляция : Приложение: Device.Application -------
    типизировать код...


    [ERROR] ___ _____8: page1 [Device: Plc Logic: Application](Вход элемента ID 233): C0080: Функциональный блок 'R_TRIG' должен иметь экземпляр

    как описать экземпляр ?

  5. #825
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,059

    По умолчанию

    Цитата Сообщение от laskind Посмотреть сообщение
    сделал как там описано

    RTRIGInst : R_TRIG ;

    RTRIGInst(CLK:= VarBOOL1);

    VarBOOL2 := RTRIGInst.Q;
    при компиляции пишет что
    ------ Компиляция : Приложение: Device.Application -------
    типизировать код...


    [ERROR] ___ _____8: page1 [Device: Plc Logic: Application](Вход элемента ID 233): C0080: Функциональный блок 'R_TRIG' должен иметь экземпляр

    как описать экземпляр ?
    RTRIGInst : R_TRIG ; - это и есть объявление экземпляра. Должно находиться в области объявления переменных, а не в коде программы.

  6. #826

    По умолчанию

    я пробовал объявлять так
    VAR
    RTRIGInst:R_TRIG
    END_VAR
    RTRIGInst(CLK:= VarBOOL1);

    VarBOOL2 := RTRIGInst.Q;

    пишет что обнаружен недопустимый символ varvar.jpg


    может это потому программа вызывается с кнопки ?

  7. #827
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,059

    По умолчанию

    Цитата Сообщение от laskind Посмотреть сообщение
    я пробовал объявлять так
    VAR
    RTRIGInst:R_TRIG
    END_VAR
    RTRIGInst(CLK:= VarBOOL1);

    VarBOOL2 := RTRIGInst.Q;

    пишет что обнаружен недопустимый символ varvar.jpg


    может это потому программа вызывается с кнопки ?
    Да, триггер должен быть объявлен в программе (или глобальных переменных), а на кнопке должен находиться только ST-код.

  8. #828

    По умолчанию

    Объявил глобально
    на кнопке такой код
    bit69:=True; (посылка команды включения)
    RTRIGInst(CLK:= bit69); (если тру то
    trig1 := RTRIGInst.Q; взвести триггер
    ошибок нет
    привязка переменных на картинке12.png
    но выключатель не срабатывает,я все правильно сделал ?

  9. #829
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,059

    По умолчанию

    Цитата Сообщение от laskind Посмотреть сообщение
    Объявил глобально
    на кнопке такой код
    bit69:=True; (посылка команды включения)
    RTRIGInst(CLK:= bit69); (если тру то
    trig1 := RTRIGInst.Q; взвести триггер
    ошибок нет
    привязка переменных на картинке12.png
    но выключатель не срабатывает,я все правильно сделал ?
    Прочитайте, пожалуйста, личные сообщения (вверху страницы вкладка "Уведомления").

  10. #830

    По умолчанию

    Спасибо, с привязкой на нажатие кнопки и отпусканием работает, стабильно, независимо от времени нажатия. На мгновенный клик тоже срабатывает. Поэтому вариант с r_trig и ton пробовать не буду. Сейчас буду реализовывать посылку через универсальный диалог и отображение состояния выключателя в HMI, на 2 значения положений отображать то или иное состояние (включен, отключен, промежуточное, неисправность).

Страница 83 из 699 ПерваяПервая ... 3373818283848593133183583 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 3177
    Последнее сообщение: Вчера, 12:47
  2. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 822
    Последнее сообщение: 20.11.2023, 17:48
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 245
    Последнее сообщение: 02.10.2022, 11:34
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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