Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 18

Тема: ПЛК 100, регистры и CRC

  1. #1
    Пользователь
    Регистрация
    13.04.2011
    Адрес
    Донецк
    Сообщений
    89

    По умолчанию ПЛК 100, регистры и CRC

    Мы работаем с контроллерами ПЛК 100, возникла необходимость программировать их по интерфейсу RS232, RS485 и LAN.

    Насколько мы поняли, это возможно. И библиотеки какие-то есть, но вопрос не по этому.

    1. Как узнать адрес контроллера, где смотреть адрес контроллера в CodeSys, например или где-то в другой программе?

    2. Какие адреса регистров и как узнать их номера в CodeSys, например. То, что там есть конфигурационный файл это понятно, но конкретно как узнать адрес регистра и адрес ячейки, то, что требуется для посылания комманды по протоколу Modbus?

    3. Почему в англоязычной оригинальной версии протокола Modbus контрольная сумма CRC считается на первых шагах так
    - выполняется операция XOR над первым байтом сообщения и младшим байтом CRC-регистра!!!!!
    - а в рускоязычном протоколе Modbus контрольная сумма считается немного иначе: выполняется операция XOR над первым байтом сообщения и старшим байтом CRC-регистра!!!!!

  2. #2

    По умолчанию

    1. Посмотрите РП на прибор. Многие ответы появятся.
    2. Для самостоятельной работы с портами есть библиотеки SysLibCom и UNM. Пример работы с ними - на форуме.

  3. #3
    Пользователь
    Регистрация
    13.04.2011
    Адрес
    Донецк
    Сообщений
    89

    По умолчанию

    1. Посмотрите РП на прибор. Многие ответы появятся.
    Не появятся. Прочитал от начала и до конца РП. Нет в РП ответов на мои вопросы. Я для этого и задал вопрос в этом месте. Ответ скорее всего очевиден, но я не знаю какой.
    Вы ответили мне тоже самое, что пойди поищи в гугле.

    2. Библиотеки мне не нужны, мне не нужны также примеры, вопрос звучал не так. Пожалуйста внимательно прочитайте вопрос.

    Как послать байт данных и использовать библиотеки я знал ещё несколько лет назад.
    Вопрос был в том что послать и где узнать что послать. И почему не так как надо подсчитывается контрольная суммма.

    Пожалуйста кто может подскажите. Все вопросы ещё актуальны.

  4. #4

    По умолчанию

    Ну если бы хотел послать... к гуглу, так бы и сделал. А я дал Вам единственный резонный ответ.
    http://www.owen.ru/uploads/plc_configuration_owen__.pdf

    Что конкретно не понятно в описании где и как задается адрес для различных подключений? стр.45
    Что конкретно не понятно в словах о том, что Вы сами формируете память ModBus и соответственно сами подсчитываете номера регистров, учитывая выравнивание... стр.56
    Если бы Вы сказали - не понял с выравниванием, это одно. Когда Вы говорите, что нету ответов - документ Вы не открывали.
    Извините, наболело.

    На сколько я знаю алгоритм обмена, в том числе CRC брались с www.modbus.org При использовании Конфигурации ПЛК это вопрос скорее к опрашивающей стороне. Как в прочем и при использовании библиотеки ModBus.lib
    А что Вы понимаете под русскоязычной и англоязычной версией протокола ModBus

  5. #5
    Пользователь
    Регистрация
    13.04.2011
    Адрес
    Донецк
    Сообщений
    89

    По умолчанию

    Какая литература, так и ищут.

  6. #6
    Пользователь
    Регистрация
    13.04.2011
    Адрес
    Донецк
    Сообщений
    89

    По умолчанию

    По поводу CRC. Если вы делаете по англоязычной оригинальной версии подсчёт, то пожалуйста выложите вариант подсчёта CRC, который Вы используется при работе контроллера, чтобы я смог задать дальше конкретный вопрос, чтобы не тыкать пальцем в небо, можете код на любом языке представить, хотя бы на Си.
    А ещё лучше привести тут текст 2-го пункта расчёта CRC, который вы используете, потому что кто то сделал ошибку и я хочу в этом разобраться.
    Последний раз редактировалось danko; 07.06.2011 в 09:50.

  7. #7
    Пользователь
    Регистрация
    13.04.2011
    Адрес
    Донецк
    Сообщений
    89

    По умолчанию

    capzap
    Я нашёл ошибку в переводе и хочу её исправить.
    Уважаемый я уже сам написал код расчёта CRC на Си по англоязычному варианту, добился передачи данных и хотел поправить ошибку, чтобы другие не ошиблись.
    Вы пожалуйста внимательно перечитывайте мои вопросы. Первое с чем я столкнулся на форуме, это невнимательное чтение вопросов.
    Кроме того, форумы существуют, чтобы форумчане общались между собой и получали ответы на свои вопросы, но никак не для того, чтобы переадресовывать на другие темы или другие источники.
    Википедия имеет своё назначение, форум своё, распространённая ошибка зачастую - забывать что форум для общения и решения вопросов на месте, а не переадресации. Это касается не только этого форума, а других также.
    Так что я бы посоветовал вам самим идти на википедию и читать, а я хочу остаться на форуме и общаться в форуме.
    Последний раз редактировалось danko; 07.06.2011 в 13:02.

  8. #8
    Пользователь
    Регистрация
    13.04.2011
    Адрес
    Донецк
    Сообщений
    89

    По умолчанию

    Цитата Сообщение от Николаев Андрей Посмотреть сообщение
    это была полезная информация, которую я искал, но в виду огромного объёма литературы Овен не нашёл сам. Спасибо. Хватило 30 минут чтобы решить первые два вопроса.
    Остальные ваши комментарии по поводу рассуждений моих способностей были лишними и не относились к делу. Был задан вопрос и славабогу был найден ответ. Не считая CRC.

  9. #9
    Пользователь
    Регистрация
    13.04.2011
    Адрес
    Донецк
    Сообщений
    89

    По умолчанию

    Цитата Сообщение от Николаев Андрей Посмотреть сообщение
    А что Вы понимаете под русскоязычной и англоязычной версией протокола ModBus
    Я искал на этом форуме как рассчитать CRC, потому что в оригинале протокола Modbus есть такой пункт:

    ...
    2. Exclusive OR the first 8–bit byte of the message with the low–order byte
    of the 16–bit CRC register
    , putting the result in the CRC register.
    ...

    А на этом форуме я встретил пример вычисления CRC, предоставленный модераторами из переведенного кем-то один раз (и потом удачно всеми скопированном кому не лень) описания Modbus в таком виде:

    ...
    2. Выполнить операцию XOR над первым байтом данных и старшим байтом байтом регистра. Поместить результат в регистр.
    ...

    Т.е. в оригинале выполняется операция над младшим байтом регистра (low-order - низкий, младший), а в переводе над старшим. Что противоречит одно одному. Это ошибка в переводе, вывод - если модератор об этом не слышал, то либо никто не программирует ПЛК, либо все допускают ошибки и ни у кого ничего не работает.

  10. #10

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    единственне за что Вас можно похвалить, это то что Вы самостоятельно "изобретаете велосипед", терминология у Вас страдает.
    Господа, прекращайте. Всегда есть такой Данко. Это нормально. Без этого было бы скучно...

    To Danko: Спасибо за Вашу критику, мы постараемся как то более понятно расположить один из двух основных документов по работе с контроллером, сейчас расположенных "в корне" что на диске, что на сайте.

    Рад, что мы во всем разобрались.

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

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