Страница 120 из 149 ПерваяПервая ... 2070110118119120121122130 ... ПоследняяПоследняя
Показано с 1,191 по 1,200 из 1642

Тема: CODESYS V3.5. Настройка обмена с другими устройствами (Modbus, ОВЕН, OPC и др.)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от yray Посмотреть сообщение
    Очевидно один таймер для включения "триггерной переменной" при изменении любой из вашего большого списка переменных.
    У меня так на последнем.
    код:
    // передача триггеров в частотник
    front_on_delayTimer(IN:=front_on_delayTimer_start, PT:=front_delayTime); // Запуск таймера задержки после поднятия фронта
    front_off_delayTimer(IN:=front_off_delayTimer_star t, PT:=front_delayTime); // Запуск таймера задержки после снятия фронта
    IF (G.ROT <> G.ROT_SET) THEN pchv_send:=TRUE; G.ROT:=G.ROT_SET; END_IF
    IF (G.FREQ <> G.FREQ_SET) THEN pchv_send:=TRUE; G.FREQ := G.FREQ_SET; END_IF
    IF pchv_send AND pchv_send_en THEN pchv_send1Completed:=FALSE;pchv_send:=FALSE; END_IF
    // установка переднего фронта
    IF NOT pchv_send1Completed THEN pchv_send_en:=FALSE;
    pchv_send1Completed := TRUE; // Установка флага завершения первого действия
    front_on_delayTimer_start:=TRUE;
    G.TR1:=G.TR2:=TRUE; // включить передачу команды управления
    END_IF
    // снятие переднего фронта
    IF front_on_delayTimer.Q AND pchv_send1Completed AND NOT pchv_send2Completed THEN
    front_on_delayTimer_start:=FALSE; // Сброс таймера
    front_off_delayTimer_start:=TRUE;
    pchv_send2Completed := TRUE; // Установка флага завершения второго действия
    G.TR1:=G.TR2:=FALSE; // выключить передачу команды управления
    END_IF
    // задержка после снятия фронта
    IF front_off_delayTimer.Q AND pchv_send2Completed THEN pchv_send2Completed:=FALSE; front_off_delayTimer_start:=FALSE; pchv_send_en:=TRUE; END_IF
    Спасибо. Буду знать что и так можно.
    Я в принципе сделал, как в свое время нам показал Евгений Кислов, через По нажатию> Изменение значения>выполнить ST код>присвоить триггеру True. Если триггер True, то запускается таймер на 1 с, триггер = not (выход таймера ).
    Запихал таймер в функциональный блок по руководству Первый старт 3.5.
    Хотелось бы чтобы пример записи по переднему фронту вошла в новый Первый старт или руководство по Modbus.

  2. #2

    По умолчанию

    Я использую таймер TP у себя в таких решениях. Да, на каждый канал опроса (если там триггер надо дёргать отдельно от всех) используется свой таймер.
    TP удобен тем, что он по короткому импульсу на входе (минимальная длина - один цикл) запускается и дорабатывает нужное время сам.
    Поэтому, образно, на его вход можно сразу вешать кнопку, а выход выводить на триггер.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  3. #3

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    TP удобен тем, что он по короткому импульсу на входе (минимальная длина - один цикл) запускается и дорабатывает нужное время сам.
    Поэтому, образно, на его вход можно сразу вешать кнопку, а выход выводить на триггер.
    Мне удобнее кодом писать, ТР наверное в него тоже вставить не проблема, но вот в чём затык вижу и ловил его несколько раз пока не сделал по приведённому выше коду: если на ТР подать входной сигнал, он должен отработать заданное время и обнулить выход. НО если на него сигналы сыпятся по какой-то причине не останавливаясь, в цикле например, то и выход он не обнулит либо обнулит на крайне короткий срок, который частотник не воспримет как снятие фронта. И новую команду не выполнит. Соответственно его ещё нужно дополнительно обвязать, так что-бы обязательно была достаточная пауза на снятие фронта при любом раскладе.

  4. #4
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,986

    По умолчанию

    yray Это вообще-то принцип работы TP, можете даже диаграмму посмотреть. Чему вы удивляетесь?

  5. #5

    По умолчанию

    Где вы увидели удивление ?

  6. #6
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,986

    По умолчанию

    но вот в чём затык вижу и ловил его несколько раз пока не сделал по приведённому выше коду
    а это что? вы увидели затык в том, что является сутью TP

  7. #7

    По умолчанию

    Подскажите как правильно сделать чтение нескольких holding регистров в codesys 3.5. Прибор без проблем опрашивается OPC сервером через тип данных string с длиной строки 12 старшим байтом вперед. В кодесисе штатными средствами опроса по modbus чтение по функции 3 c длиной 12 приводит к ошибке. Как надо правильно осуществить опрос?

  8. #8

    По умолчанию

    Цитата Сообщение от fizhimik Посмотреть сообщение
    Подскажите как правильно сделать чтение нескольких holding регистров в codesys 3.5. Прибор без проблем опрашивается OPC сервером через тип данных string с длиной строки 12 старшим байтом вперед. В кодесисе штатными средствами опроса по modbus чтение по функции 3 c длиной 12 приводит к ошибке. Как надо правильно осуществить опрос?
    Сам догадался, надо было длину 6 ставить. У нас же тип данных word в опросе, а он 2 байта занимает.

  9. #9

    По умолчанию

    Можно ещё и DWORD если не хватает, например для МВ110-32

  10. #10

    По умолчанию

    Цитата Сообщение от fizhimik Посмотреть сообщение
    Подскажите как правильно сделать чтение нескольких holding регистров в codesys 3.5. Прибор без проблем опрашивается OPC сервером через тип данных string с длиной строки 12 старшим байтом вперед. В кодесисе штатными средствами опроса по modbus чтение по функции 3 c длиной 12 приводит к ошибке. Как надо правильно осуществить опрос?
    Я тут неверно описал все. Надо правильно было интерпретировать мануал: в мануале таблица с кадром запроса ... число регистров на чтение 12, а потом идет текстовка расшифровка каждого байта - и их 12. Штатная команда чтения по функции 3 сразу определяет тип данных как Word, а это 2 байта

Страница 120 из 149 ПерваяПервая ... 2070110118119120121122130 ... ПоследняяПоследняя

Похожие темы

  1. Настройка ПР200, управление 3-мя устройствами через RS-485
    от Orbes в разделе Среда программирования OWEN Logic
    Ответов: 20
    Последнее сообщение: 15.05.2017, 16:45
  2. СП3ХХ Пример настройка обмена с ПЛК на CODESYS 2.3
    от Denis_Kay в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 02.03.2017, 15:12
  3. Ответов: 43
    Последнее сообщение: 13.04.2015, 14:05
  4. Универсальная функция для обмена с устройствами OwenIO и всеми любимый LabView.
    от Алексей Крагель в разделе Помощь Разработчикам
    Ответов: 0
    Последнее сообщение: 30.05.2014, 13:38

Ваши права

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