Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 30 из 30

Тема: ПЛК200, OWEN Communcation, Взлёт ЭМ ЭКСПЕРТ-921МИ

  1. #21

    По умолчанию

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

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

    По умолчанию

    Если float, то там 8 вариантов, потому что можно зацепить не с того регистра

  3. #23

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Если float, то там 8 вариантов, потому что можно зацепить не с того регистра
    Поэтому и предложим тс сначала потренироваться на регистре с заранее известным значением. А то потом окажется, что правильно показывает только до 100, например, а выше какаято чушь по литражу...)

  4. #24

    По умолчанию

    Попробовать через стандартным средтсвом опроса CODESYS опросить расходомер и с разной перестановкой , с разной перестановкой байт?

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

    По умолчанию

    Да компьютером с самого начала надо посмотреть и определиться. Потом подключать к ПЛК.

  6. #26
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,065

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    потренироваться на регистре с заранее известным значением.
    ++!!
    Задать адрес 99 и найти его. Сам бодрейт опять же.



    Что же касается флоатов. Прочитать нужные 2 регистра как целое 32-битное и сделать простейшие операции
    Код:
    D1 at% MD0: dword;
    X1 at% MD0: real;  //1234
    
    D2 at% MD2: dword;  
    X2 at% MD2: real;  //3412
    
    D3 at% MD4: dword;  
    X3 at% MD4: real;  //2143
    
    D4 at% MD6: dword;  
    X4 at% MD6: real;  //4321
    
    -------------------------
    D1 := D3 := что прочитали
    D2 := D4 := rol(D1, 16);
    D3 := (shl(D3, 8) and 16#FF00FF00) + (shr(D3,8) and 16#00FF00FF);
    D4 := (shl(D4, 8) and 16#FF00FF00) + (shr(D4,8) and 16#00FF00FF);
    в иксах все варианты
    Последний раз редактировалось Валенок; 26.07.2025 в 23:59.

  7. #27

    По умолчанию

    да всё это элементарно читается орс сервером или модбас пулом
    спокойно всё делается
    никаких проблем кроме нежелания прежде чем чтото делать выяснить что такое модбас и чем регистры ввода отличаются от регистров хранения
    к ОВЕНу это не имеет никакого отношения

  8. #28

    По умолчанию

    Чтобы не привязываться к абсолютным адресам, делаю как в Pascal - через "объединения".
    https://content.helpme-codesys.com/e...ype_union.html

    Внимание - набирал без проверки в браузере, но смысл должен быть понятным
    Сначала объявляю тип TConvert
    Код:
    TYPE TConvert:
    UNION
        by0, by1, by2, by3 : BYTE;
        w0, w1: WORD;
        dw: DWORD;
        r : REAL;
    END_UNION
    END_TYPE
    А потом в программе объявляю переменную tcTemp и с помощью её полей обмениваю байты и слова
    Код:
    tcTemp.r := rReceived;
    
    // перестановка 3412
    wTemp := tcTemp.w0;
    tcTemp.w0 := tcTemp.w1;
    tcTemp.w1 := wTemp;
    
    // или такая перестановка 4321 взамен предыдущей
    byTemp := tcTemp.by0;
    tcTemp.by0 := tcTemp.by1;
    tcTemp.by1 := byTemp;
    byTemp := tcTemp.by2;
    tcTemp.by2 := tcTemp.by3;
    tcTemp.by3 := byTemp;
    wTemp := tcTemp.w0;
    tcTemp.w0 := tcTemp.w1;
    tcTemp.w1 := wTemp;
    
    // присвоение результата в итоговую переменную rResult
    rResult := tcTemp.r;
    или любой другой вариант.
    Обмен можно и при помощи ротации выполнять, а можно и как в примере - прямым обменом.

    Тут плюс в отсутствии привязки к абсолютным адресам.

  9. #29

    По умолчанию

    Попробовал сегодня Modbus Scan просто найти устройства, нашёл, всё отлично.
    Потом попробовал ModbusTool, прочитать регистр из карты регистров которую сам нашёл на сайте производителя, float, пробовал разную перестановку байт, единственное адекватный вариант float AB CD, но значение всё равно какое то левое.
    Производитель написал, Вот ссылка на карту регистров для Эксперт https://vzljot.ru/upload/iblock/2c2/..._em_expert.pdf
    Регистр текущего расхода 349187, л/мин, формат float. Считываете функцией 4 два регистра с адреса 49186.

    Попробовал регистр который он дал, ошибка ILLEGAL DATA VALUE.
    Изображения Изображения

  10. #30

    По умолчанию

    Извините, коллеги. Ошибка вот в чём была, прибор у меня показывает в м3/час, а регистр читается в л/мин, умножил полученное значение на 0.06, получилось нужное значение ))

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. ПЛК110-60 и теплосчётчик Взлёт-027
    от Виктор_65 в разделе Эксплуатация
    Ответов: 44
    Последнее сообщение: 14.03.2025, 16:25
  2. МВ110-8АС + барьер КА5032Ех + Взлёт ТЭР
    от In_Da_Cher_A в разделе Мх110
    Ответов: 18
    Последнее сообщение: 27.05.2024, 13:50
  3. Выгрузка приложения из OWEN ПЛК200
    от V0lodya в разделе ПЛК2хх
    Ответов: 3
    Последнее сообщение: 30.08.2023, 11:31
  4. Взлёт ТСРВ-027 + СПК110 [М01] не дружат по RS-485
    от Андрей_Б. в разделе СПК210, СПК1xx [М01]
    Ответов: 2
    Последнее сообщение: 07.12.2019, 15:02
  5. СПК105 и ВЗЛЁТ ТСР-К (теплосчётчик-регистратор)
    от trejer в разделе Сетевые технологии
    Ответов: 5
    Последнее сообщение: 13.02.2018, 16:31

Ваши права

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