|
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 88
|
|
Работа с весовым терминалом CI-5010A по RS-232/42208.09.2014, 15:42. Показов 13976. Ответов 46
Метки нет (Все метки)
Здравствуйте, уважаемые форумчане! Я только начинаю изучение c, программирование микроконтроллеров!
Мне поставили такую интересную задачу - наглядно вывести данные с Com-порта весового устройства. Данные поступают на порт постоянно. Примерно 3 раза/сек. Нужно, чтобы они аккуратно складывались, к примеру, в текстовой файл, чтобы в любой момент можно было посмотреть историю взвешиваний. Т.е. строчка - дата, вес. Трудности: Отсечь лишние. В день может быть примерно 10-20 взвешиваний тяжелых машин. Но мне не надо (3*60*60*24) данных веса за 1 день. Т.е. выводить бы примерно каждые 3 секунды или только когда будет взвешивание. Ноль, который будет бОльшую часть времени не нужен. Взвешивание: Грузовик заезжает на платформу. Весы моментально реагируют и пулеметом выстреливают (примерно 3 раза/сек) данные - нарастающий вес. Когда грузовик останавливается, вес успокаивается в верхней точке. НО, он может колебаться +- несколько десятков кг. Так устроено оборудование. Затем он уезжает, вес стремительно уменьшается до +-нуля. Ребят, помогите. Задача интересная, но я сам не осилю.
0
|
|
| 08.09.2014, 15:42 | |
|
Ответы с готовыми решениями:
46
Автономная работа с весовым терминалом по RS-232 Работа с весовым терминалом в qt Преобразователь интерфейсов RS-232/422/485 ADAM 4542+ |
|
|
|
| 08.09.2014, 17:44 | |
|
Задача и правда интересная. Я бы разбил ее на три части - определение событий "машина приехала", "машина уехала" и "машина на платформе".
Первые два определить просто - невесомых машин не бывает, можно выставить порог срабатывания, ниже которого мы считаем, что на платформе ничего нет. В верхней же точке я бы применил апериодический фильтр первого порядка - и как только на его выходе изменение сигнала станет меньше некоего заданного - производить запись. PS: если нужно подробнее, могу набросать на си что и как.
1
|
|
|
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 88
|
|
| 08.09.2014, 21:41 [ТС] | |
|
vantfiles, Был бы очень благодарен!
Уже подумывал выводить данные просто каждые 5 секунд. Залез в программирование последовательного порта - так там вообще тьма тьмущая..) Сам в С не особо) так там совсем мрак)
0
|
|
|
|
|
| 08.09.2014, 23:09 | |
|
1- укажите наименование весового терминала (контроллера) и ссылку на его описание, документацию.
2- приложите полный дамп посылок с весового терминала в теме в текстовом виде и в виде HEX, снятом PortMon-итором, начиная с момента отсутствия машины на платформе, далее ее заездом и съездом. Дамп должен быть полным, т.е. даже с настройками порта, это делает с успехом PortMon. 3- из опыта общения с разного рода весами, поток они гонят постоянно по последовательному порту с неизменной структурой (не считая аварийные сигналы) прямо в аски, меняются лишь данные. Но далеко не факт, также возможны и различные предварительные команды инициализации. 4- задача ваша должна быть разделена на подзадачи: получение данных с порта, накопление данных, фильтрация и выборка, далее логгирование в файл. Рекомендую Работа с COM-портом с помощью потоков.pdf Литература по ЦОС и алгоритмам
0
|
|
|
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 88
|
|
| 09.09.2014, 08:43 [ТС] | |
|
raxp
1. Этот зверь CI-5010A.pdf http://cas.ru/4_tehn/pdf/CI-5010A.pdf http://www.scale.ru/UserFiles/... -guide.pdf 2. Скачал PortMon. Как понял, мне нужно - connect, выбрать hex, сделать Log to file as... ? 4. Думаю, на первый раз достаточно просто выводить данные каждые 3 секунды.
0
|
|
|
|
|
| 09.09.2014, 09:20 | |
|
1- согласно описанию фича цифровой фильтрации встроена в сам весоизмерительный терминал (F04, F10 вплоть до усреднения). Среди прочего режим передачи определяется F14 (непрерывная, передача после успокоения и в ждущем).
2- да. 4- рано об этом думать, да и при активации фильтрации возможно и не нужно. Протокол обмена (стр.16): 8 бит данных, 1 стоп-бит, 0 бит проверки четности. Код данных ASCII. Скорость обмена данными : 1200 бит/с - 19200 бит/с. Данные форматируются в сообщение длиной 22 байта: p.s.: под DOS примеры считывания в руководстве, а под винды - см. в приложенной мною книженции.
0
|
|
|
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 88
|
||||||
| 09.09.2014, 11:26 [ТС] | ||||||
Вот что нашел в руководстве. Комрады, помогите с программкой
0
|
||||||
|
|
|
| 09.09.2014, 11:56 | |
|
...мда уж, камрад. Об этом я упомянул в посте выше, а вы под виндами. На книженцию ноль внимания по работе с потоками и COM-портом в виндах, а между тем там готовые примеры.
Где дамп полный? Жду.
0
|
|
|
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 88
|
|||
| 09.09.2014, 13:31 [ТС] | |||
|
raxp
raxp
0
|
|||
|
|
|
| 09.09.2014, 21:56 | |
|
...пока вы там едете, я уже библиотеку считывания и дешифровки данных написал. Мне нужны реальные данные, ибо в жизни часто оказывается в протоколе одно, а на деле есть нюансы.
Добавлено через 8 часов 1 минуту ...ехали, ехали и заблудились ![]() Альфа: https://sourceforge.net/projec... allci5010/ По-прежнему жду дамп и видео всего процесса.
0
|
|
|
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 88
|
|
| 11.09.2014, 16:15 [ТС] | |
|
raxp
Спасибо, что откликнулись! Правда, не от меня все зависит. Снимает показания друг, который на днях должен это сделать. Попросил его сделать всё как Вы сказали. Я сам в режиме ожидания...
0
|
|
|
|
|
| 11.09.2014, 16:26 | |
|
1- оки, оки ...альфу-то готовую ему передали c последнего релиза https://sourceforge.net/projec... t/download ?
2- смотрю вы на два фронта
0
|
|
|
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 88
|
|
| 12.09.2014, 13:15 [ТС] | |
|
друг на объекте, пытается подключится portmon'ом, пока что-то не выходит...
Добавлено через 16 минут сейчас прописывает Добавлено через 3 часа 14 минут raxp Свершилось! Надеюсь это то самое, что ты просил! https://yadi.sk/d/5GuMSjoBbSHWn
0
|
|
|
|
||||
| 12.09.2014, 18:09 | ||||
|
...что-то нестыковка в логах. См. MEDIA.LOG в HEX:
Теперь смотрим лог Portmon.log в символьном:
У меня в библиотеке идет проверка строго по протоколу на 22 байта, либо сразу, либо накоплением с проверкой на начало и конечные символы. Ваш друг снял дамп 'dump.txt', создаваемый моей либой автоматически из прилагаемого демо-примера? В вашем архиве их не вижу, там временные метки (см. видео на сурсфорже). Добавлено через 15 минут Не по теме: TC, вы определитесь где вы решаете задачу, у нас на форуме или программерсе. Ибо логи портмонитора просил я, а выкладываете его вы тоже там. Ну, и почему там на вы, а тут на ты :)
1
|
||||
|
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 88
|
|
| 12.09.2014, 20:37 [ТС] | |
|
Я понял, что здесь тема грамотней развивается, ибо ты спрашиваешь конкретные вопросы и я стараюсь ответить, предоставить инф-цию) понял, что на том форуме (я постил еще + на парочке), работа создается методом проб и ошибок и когда настанет финал, народ, скорее-всего, спросит подобный вопросы о конкретных пересылаемых данных)
Добавлено через 3 минуты Друг одновременно поставил на запись - в тера терм снимались буквенные символы, в port mon нажал на "hex", т.е. были видны 1 и 0лики. Только portmon реагировал когда запускался terminal, а так ничего не отображал. Скинул два файла с каждой программы.
0
|
|
|
|
|
| 12.09.2014, 21:11 | |
|
Portmon - это сниффер того, что пересылается по уже занятому порту. По сути это монитор, который позволяет подсмотреть за фактически пересылаемыми данными, даже если порт монопольно занят другой программой.
Добавлено через 13 минут ...модифицировал библиотеку с учетом возможного несоответствия протоколу. Забирайте готовый комплект https://www.cyberforum.ru/blog... g2693.html с примером ее использования и исходниками (ссылки прежние).
1
|
|
|
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 88
|
||
| 13.09.2014, 21:17 [ТС] | ||
|
raxp
Спасибо большое тебе за грандиозную работу!)) Возможно, последний вопрос в студию) У меня есть Borland C++ Builder 6.0. как на нем скомпилировать программу, мог бы cpp или что-то в этом роде скинуть, чтобы я просто com порт поменял и скомпилил? Как уже говорил, не силен я в этой теме, поэтому, возможно, столь интересные вопросы задаю)
0
|
||
|
|
||||||
| 14.09.2014, 00:08 | ||||||
|
COM порт задается при подключении в процедуре инициализации библиотеки, вы вольны задавать такой какой вам будет нужно, если он свободен в ОС. Подключать либу вы можете из любого языка в среде Windows. Хотите дядюшку Борланда BCB? А как же понимание механизма динамического использования библиотек и маршаллинга?
![]() Оки, оки, вот вам под С++ Builder IDE 6 (накидал по-быстрому, красявости сами добавите):
p.s.: прожект под C++BCB добавлен в архив по прежним ссылкам.
0
|
||||||
|
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 88
|
|
| 14.09.2014, 22:19 [ТС] | |
|
raxp
Под прикольную музыку, всё красиво и понятно) Скачал прожект. Следующий этап ехать к другу, там установить билдер, в соответствие с используемым ком портом выставить значение в процедуре 'reinit()'. Лог я как понял сейчас true и все ок. Далее, скомпилировать и, собственно, загнать фуру на весы) Большое тебе спасибо за громадную работу! Друг-программист когда узнал что мне надо, сказал, что это задача решаема только дядьками с большими бородами с бубном подмышкой))) Как приеду на завод, взвесимся, обязательно отпишусь! (надеюсь завтра-послезавтра)
0
|
|
| 14.09.2014, 22:19 | |
|
Помогаю со студенческими работами здесь
20
Работа с терминалом Работа с терминалом Работа с терминалом работа с терминалом Работа с платежным терминалом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|