Просмотр полной версии : ПЛК 100, регистры и CRC
Мы работаем с контроллерами ПЛК 100, возникла необходимость программировать их по интерфейсу RS232, RS485 и LAN.
Насколько мы поняли, это возможно. И библиотеки какие-то есть, но вопрос не по этому.
1. Как узнать адрес контроллера, где смотреть адрес контроллера в CodeSys, например или где-то в другой программе?
2. Какие адреса регистров и как узнать их номера в CodeSys, например. То, что там есть конфигурационный файл это понятно, но конкретно как узнать адрес регистра и адрес ячейки, то, что требуется для посылания комманды по протоколу Modbus?
3. Почему в англоязычной оригинальной версии протокола Modbus контрольная сумма CRC считается на первых шагах так
- выполняется операция XOR над первым байтом сообщения и младшим байтом CRC-регистра!!!!!
- а в рускоязычном протоколе Modbus контрольная сумма считается немного иначе: выполняется операция XOR над первым байтом сообщения и старшим байтом CRC-регистра!!!!!
Николаев Андрей
06.06.2011, 12:34
1. Посмотрите РП на прибор. Многие ответы появятся.
2. Для самостоятельной работы с портами есть библиотеки SysLibCom и UNM. Пример работы с ними - на форуме.
1. Посмотрите РП на прибор. Многие ответы появятся.
Не появятся. Прочитал от начала и до конца РП. Нет в РП ответов на мои вопросы. Я для этого и задал вопрос в этом месте. Ответ скорее всего очевиден, но я не знаю какой.
Вы ответили мне тоже самое, что пойди поищи в гугле.
2. Библиотеки мне не нужны, мне не нужны также примеры, вопрос звучал не так. Пожалуйста внимательно прочитайте вопрос.
Как послать байт данных и использовать библиотеки я знал ещё несколько лет назад.
Вопрос был в том что послать и где узнать что послать. И почему не так как надо подсчитывается контрольная суммма.
Пожалуйста кто может подскажите. Все вопросы ещё актуальны.
Николаев Андрей
06.06.2011, 15:54
Ну если бы хотел послать... к гуглу, так бы и сделал. А я дал Вам единственный резонный ответ.
http://www.owen.ru/uploads/plc_configuration_owen__.pdf
Что конкретно не понятно в описании где и как задается адрес для различных подключений? стр.45
Что конкретно не понятно в словах о том, что Вы сами формируете память ModBus и соответственно сами подсчитываете номера регистров, учитывая выравнивание... стр.56
Если бы Вы сказали - не понял с выравниванием, это одно. Когда Вы говорите, что нету ответов - документ Вы не открывали.
Извините, наболело.
На сколько я знаю алгоритм обмена, в том числе CRC брались с www.modbus.org При использовании Конфигурации ПЛК это вопрос скорее к опрашивающей стороне. Как в прочем и при использовании библиотеки ModBus.lib
А что Вы понимаете под русскоязычной и англоязычной версией протокола ModBus
Какая литература, так и ищут.
По поводу CRC. Если вы делаете по англоязычной оригинальной версии подсчёт, то пожалуйста выложите вариант подсчёта CRC, который Вы используется при работе контроллера, чтобы я смог задать дальше конкретный вопрос, чтобы не тыкать пальцем в небо, можете код на любом языке представить, хотя бы на Си.
А ещё лучше привести тут текст 2-го пункта расчёта CRC, который вы используете, потому что кто то сделал ошибку и я хочу в этом разобраться.
capzap
Я нашёл ошибку в переводе и хочу её исправить.
Уважаемый я уже сам написал код расчёта CRC на Си по англоязычному варианту, добился передачи данных и хотел поправить ошибку, чтобы другие не ошиблись.
Вы пожалуйста внимательно перечитывайте мои вопросы. Первое с чем я столкнулся на форуме, это невнимательное чтение вопросов.
Кроме того, форумы существуют, чтобы форумчане общались между собой и получали ответы на свои вопросы, но никак не для того, чтобы переадресовывать на другие темы или другие источники.
Википедия имеет своё назначение, форум своё, распространённая ошибка зачастую - забывать что форум для общения и решения вопросов на месте, а не переадресации. Это касается не только этого форума, а других также.
Так что я бы посоветовал вам самим идти на википедию и читать, а я хочу остаться на форуме и общаться в форуме.
http://www.owen.ru/uploads/plc_configuration_owen__.pdf
стр.45
стр.56
это была полезная информация, которую я искал, но в виду огромного объёма литературы Овен не нашёл сам. Спасибо. Хватило 30 минут чтобы решить первые два вопроса.
Остальные ваши комментарии по поводу рассуждений моих способностей были лишними и не относились к делу. Был задан вопрос и славабогу был найден ответ. Не считая CRC.
А что Вы понимаете под русскоязычной и англоязычной версией протокола 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 - низкий, младший), а в переводе над старшим. Что противоречит одно одному. Это ошибка в переводе, вывод - если модератор об этом не слышал, то либо никто не программирует ПЛК, либо все допускают ошибки и ни у кого ничего не работает.
Николаев Андрей
07.06.2011, 17:18
единственне за что Вас можно похвалить, это то что Вы самостоятельно "изобретаете велосипед", терминология у Вас страдает.
Господа, прекращайте. Всегда есть такой Данко. Это нормально. Без этого было бы скучно...
To Danko: Спасибо за Вашу критику, мы постараемся как то более понятно расположить один из двух основных документов по работе с контроллером, сейчас расположенных "в корне" что на диске, что на сайте.
Рад, что мы во всем разобрались.
Рад, что мы во всем разобрались.
Не во всём!
Спасибо что вы пообещали разместить документы по контроллеру, но вопрос был в расчёте CRC, вопрос остался открытым, как вы расчитываете CRC, приведите пожалуйста ваш пример, чтобы избежать недоразумений в разработке в дальнейшем.
Николаев Андрей
08.06.2011, 15:41
если бы Вы не сопротивлялись и заглянули в библиотеку modbus.lib там есть ФБ расчета контрольной суммы
+1 :cool::cool: :cool:
Модератор, вы наотрез отказываетесь сотрудничать, теперь придётся только звонить тратить деньги на телефон, чтобы выяснить этот вопрос, я тут хотел обсудить расчёт CRC, но вы упорно отказываетесь.
Просьба была уже неоднократно, ещё с самого первого нашего поста выложить расчёт CRC в этой теме форума.
Можно было просто сказать что вы некомпетентны в этом вопросе и мы бы не тратили на обсуждение время.
Николаев Андрей
13.06.2011, 12:25
Предлагаю не начинать выяснять у кого больше компетентность...
1. Вы так и не сформулировали что и зачем Вам надо.
2. Я говорил и повторю еще раз - подсчет CRC взят с сайта ModBus.org
Вам код нужен? Самому сложно написать - хотите, чтобы мы свой отдали? Не жалко - пишите на plc@owen.ru - попробуем как то помочь.
Код в CoDeSys или во внешней программе?
Закон формирования CRC мне и не нужно знать. Это вне моей компетенции, для этого у нас есть отдел программистов.
Я думал, что вы как то связаны с отделом программистов и можете предоставить алгоритм расчёта CRC.
Ладно, не нужно уже, они наверно пользовались оригинальной англоязычной версией Modbus, я проверил вашу библиотеку, там правильно считается CRC, так как положено. Переводы Modbus на русский возможно делались не вами и не имеют отношения к вашей библиотеке, я думал обратное. Вопрос закрыт. Спасибо.
Код во внешней программе, VC++. Но это уже не относится к этой теме.
я бы посоветовал отправится на википедию прочитать что такое модбас. Сперва формируется пакет вычисляется контрольная сумма а потом уже отправляется в зависимости от производителя либо младшим либо старшим байтом в перед
А в какой программе это всё делается,не думаю в самой кодесисе, я думаю делается в отдельной спец. программе?
А в какой программе это всё делается,не думаю в самой кодесисе, я думаю делается в отдельной спец. программе?
http://www.owen.ru/forum/showthread.php?t=10714&p=62615&viewfull=1#post62615
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot