Показано с 1 по 10 из 3272

Тема: Панели оператора СП3xx. Вопросы и ответы

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    18.05.2017
    Адрес
    Чебоксары
    Сообщений
    118

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Какое формальное описание "достоверной потери связи" ?
    Отсутствие ответа на 1, 5, 10 последовательных запросов? Или полное отсутствие ответов в течение некого заданного интервала времени?
    Первое уточнение - СП307-Р - ведущее (master) устройство на канале PLC - RS-485 c протоколом обмена Modbus RTU.
    К нему подключены четыре ведомых (slave) устройства с таким же протоколом, адреса 1, 2, 3, 4, сгруппированные в шкафы управления.
    1, 2 - ШУ1, 3, 4 - ШУ2. Чтобы Вам было приятнее, скажу что устройства с адресами 1, 3 - это ПР200 Вашего производства.
    Именно обмен с ПР200 - адреса 1, 3 - я и хочу контролировать, знать, оборвался обмен или нет.
    Для обмена используются как элементы экрана - табло, индикаторы битов, так и программы в макросах (Write, Read).

    Задача контроля наличия обмена ведомых устройств на асинхронном последовательном канале связи в общем виде может ставиться и решаться по-разному,
    Вы ,как разработчик, наверное много сможете об этом рассказать в узком кругу , а я уточню вопрос.
    В идеале это получение информации о том, что с конкретным устройством, с конкретным адресом, нет связи, к примеру за заданное время тайм-аута, или на заданное число попыток связи.
    Моя субъективная точка зрения - удобнее использовать настраиваемый для каждого ведомого устройства тайм-аут обмена, так как производители приборов иногда дают в РЭ время на ответ чуть
    ли не в полсекунды, и на одном канале мы можем, настроив адреса, скорости, протокол обмена использовать приборы десятка разных производителей (во всяком случае, у меня такой опыт
    при сборе информации с подстанции был, оборудование было другого производителя, я такими задачами в разных отраслях занимаюсь с 1995 года).

    Как сделано в СП307-Р я не знаю, потому и спрашиваю расширенный ответ.
    Насколько понимаю, такой информации, по каждому устройству, подключенному к порту PLC,
    используя СП307-Р я не получу, так как для порта PLC имеется только один бит признака ошибки обмена, который привязан к каналу PLC.
    Никаких претензий к этому нет, устройство использую "как есть".
    Я пытаюсь узнать еще раз от разработчика - каким образом формируется бит признака ошибки связи в СП307-Р,
    чтобы как-то попробовать использовать его для своих задач.
    Возможно, я смогу выявить обрыв связи с подключенным устройством другим способом.
    Например, контролировать бит ошибки сразу после записи или чтения через порт PLC в макросе - если бит формируется по результатам этого обмена.
    Подробного описания в руководстве нет, есть просто "бит такой-то", "а вот этот параметр - тайм-аут". Как реализовано формирование этого бита?

    В используемом ПР200 нет вообще никакого контроля тайм-аута обмена с ведущим устройством при работе в качестве ведомого устройства, там я использую формируемый
    в СП307 меандр для контроля обрыва связи, раз разработчик не дал иного. В ведущем (master) СП307, не имеющем FBD-подобных средств, не хотелось бы
    городить огород с контролем меандра, формируемого в ведомом (slave) ПР-200.

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

    По умолчанию

    Цитата Сообщение от konst_smn Посмотреть сообщение
    Как сделано в СП307-Р я не знаю, потому и спрашиваю расширенный ответ.
    Конкретный пример - устройство, подключенное к PLC-порту перестало работать:

    1. Панель отправляет запрос и не получает ответ в течение времени PFW38 мс - детектируется отсутствие ответа: PSW72 увеличивается на +1
    2. Панель отправляет повторный запрос
    3. Если на X последовательных запросов (где X = Повторов в настройках порта) нет ответов, то
    • бит PSB51 устанавливается в TRUE на некоторое (зависящее от ряда факторов, в т.ч. таймаута) время
    • PSW71 увеличивается на +1 (сеанс опроса не удался). Фактически, при полном отсутствии связи за все время работы PSW71 = PSW72 / Повторов.
    • в регистр PSW76 записывается адрес устройства, с которым не состоялся сеанс опроса


    После этого начинается следующий сеанс обмена: сброс PSB51, отправка запроса (от следующего элемента / макроса) и так далее.

    Если требуется тщательный контроль обмена - то проще весь обмен перенести в макросы: функции Read(s), Write(s) возвращают соответствующий бит (TRUE - на запрос пришел корректный ответ, FALSE - что-то пошло не так).
    Кроме того, можно будет оптимизировать обмен за счет групповых запросов.

  3. #3
    Пользователь
    Регистрация
    18.05.2017
    Адрес
    Чебоксары
    Сообщений
    118

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Конкретный пример - устройство, подключенное к PLC-порту перестало работать:

    1. Панель отправляет запрос и не получает ответ в течение времени PFW38 мс - детектируется отсутствие ответа: PSW72 увеличивается на +1
    2. Панель отправляет повторный запрос
    3. Если на X последовательных запросов (где X = Повторов в настройках порта) нет ответов, то
    • бит PSB51 устанавливается в TRUE на некоторое (зависящее от ряда факторов, в т.ч. таймаута) время
    • PSW71 увеличивается на +1 (сеанс опроса не удался). Фактически, при полном отсутствии связи за все время работы PSW71 = PSW72 / Повторов.
    • в регистр PSW76 записывается адрес устройства, с которым не состоялся сеанс опроса


    После этого начинается следующий сеанс обмена: сброс PSB51, отправка запроса (от следующего элемента / макроса) и так далее.

    Если требуется тщательный контроль обмена - то проще весь обмен перенести в макросы: функции Read(s), Write(s) возвращают соответствующий бит (TRUE - на запрос пришел корректный ответ, FALSE - что-то пошло не так).
    Кроме того, можно будет оптимизировать обмен за счет групповых запросов.
    Евгений, спасибо за подробный ответ с рекомендациями.
    Решение найдено, более удобное чем контроль меандра. .
    В этой связи дополнительный вопрос.
    Насколько понимаю, функции чтения и записи (я их уже использую в макросах) Read(s), Write(s) возвращают значение ошибки в бите.
    Однако, в справке, вызываемой по F1 и в файле руководства пользователя это никак не описано. Если Вас не затруднит, приведите пример использования возвращаемого функциями.
    Со своей стороны, я могу предположить, что надо ставить в условие саму функцию Read(s) или Write(s), по результату устанавливать/сбрасывать бит в незарезервированной области битовой памяти командами SetPSB(n)/ResetPSB(n) либо выполнить необходимые по задаче действия.

    if (Read(......))
    {
    SetPSB(n); //пришел корректный ответ
    ...
    }
    else
    {
    ResetPSB(n); //нет корректного ответа либо нет вообще никакого ответа
    }

    if (Read(......))
    {
    ....; //пришел корректный ответ
    ...
    }
    else
    {
    ....; //нет корректного ответа либо нет вообще никакого ответа
    }
    Последний раз редактировалось Евгений Кислов; 22.11.2018 в 07:11.

Похожие темы

  1. Экспорт CSV в панели СП3xx и порядок квитирования событий
    от theoretician в разделе Панели оператора (HMI)
    Ответов: 30
    Последнее сообщение: 24.08.2021, 16:17
  2. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  3. Сенсорные панели оператора ОВЕН СП3ХХ
    от Боднар Олег Миколайович в разделе Подбор Оборудования
    Ответов: 7
    Последнее сообщение: 17.12.2015, 09:09
  4. СПК 107 в качестве панели оператора
    от Леонид в разделе СПК1хх
    Ответов: 15
    Последнее сообщение: 20.11.2015, 08:17

Ваши права

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