Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
#1

Bin файл из Modbus. Прочитать из файла область памяти - C++

20.07.2013, 14:15. Просмотров 1054. Ответов 20
Метки нет (Все метки)

Доброго времени суток!
Подскажите пожалуйста, у меня есть bin-файл из которого нужно достать данные полученные устройством и хранящиеся в ячейках памяти, т.е. смещение адреса - 0002h, адрес в MODBUS 0001h соответствует сетевому адресу прибора или прочитать из файла область 0x12 … 0x19 и обнаружить аббревиатуру и т.д и т.п.
Сначала думал, что воспользуясь hex-редактором получится это сделать, но не вышло, похоже что надо читать файловый поток данных и как-то обращаться к этим ячейкам и считывать информацию. Подскажите примерный план реализации на C++ и необходимый материал для этого. Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2013, 14:15     Bin файл из Modbus. Прочитать из файла область памяти
Посмотрите здесь:

C++ Найти максимальный и минимальный элемент,и вывести их в файл и Прочитать массив из файла.
Данные записать в файл F1.txt, затем прочитать оттуда, обрабатывались и записывались в бинарный файл F2.bin с проверкой C++
C++ bin файл
C++ Прочитать файл в обратном порядке т.е. встать в конец файла и прочитать до начальной позиции
Записать в файл F слова. Прочитать данные из файла и найти слова из 5 букв C++
C++ Из текстового файла прочитать четные числа и записать их в другой файл (С++)
C++ Из текстового файла прочитать четные числа и записать их в другой файл без использования массива (код С++)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6550 / 3970 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.07.2013, 14:22     Bin файл из Modbus. Прочитать из файла область памяти #2
если файлик с данными уже у вас есть, зачем вы нам пишите про модбас? ничё неясно...
Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
20.07.2013, 14:25  [ТС]     Bin файл из Modbus. Прочитать из файла область памяти #3
Просто дал всю информацию которую посчитал полезной, потому что не знаю влияет это на методику чтения данных или нет.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.07.2013, 14:37     Bin файл из Modbus. Прочитать из файла область памяти #4
Цитата Сообщение от Pigmalion Посмотреть сообщение
прочитать из файла область 0x12 … 0x19 и обнаружить аббревиатуру
Это что за область в файле? Аббревиатура что из себя представляет?
Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
20.07.2013, 14:55  [ТС]     Bin файл из Modbus. Прочитать из файла область памяти #5
Дано описание структуры данных в памяти, со списком адресов и информацией в них. Например в 0x12 … 0x19 содержится аббревиатура “DDC-04” или “DDC-05”. И обращаясь к этим адресам надо узнать что в них находится, как это сделать я не знаю.
raxp
10154 / 6541 / 477
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
20.07.2013, 14:57     Bin файл из Modbus. Прочитать из файла область памяти #6
Дано описание структуры данных в памяти
раз дано, выкладывайте.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.07.2013, 15:05     Bin файл из Modbus. Прочитать из файла область памяти #7
Файл можете выложить?
Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
20.07.2013, 15:17  [ТС]     Bin файл из Modbus. Прочитать из файла область памяти #8
Вот, пришлось разделить - не вмещались. 1.doc - bin-файл, изменил формат чтобы можно было прикрепить.
Вложения
Тип файла: doc структура2.doc (32.5 Кб, 4 просмотров)
Тип файла: doc структура3.doc (27.5 Кб, 3 просмотров)
Тип файла: doc структура1.1.doc (69.0 Кб, 4 просмотров)
Тип файла: doc Структура1.2.doc (56.5 Кб, 3 просмотров)
Тип файла: doc 1.doc (5.2 Кб, 6 просмотров)
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.07.2013, 17:11     Bin файл из Modbus. Прочитать из файла область памяти #9
bin заархивируйте и выложите, doc это не то, что нужно.
Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
20.07.2013, 17:37  [ТС]     Bin файл из Modbus. Прочитать из файла область памяти #10
Прикрепил архив. Но если расширение .doc на .bin поменять будет и предыдущий работать.
Вложения
Тип файла: rar 1.rar (183 байт, 7 просмотров)
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.07.2013, 17:52     Bin файл из Modbus. Прочитать из файла область памяти #11
Странный у вас bin. Что из него можно извлечь, если все байты одинаковые (исключая начальную область)? Или информация в этой начальной области?

Добавлено через 6 минут
Мне вот это нравится:
В файле, формируемом МСИ, область сигнатуры не всегда заполнена аббревиатурой “DDC-04” или “DDC-05”. Поэтому по данному признаку однозначно нельзя определить это файл образа динамограммы или нет. Хотя если аббревиатура по соответствующим адресам имеется – это файл ДДС и для сведения обоих типов к общему виду, в случае наличия сигнатуры в файле МСИ следует считать значение единицы кода усилия не в кг/100, а в граммах. Определение же корректности файла МСИ в случае отсутствия аббревиатуры можно произвести просканировав на корректность, например, время снятия динамограммы. И еще одна особенность файлов, формируемых МСИ. Если сигнатура отстутствует, следует учитывать, что даже если объем данных указан больше чем реально они записаны интерпретировать первый код 0xFFFF как окончание области, если аббревиатура существует, то адресное пространство распределить также как это было описано для файлов, формируемых MODBUS(см. выше).
Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
20.07.2013, 18:00  [ТС]     Bin файл из Modbus. Прочитать из файла область памяти #12
Меня это тоже удивило когда в hex-редакторе открыл. Получается что из него нельзя ничего прочитать или там как-то всё зашифровано? Не знаете что это может быть?
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.07.2013, 18:06     Bin файл из Modbus. Прочитать из файла область памяти #13
Цитата Сообщение от Pigmalion Посмотреть сообщение
или там как-то всё зашифровано?
Это навряд ли. Сам файл откуда взялся?
Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
20.07.2013, 18:07  [ТС]     Bin файл из Modbus. Прочитать из файла область памяти #14
Задание дали в универе - получить информацию
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.07.2013, 18:40     Bin файл из Modbus. Прочитать из файла область памяти #15
Цитата Сообщение от Pigmalion Посмотреть сообщение
Задание дали в универе - получить информацию
Я не про задание, я про файл. Тоже в универе дали? Каким образом он создавался не знаете?
Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
20.07.2013, 18:56  [ТС]     Bin файл из Modbus. Прочитать из файла область памяти #16
Да, файл дали вместе с заданием. Как именно создавался файл, я не знаю.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.07.2013, 20:03     Bin файл из Modbus. Прочитать из файла область памяти #17
МСИ файл, только в служебной области не совпадают с таблицей 2 положение года и месяца.
Кликните здесь для просмотра всего текста
0 25
1 20
2 38
3 13
4 5
5 32
6 3
7 99
8 3
9 0
a 0
b 0
c 0
d 0
e 0
f 0
10 0
11 0
12 0
13 0
14 0
15 0
16 0
17 0
18 0
19 0
1a 0
1b 51
1c 48
1d 51
1e 50
1f 48
20 0
21 0
22 0
23 0
24 0
25 0
26 0
27 0
28 0
29 0
2a 0
2b 0
2c 48
2d 48
2e 48
2f 51
30 0
31 0
32 0
33 0
34 0
35 0
Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
20.07.2013, 20:24  [ТС]     Bin файл из Modbus. Прочитать из файла область памяти #18
Это значения из hex-редактора, переписанные в столбик, и как вы из этого набора поняли, что это МСИ файл? Как вы думаете, что значит заполненная одинаковыми числами область в конце?
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.07.2013, 20:44     Bin файл из Modbus. Прочитать из файла область памяти #19
Цитата Сообщение от Pigmalion Посмотреть сообщение
и как вы из этого набора поняли, что это МСИ файл?
0x12 … 0x19 сигнатуры нет; эти области: 0x10… 0x1F и 0x20… 0x2F явно совпадают с таблицей 2, потом идут 0 до 0x80, где у МСИ начинается статусная область; если перевести первые пять байт (0 - 4) c ДДК, то получится:14 часов 19 минут, 26 мая 013 года. Правда прийдётся поменять порядок следования месяца и года, но это может и опечатка в таблице.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2013, 23:44     Bin файл из Modbus. Прочитать из файла область памяти
Еще ссылки по теме:

C++ Как сохранить контейнеры STL в файл. И как потом их прочитать из файла
Прочитать массив из файла, изменить, вывести в другой файл C++
C++ Прочитать данные из xlsx файла и записать в другой файл
C++ Закачка файла и перевод в область памяти типа PVOID
Прочитать и переписать из текстового файла в текстовый файл C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Pigmalion
23 / 20 / 3
Регистрация: 18.06.2013
Сообщений: 83
20.07.2013, 23:44  [ТС]     Bin файл из Modbus. Прочитать из файла область памяти #20
Спасибо за подробное объяснение. Но эта часть файла была более менее понятна, больше интересует продолжение, где как я понял тоже должны быть данные, а там сплошные hhhh.
Yandex
Объявления
20.07.2013, 23:44     Bin файл из Modbus. Прочитать из файла область памяти
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru