Страница 9 из 131 ПерваяПервая ... 78910111959109 ... ПоследняяПоследняя
Показано с 81 по 90 из 1308

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

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

    По умолчанию

    Цитата Сообщение от alexx751 Посмотреть сообщение
    Код:
     abyMY110_16R_buffer[1].0:=xMV110_16D_input1;
            abyMY110_16R_buffer[1].4:=TRUE;
    
            abyMY110_16R_buffer[2].0:=TRUE;// следующие строки - правильные?
            abyMY110_16R_buffer[2].1:=TRUE;
            abyMY110_16R_buffer[2].2:=FALSE;
            abyMY110_16R_buffer[2].3:=TRUE;
            abyMY110_16R_buffer[2].4:=FALSE;
            abyMY110_16R_buffer[2].5:=TRUE;
            abyMY110_16R_buffer[2].6:=FALSE;
            abyMY110_16R_buffer[2].7:=TRUE;
            
            
            
            // [3.1.2] запускаем ФБ опроса модуля МУ110-16Р
            MY110_16R
            (
                Enable:=COM_SERVICE_COM3.Ready,
                Mode:=MB_RTU,
                DevAddr:=48,
                FirstAddr:=50,
                Quantity:=1,
                ComHandle:=COM_SERVICE_COM3.handle,
                TimeOut:=T#500MS,
                Buffer:=abyMY110_16R_buffer
           *);
            sss := MY110_16R.RegCnt;
            zzz := MY110_16R.Exception;
    Как записать выходы с 9 по 16? Первые 8 работают.
    Пишите в нулевой байт буфера:

    abyMY110_16R_buffer[0].0:=TRUE; // выход 9
    abyMY110_16R_buffer[0].1:=TRUE; // выход 10

    и т.д.

  2. #82

    По умолчанию

    Спасибо, заработало.
    То есть младший-старший байты местами поменяны?
    Надо бы в доке указать.

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

    По умолчанию

    Цитата Сообщение от alexx751 Посмотреть сообщение
    Спасибо, заработало.
    То есть младший-старший байты местами поменяны?
    Надо бы в доке указать.
    Да, поменяны. Спасибо, действительно, стоит уточнить этот вопрос в документе.

  4. #84
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    963

    По умолчанию

    Опрос через биб-ку ModbasOwenLib:МК110-4ДН4Р--МК110-4К4Р--МВ110-8А--МВ110-8ДФ--МУ110-8Р--ТРМ202--ATV312--МК110-4ДН4Р скорость 19200.Опрос идет безумно медленно, можно наблюдать в программе как переключаются шаги в case,на модуле МВ110-8А происходит вообще зависание на несколько секунд, на модулях постоянно загорается ошибка таим-ауты в модулях 5 сек, при этом на аварийных выходах Фб ноль, выкинул из 8а все переменные кроме real то-же самое, как бы все это дело разогнать и провалы убрать

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

    По умолчанию

    Цитата Сообщение от жекон Посмотреть сообщение
    Опрос через биб-ку ModbasOwenLib:МК110-4ДН4Р--МК110-4К4Р--МВ110-8А--МВ110-8ДФ--МУ110-8Р--ТРМ202--ATV312--МК110-4ДН4Р скорость 19200.Опрос идет безумно медленно, можно наблюдать в программе как переключаются шаги в case,на модуле МВ110-8А происходит вообще зависание на несколько секунд, на модулях постоянно загорается ошибка таим-ауты в модулях 5 сек, при этом на аварийных выходах Фб ноль, выкинул из 8а все переменные кроме real то-же самое, как бы все это дело разогнать и провалы убрать
    Библиотека ModulsOwenLib построена на использовании групповых запросов, т.е. в любом случае с модуля будут считаны все переменные. В данном случае лучше перейти на библиотеку Modbus Master и опрашивать только те регистры, которые реально нужны. Если с какого-то модуля нужны все регистры, то лучше считывать в несколько заходов (по ~20 регистров за раз). По возможности рекомендуется увеличить скорость обмена до 115200.

  6. #86
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    963

    По умолчанию

    Хорошо попробую, скорость поднять не получиться частотник не даст

  7. #87
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    963

    По умолчанию

    Дак а какой смысл писать заново Ваши блоки собраны на этой бибке, я же не просто отключил выхода 8А. а пересобрал ФБ, всего 16 регистров
    CASE marker OF


    0: get_modbus(
    Enable:=trig.Q1 , (* разрешение работы блока *)
    Mode:=Modd , (*режим передачи*)
    DevAddr:=Addr , (*адрес*)
    FirstAddr:=RegAddr1 , (*номер регистра*)
    Quantity:=2, (*количество регистров*)
    ComHandle:=handle ,(*номер COM-порта*)
    TimeOut:=TimeOut , (*Таймаут T#50ms*)
    Buffer:=Buffer , (* буфер данных *)
    Complete=>cmpl , (* скопировать признак завершения операции *)
    Exception=>Err , (* скопировать регистр ошибок *)
    ByteCnt=>DataSize ); (*кол-во считанных байтов *)




    IF cmpl THEN
    IF Err=0 THEN (*Если нет ошибок, то получаем данные из буфера*)
    inp1:=0;

    ptr_x:=ADR(inp1);
    ptr_x^:=buffer[7];
    ptr_x:=ptr_x+1;
    ptr_x^:=buffer[6];
    ptr_x:=ptr_x+1;
    ptr_x^:=buffer[5];
    ptr_x:=ptr_x+1;
    ptr_x^:=buffer[4];

    marker:=1;
    ErrCount:=0;
    ELSE
    IF (ErrCount >= ErCL) THEN
    marker:=1;
    ErrCount:=0;

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

    По умолчанию

    Т.е. вы все же используете библиотеку Modbus?

    Т.к. раньше вы писали "ModbasOwenLib" - я подумал, что вы используете "ModulsOwenLib" (как наиболее похожую по названию).

    В вашем случае я бы порекомендовал связаться с техподдержкой. На стр. 171 документа перечислены материалы, которые желательно предоставить при обращении.

  9. #89

    По умолчанию

    Все примеры в документе иллюстрируют чтение одного канала с каждого устройства. Можно в документе как-то описать момент опроса нескольких каналов с одного устройства?

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

    По умолчанию

    Цитата Сообщение от vyachko Посмотреть сообщение
    Все примеры в документе иллюстрируют чтение одного канала с каждого устройства. Можно в документе как-то описать момент опроса нескольких каналов с одного устройства?
    Я так понимаю, речь о примере с библиотекой Modbus - потому что при опросе через конфигуратор процесс опроса нескольких каналов не должен вызывать вопросов, а библиотека ModulsOwenLib опрашивает модули целиком.

    В том случае, если нужно опросить несколько каналов модуля через библиотеку Modbus, у вас есть два варианта:

    1. Считать групповым запросом все нужные данные (при условии, что нет "дырок" в карте регистров) и дальше в программе разобрать их;
    2. Считывать каждый канал по отдельности. В этом случае просто посмотрите, как реализован последовательный опрос двух модулей (например, рис. 6.12) - вам необходимо сделать то же самое, только вместо опроса двух модулей у вас будет два раза опрос разных регистров одного и того же модуля.

Страница 9 из 131 ПерваяПервая ... 78910111959109 ... ПоследняяПоследняя

Похожие темы

  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, 14:38

Ваши права

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