|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.07.2013, 15:47 | #1 |
Пользователь
Регистрация: 04.11.2010
Сообщений: 76
|
Modbus из Pascal в C++ Builder
помогите вот это переписать в С++ Builder , и если есть возможность исходник и откомпилированая программа, я с этим только учусь и хотелбы подробно знать где что происходит !
Исходник взят из руководства, нужно опросить датчик по порту и вывести на экран опрос, всем большое спасибо 4. Генерация и проверка контрольной суммы. Контрольная сумма (CRC16) представляет собой циклический проверочный код на основе неприводимого полинома A001h. Передающее устройство формирует контрольную сумму для всех байт передаваемого сообщения. Принимающее устройство аналогичным образом формирует контрольную сумму для всех байт принятого сообщения и сравнивает ее с контрольной суммой, принятой от передающего устройства. При несовпадении сформированной и принятой контрольных сумм генерируется сообщение об ошибке. Поле контрольной суммы занимает два байта. Контрольная сумма в сообщении передается младшим байтом вперед. Можно выделить два способа формирования контрольной суммы: алгоритмический и табличный. 4.1. Формирование контрольной суммы алгоритмическим способом. Алгоритмический способ формирования контрольной суммы прост в понимании, но имеет более низкое быстродействие по сравнению с табличным. Контрольная сумма формируется по следующему алгоритму: 1. загрузка CRC регистра (16 бит) единицами (FFFFh); 2. исключающее ИЛИ с первыми 8 битами байта сообщения и содержимым CRC регистра; 3. сдвиг результата на один бит вправо; 4. если сдвигаемый бит = 1, исключающее ИЛИ содержимого регистра со значением A001h; 5. если сдвигаемый бит = 0, повторить шаг 3; 6. повторять шаги 3, 4, 5 пока не будут выполнены 8 сдвигов; 7. исключающее ИЛИ со следующими 8 битами байта сообщения и содержимым CRC регистра; 8. повторять шаги 3 – 7 пока все байты сообщения не будут обработаны; 9. конечное содержимое регистра будет содержать контрольную сумму. Подпрограмма алгоритмического формирования контрольной суммы на языке Паскаль: Код:
5.1. Функция 03h – чтение группы регистров. Функция 03h обеспечивает чтение содержимого регистров ведомого устройства. Широковещательная передача не поддерживается. В запросе ведущего содержится адрес начального регистра, а также количество слов для чтения. Адресация регистров начинается с нуля. Различия между запросом чтения регистров различных типов не существует. К примеру, запрос на чтение двух регистров типа INT совпадает с запросом на чтение одного регистра типа FLOAT. Ответ ведомого содержит количество возвращаемых байт и запрошенные данные. Если количество слов в запросе превышает 120 (240 байт), разбиение ответа на кадры не производится. Количество возвращаемых регистров ограничивается 120. Для некоторых приборов количество возвращаемых регистров ограничивается величиной менее 120 слов. Подробная информация содержится в руководстве по эксплуатации на прибор. Функция 08h обеспечивает ряд тестов для проверки системы связи между ведущим и ведомым, а также для проверки различных внутренних условий ведомого. Широковещательная передача не поддерживается. Функция использует поле подфункции для конкретизации выполняемого действия (теста). Получение диагностической функции не должно оказывать влияние на работу ведомого устройства. Подфункция 00h - возврат данных запроса. Данные, переданные в поле данных запроса должны быть возвращены в поле данных ответа. Если нужна еще какая информация говорите. Потому как я пытаюсь понять и завтра нужно сдвинутся с места всем огромное спасибо за ответы |
14.07.2013, 19:00 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...вы считаете, что переписав код из Delphi в Си-билдер, ваше понимание сдвинется с точки покоя и все сразу заработает? Сторонний модбас монитор, к примеру MBRTU пробовали?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
14.07.2013, 19:12 | #3 | |
Пользователь
Регистрация: 04.11.2010
Сообщений: 76
|
Цитата:
Не стороним модбас монитором не пользовался сейчас скачал мод бас терминал 2 незнаю что из этого выйдет и как мне значения моего регистратора температур вписать в Си билдере чтобы все показания температуры велись программно |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрос ModBus | ольгаг | Общие вопросы C/C++ | 1 | 04.09.2012 09:35 |
компонент modbus | Snake_ua | Компоненты Delphi | 4 | 27.07.2010 08:40 |
CRC c полиномом MODBUS | Gawwws | Microsoft Office Excel | 2 | 27.02.2010 00:10 |