Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 19 из 19

Тема: Подключение не стандартного устройва

  1. #11

    По умолчанию

    Мы отправляем, устройство принимает, а затем отвечает нам.

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

    По умолчанию

    ох уж эти программисты... нам это кому? Дедушке Василию на деревню?

    ПЛК - отправил
    Устроство - Ответило

    ищите проблемы в ПЛК. Если ИНОЕ, то пишите подробнее. Как вы убедились что отправка произошла, как убедились что ответ произошел и так далее.

  3. #13

    По умолчанию

    Мы и ищем в ПЛК.
    Мы даже меняли порт, но от этого ничего не поменялось.

    Отслеживали данные на конце провода с помощью компьютера.
    Последний раз редактировалось Стас Ц.; 15.08.2023 в 09:36. Причина: Дополнил

  4. #14

    По умолчанию

    Вот наш протокол. Возможно ли, что он после отправки закрывает порт или не открывает порт приёма?
    Код:
    fbComControl4: OCL.COM_Control; // ФБ управления портом COM4
    fbRS603_DI: OCL.UNM_SerialRequest; // ФБ опроса лазерного дальномера
    awAO2: ARRAY [0..1] OF BYTE; // регистры, записывающие в модуль RS603
    awAI2: ARRAY [0..3] OF BYTE; // регистры, считанные с модуля RS603
    CASE iStateCom4 OF
                    0: // открытие COM-порта COM4
                                   fbComControl4
                                   (
                                                   xEnable := TRUE,
                                                   udiComPort := 4,
                                                   udiBaudrate := 9600,
                                                   udiByteSize := 8,
                                                   eParity := OCL.COM_PARITY.EVEN,
                                                   eStopBit := OCL.COM_STOPBIT.ONE
                                   );
                                   IF fbComControl4.xDone THEN
                                                   iStateCom4 := 1;
                                   END_IF
                    1: // опрос модуля RS603
                                   awAO2[0] := 16#01;
                                   awAO2[1] := 16#86;
                                   fbRS603_DI
                                   (
                                                   xExecute := fbComControl4.xDone,
                                                   tTimeout := T#500MS,
                                                   usiRetry := 3,
                                                   hCom := fbComControl4.hCom,
                                                   pRequest := ADR(awAO2),
                                                   szRequest := 2,
                                                   pResponse := ADR(awAI2),
                                                   szResponse := 4,
                                                   szExpectedSize := 0,
                                                   wStopChar := 16#0000
                                   );                    
    END_CASE
    Последний раз редактировалось Стас Ц.; 15.08.2023 в 10:31.

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

    По умолчанию

    На fbComControl4.xDone генерируется единичный импульс при открытии COM-порта - так что с помощью приведенного выше кода вы отправите на дальномера только один запрос при запуске проекта.

    В общем случае вам должно помочь что-то вроде:

    Код:
    1: // опрос модуля RS603
    
    awAO2[0] := 16#01;
    awAO2[1] := 16#86;
    
    fbRS603_DI
    (
       xExecute := TRUE,
       tTimeout := T#500MS,
       usiRetry := 3,
       hCom := fbComControl4.hCom,
       pRequest := ADR(awAO2),
       szRequest := 2,
       pResponse := ADR(awAI2),
       szResponse := 4,
       szExpectedSize := 0,
       wStopChar := 16#0000
    );
    
    IF fbRS603_DI.xDone OR fbRS603_DI.xError THEN
        fbRS603_DI(xExecute := FALSE);
    END_IF
    
    END_CASE
    Надеюсь, на COM4 вы подключили только дальномер и не пытаетесь опрашивать через него другие устройства.

  6. #16

    По умолчанию

    На COM4 мы больше ничего не опрашиваем.
    Ваш код был реализован но к сожалению он не поменялось.

    Возможно ли, что в CODESYS надо что-то включить, чтобы ПЛК начал принимать сигналы?

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

    По умолчанию

    Цитата Сообщение от Стас Ц. Посмотреть сообщение
    На COM4 мы больше ничего не опрашиваем.
    Ваш код был реализован но к сожалению он не поменялось.

    Возможно ли, что в CODESYS надо что-то включить, чтобы ПЛК начал принимать сигналы?
    Ничего дополнительно включать не надо.
    Обеспечьте удаленный доступ по AeroAdmin - посмотрим, что у вас происходит.
    Данные для подключения и ваш контактный телефон пришлите мне на почту или telegram (в подписи).

  8. #18
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    Стас Ц
    Дальномер случаем не Рифтек?
    Если да, то там свой фирменный протокол, и нужен бубен достаточно большого диаметра, что бы плк Овен начали его понимать.

  9. #19

    По умолчанию

    Спасибо за помощь.
    Проблема было из-за добавления новой задачи, а также изменения интервала и приоритета текущий задач.
    Желательно это всё не трогать тогда и проблем не будет.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 12.10.2021, 09:18
  2. Ответов: 41
    Последнее сообщение: 01.11.2018, 14:03

Ваши права

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