Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 30

Тема: ПЛК110. Опрос датчика давления Zet 7012-A по ModBus RTU

  1. #11
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от in37usd Посмотреть сообщение
    я задал вопрос продавцам по таблице регистров датчика,
    но скорее всего надо будет создавать цепочку байт запроса к датчику в соответствии с протоколом, который они
    предложили а таблицу регистров датчика никто не предоставит
    скорее всего Вы задали продавцам не правильный вопрос, протокол подразумевает под собой, опрос определенной области памяти с помощью функций, начальный адрес области где находятся данные и количество слов, под тот тип данных которые требуется получить, чтоб в канале передачи данных устранить возможные сбои запрос/ответ дополняются контрольной суммой, её можно вычислять как функциями, так и таблицей готовых значений. Так вот весь этот процесс автоматизирован уже давно, требуется знать только начальный адрес и количество слов(или хотя бы тип данных)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

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

    По умолчанию

    Цитата Сообщение от in37usd Посмотреть сообщение
    какой адрес датчика установлен в датчике на заводе???
    я такой вопрос задал и продавцам тоже
    но может и тут кто подскажет, уважаемые!
    заходите к ним на сайт и ищите Формирование таблицы адресов Modbus
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #13

    По умолчанию

    Цитата Сообщение от in37usd Посмотреть сообщение
    я задал вопрос продавцам по таблице регистров датчика,
    но скорее всего надо будет создавать цепочку байт запроса к датчику в соответствии с протоколом, который они
    предложили а таблицу регистров датчика никто не предоставит
    .................................................. ..................................
    какой адрес датчика установлен в датчике на заводе???
    я такой вопрос задал и продавцам тоже
    но может и тут кто подскажет, уважаемые!
    //////////////////////////////////////////////////////////////////////
    КАК НА ПЛК110 СЧИТАТЬ ПОПРОЩЕ CRC16 ???В ST имеется в виду!!

  4. #14

    По умолчанию

    а они приводят коды функций modbus -ZETLAB
    0х03 - команда чтения структуры данных(значения)
    0х06 -команда чтения структуры данных (описателей)
    0х04- команда запроса потоковых данных(Float)
    0x14- команда запроса потоковых данных(ырщке)
    0х10- команда записи данных
    Команда чтения структуры данных (значения (0x03) или описателей (0x06))

    Данные команды предназначены для чтения общей информации о датчике.

    Структура команды
    Адрес обращения – адрес, по которому начинаем считывать данные;
    Квант обращения – количество данных, которое хотим считать (в словах (слово – 2 байта));
    Кол-во байт для обращения – количество данных, которое хотим считать в байтах;
    Данные – данное поле принимает значение только в ответе на данную команду. Хранит в себе считанные данные.
    Команда запроса потоковых данных (float (0x04) или short (0x14))

    Данные команды предназначены для чтения данных с датчика. Команда 0x04 – данные выравниваются по границе в 4 байта, 0x14 – по границе в 2 байта.

    Нода – конкретное устройство, имеющее свой уникальный адрес в сети. В устройствах на шине RS485, одна нода может иметь несколько каналов, в отличии, от устройств на шине CAN, где каждый канал имеет свой адрес ноды.

    Структура команды
    Для CAN:

    Адрес обращения – не имеет значения;
    Квант обращения – размер данных, которые хотим считать в словах;
    Кол-во байт для обращения – количество данных, которые хотим считать в байтах;
    Данные – данное поле принимает значение только в ответе на данную команду.
    Для RS485:

    Адрес обращения – адрес на поле “значение канала (dev_structure.channel.value)”, в структуре “канал (dev_structure.channel)”;
    Квант обращения – размер данных, которые хотим считать в словах;
    Кол-во байт для обращения – количество данных, которые хотим считать в байтах;
    Данные – данное поле принимает значение только в ответе на данную команду.
    Команда записи данных (0x10)

    Данная команда предназначена для записи данных, изменения конфигурации датчика.

    Структура команды
    Адрес обращения – адрес, по которому начинаем записывать данные;
    Квант обращения – количество данных, которое хотим записать (в словах);
    Кол-во байт для обращения – количество данных, которое хотим записать в байтах;
    Данные – хранит в себе записываемые данные.
    Последний раз редактировалось in37usd; 04.09.2017 в 09:24.

  5. #15

    По умолчанию

    адрес датчика попробую 0 , если не пойдет, то попробую 1

  6. #16

    По умолчанию

    CRC приходилось считать на PIC16F876- на Си- вопросов не было

  7. #17
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    Вы хоть читаете, что вам пишут?
    В пятницу прислал вам ссылку на документ.
    В нем написано:
    Примечание: таблицы адресов регистров для датчиков ZET70xx представлены на сайте http://zetlab.ru/,
    Вам нужна таблица как на рис.8, для вашего датчика.
    Можно попробовать использовать из примера в документе.
    Они обычно однотипные.
    Создайте узел модбас в конфигураторе и пееменную для чтения 4 байт.
    считайте по адресу 20 (или 4 не очень понятно) текущее значение.
    ЗЫ адреса прибора в сети задаются, судя по таблице от 1 до 63. По умолчанию обычно 1.
    Скрость 19200 1 8 о

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

    По умолчанию

    Должны же быть примеры на ST для расчета CRC.
    Вот пример на ST но тут полином кажется не Modbus-овсий, но может код поможет.

    Функция crc16 по полиному 0x1021 в CoDeSys на ST:

    -------------------------------
    FUNCTION crc16_1021 : WORD

    VAR_INPUT
    pcBlock: POINTER TO BYTE;
    len: WORD;
    END_VAR

    VAR
    crc, i, w: WORD;
    END_VAR
    -------------------------------
    crc := 16#FFFF;
    WHILE (LEN > 0) DO
    w := pcBlock^;
    pcBlock := pcBlock + 1;
    w := SHL(w,8);
    crc := crc XOR w;
    FOR i := 0 TO 7 DO
    IF ((crc AND 16#8000) <> 0) THEN
    crc := SHL(crc,1) XOR 16#1021;
    ELSE
    crc := SHL(crc,1);
    END_IF
    END_FOR
    LEN := LEN - 1;
    END_WHILE
    crc16_1021 := crc;
    RETURN;

  9. #19
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Должны же быть примеры на ST для расчета CRC.
    Вот пример на ST но тут полином кажется не Modbus-овсий, но может код поможет.
    ну вот зачем это писать, если она ни как не связана с модбас, есть же библиотека modbus.lib в ней гарантированно существует блок отвечающий за формирование контрольной суммы. Уж если хотите дать материалы для развития, то сошлитесь на оскат бибку, там имеется универсальный вычислитель контрольных сумм
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  10. #20

    По умолчанию

    lara197aпишет:
    "Вам нужна таблица как на рис.8, для вашего датчика."


    не нахожу таблицу!!!!!!!!

    а скорость обмена для 485 они сообщают 57600
    parity Enable :1
    буду читать 4 байта по адресу 20 (или 4) адрес прибора в сети 1
    ..........................................
    а если мне надо читать 2 датчика поочередно, то их можно подключить к выходам
    один к А1-B1
    второй к A2-В2 но с одинаковым адресом "1" ??
    .................................................. ..............................
    0х03 - команда чтения структуры данных(значения)
    0х06 -команда чтения структуры данных (описателей)
    0х04- команда запроса потоковых данных(Float)
    0x14- команда запроса потоковых данных(short)
    0х10- команда записи данных
    .........планирую так
    0х01- адрес устройства

    0х04-команда запроса потоковых данных(Float)
    или
    0х14-команда запроса потоковых данных(short)

    0х00 0х20- адрес обращения
    или
    0х00 0х04
    .........
    0х00 0х04- количество слов
    далее контрольная сумма
    это когда еще датчики прибудут!
    Последний раз редактировалось in37usd; 04.09.2017 в 12:21.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Проверка датчика давления
    от EVGEN_ в разделе Эксплуатация
    Ответов: 49
    Последнее сообщение: 22.10.2016, 06:23
  2. Подключение датчика давления к ТРМ200
    от sharz в разделе Эксплуатация
    Ответов: 42
    Последнее сообщение: 05.07.2016, 11:23
  3. Ответов: 1
    Последнее сообщение: 12.05.2015, 16:06
  4. Подключение датчика давления к ПЧВ2
    от Maikl37 в разделе Эксплуатация
    Ответов: 9
    Последнее сообщение: 01.08.2013, 19:27
  5. Ответов: 1
    Последнее сообщение: 19.10.2012, 14:10

Ваши права

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