Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 47

Тема: Modbus RTU CRC16 полином A001h

  1. #11

    По умолчанию

    Модбас - мастер. он сам считает

  2. #12

    По умолчанию

    [Модбас - мастер. он сам считает]
    То есть в конфигурации нужно выбрать Modbus(Master) - Universal modbus devise , и с помощью выходных регистров задать переменные, которые нужно передать, а с помощью входных - переменные, которые нужно принять, а Modbus(Master) - Universal modbus devise автоматически будет создавать CRC16 , такую как нужно для выходной посылки и соответственно анализировать принятую CRC16?

  3. #13

    По умолчанию

    vojt, да, именно так.
    ________________________
    зы откройте, пожалуста,
    "Конфигурирование
    области ввода/вывода ПЛК1хх
    Руководство пользователя " с диска.
    там все описано.
    Последний раз редактировалось Jeck; 25.01.2010 в 00:39.

  4. #14

    По умолчанию

    В том и дело, что в "Конфигурирование области ввода/вывода ПЛК1хх
    Руководство пользователя " ничего не сказано о CRC для Modbus(Master).

  5. #15

    По умолчанию

    vojt, да она вам и не нужна! что вы в нее уперлись. модуль сам сформирует посылку, сам подсчитает, сам проверит ответ. все. вы настроили модуль и работаете с регистрами и незабиваете себе голову подробностями, че он там делает и зачем.
    зы посмотрите примеры - подключение панели 320 по модбас в полезностях

  6. #16

    По умолчанию

    Jeck, да, может быть, я действительно слишком ухожу в детали. Сейчас просто нет железа под рукой. Позже попытаюсь практически это осуществить и возможно возникнут еще вопросы.Тем не мене спасибо за совет!

  7. #17

    По умолчанию

    а какой стандартный модуль можно применить?

  8. #18

    По умолчанию

    Модулем является среда программирования. Настройка протокола обмена заключается в конкурировании области PLC_Configuration.

    Вам поможет раздел Форум-ПЛК-Примеры программ и полезности.

  9. #19

    По умолчанию

    А если интересно как вообще работает протокол модбас, можно зайти в примеры и посмотреть готовый пример:
    http://www.owen.ru/forum/showpost.ph...3&postcount=63

  10. #20

    По умолчанию

    вот кому интересно функция на паскале подсчета CRC16 для ModBus:

    function CRC16(Msg: string) :Word;
    var
    i, j :Integer;
    begin
    Result := $FFFF;
    for i := 1 to Length(Msg)
    do
    begin
    Result := Ord(Msg[i]) xor Result;
    for j := 1 to 8
    do
    begin
    if (Result and 1) = 1
    then
    Result := (Result shr 1) xor $A001
    else
    Result := Result shr 1;
    end;
    end;
    end;

    пример формирования посылки для запроса состояний дискретных входов на ModBus RTU для прибора с адресом 16:

    Msg := #$10#$03#$00#$33#$00#$01;

    Msg := Msg + Chr(Lo(CRC16(Msg))) + Chr(Hi(CRC16(Msg)));

    отправляем посылку в порт и получаем ответ.

Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя

Ваши права

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