Страница 119 из 149 ПерваяПервая ... 1969109117118119120121129 ... ПоследняяПоследняя
Показано с 1,181 по 1,190 из 1642

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

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

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

    По умолчанию

    edvard_munch А можно пояснить подробности:
    * Как ПЧВ опрашивается? Через шаблон или через Modbus Slave Device?
    * ПЛК же Master, верно?
    * Связь по Modbus TCP или Modbus RS-485?
    * Почему не годится стандартный способ с .xError?
    На всякий случай оставлю ссылку на свою статью с обработкой ошибок и связи: https://cs-cs.net/technologii-testir...odbus___ai__io
    В ней надо почитать заголовок 6. Там есть описание того, как можно при помощи включенной диагностики и .xError получать ошибки опроса устройства с защитой от случайно возникающих ошибок.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  2. #2

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    edvard_munch А можно пояснить подробности:
    * Как ПЧВ опрашивается? Через шаблон или через Modbus Slave Device?
    * ПЛК же Master, верно?
    * Связь по Modbus TCP или Modbus RS-485?
    * Почему не годится стандартный способ с .xError?
    На всякий случай оставлю ссылку на свою статью с обработкой ошибок и связи: https://cs-cs.net/technologii-testir...odbus___ai__io
    В ней надо почитать заголовок 6. Там есть описание того, как можно при помощи включенной диагностики и .xError получать ошибки опроса устройства с защитой от случайно возникающих ошибок.
    1) Шаблон
    2) Мастер
    3) RS-485
    4) Спасибо, сейчас еще раз посмотрю внимательно на xError, возможно зря я полез в дебри, и не понял до конца как работать с xError

  3. #3

    По умолчанию

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

  4. #4

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Да! Это оно! Единственное неудобство в том, что на момент ошибки xError становится TRUE, а при следующей попытке опроса сбрасывается на FALSE.
    Я у себя в статье как раз это описал (ради этого стоит почитать) и показал, как сделал систему выдержки на паре таймеров.
    Её суть такая, образно: "Одна ошибочка появилась - значит, глюк. О, а если пошли несколько ошибок подряд - то это точно отвал связи".
    Все, разобрался. Набросал быстренько пока такой код. Работает. Спасибо!

    Код:
    pchvModbusErrorsComing: TOF;
    pchvModbusConnectionError: TON;
    modbusErrorTimeout: TIME:= T#1000MS;
    modbusErrorSeriesTimeout: TIME:= T#3000MS;
    fTrigPchvRestarted: F_TRIG;
    
    
    pchvModbusErrorsComing(IN:= PChV1_M01.xError, PT:= modbusErrorTimeout);
    pchvModbusConnectionError(IN:= pchvModbusErrorsComing.Q, PT:= modbusErrorSeriesTimeout);
    fTrigPchvRestarted(CLK:= pchvModbusConnectionError.Q);
    
    IF fTrigPchvRestarted.Q THEN
    	FrequencySetOutputValue:= FrequencySetStartupValue;
    	triggerFrequencySetOutputValue:= TRUE;
    END_IF

  5. #5

    По умолчанию

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

  6. #6

    По умолчанию

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

  7. #7
    Пользователь
    Регистрация
    08.06.2021
    Адрес
    СПб
    Сообщений
    61

    По умолчанию

    Не могу найти поиском в EtherCAT, модуль ввода-вывода Sontheim DIO 32 . На сайте производителя файл для скачивания я не нашел! Подскажите какие варианты поиска возможны? 2024-07-08.png

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

    По умолчанию

    Evgen Dnepr EtherCAT в ПЛК Овен не реализован, это отдельная лицензия.

  9. #9

    По умолчанию

    Добрый день! Подскажите как правильно организовать переключение триггерной переменной для записи значений в Mosbus Slave по нажатию кнопки на сенсорном экране? Предполагаю, что это можно сделать через таймер. Однако если на запись будет много переменных, то делать кучу таймеров очевидно не правильно. Как следует поступить?

  10. #10

    По умолчанию

    Очевидно один таймер для включения "триггерной переменной" при изменении любой из вашего большого списка переменных.
    У меня так на последнем.
    код:
    // передача триггеров в частотник
    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

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

Похожие темы

  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

Ваши права

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