Автор | Сообщение |
|
| |
Пост N: 392
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.10.06 14:01. Заголовок: Com_read ?
Имеются электроные весы с возможностью связи с компом по COM порту. Родная скорость обмена 14400 Посылаю в порт нужную команду , в ответ теоретически должен получить 9 байт. Пример в 16 виде 00 00 00 00 00 00 00 77 0D Получив 00 00 77 и преобазовав его в DEC/100 получаю вес 1.19 кг Где OD признак конца передачи. В 8 ,7 ,6 байтах лежит сам вес. Иногда в эти 9 байт попадает не понятно откуда взявшийся мусор. Например мы ждем 00 00 00 00 00 00 00 77 0D а реально получаем 00 00 00 00 АА 00 FF 00 FF FF FF FF 00 77 0D Как с этим бороться ? Считываю так com_read(cport,com_count(cport)) , где cport номер COM порта + дальнейшая обработка на символ конца и тд Как от хлама избавиться , потому как изредка, но бывает что программа считывает не верный вес ?
|
|
|
Новых ответов нет
[см. все]
|
|
|
| |
Пост N: 393
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.10.06 14:59. Заголовок: Re:
Может есть какая то другая библиотека для Clipper по работе с портами ?
|
|
|
|
| |
Пост N: 7
Зарегистрирован: 22.03.06
|
|
Отправлено: 06.10.06 15:25. Заголовок: Re:
Dima пишет: цитата: | Как от хлама избавиться , потому как изредка, но бывает что программа считывает не верный вес ? |
| А не шлют ли весы вместе с весом и статус (вес стабилен/не стабилен)? Если нет такой возможности можно самому смоделировать такой статус например пока три подряд считанных значения веса не будут равны. У меня стабильность веса проверяется по статусу с весов, функции работы с портом - тулсовские, пробовал еще IOLIB.
|
|
|
|
| |
Пост N: 24
Зарегистрирован: 07.08.06
|
|
Отправлено: 06.10.06 15:37. Заголовок: Re:
У меня обмен идёт не с весами, а с терминалом для считывания бонусных карт по протоколу UNIPOS. Так вот: когда я принимаю от терминала любое сообщение, то в конце идёт контрольный байт, по которому можно проверить, что строка передана именно та, которую я получил. У тебя, как я понял, контрольный байт "от весов" не передается. Но ты сказал, что вес содержится в байтах 6,7 и 8 (самый левый байт имеет номер = 1). Что тогда должно быть в других байтах ? Если ТОЛЬКО нули, то мусор с большой вероятностью можно отсечь именно этим правилом (т.к. он, скорее всего, не будет "выбирать", в какие байты ему записаться). Понятно, что это не решение проблемы, но другого в голове пока нет.
|
|
|
|
| |
Пост N: 394
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.10.06 16:23. Заголовок: Re:
p519446 пишет: цитата: | когда я принимаю от терминала любое сообщение, то в конце идёт контрольный байт, |
| Виноват , не правильно я описал , контрольная сумма там есть (склероз) [реклама вместо картинки] Кстати фирменная прога из 5 снятий только 2 раза снимает вес а 3 раза пишет что ошибка снятия. kia пишет: цитата: | например пока три подряд считанных значения веса не будут равны. |
| А это идея :) Вообщем пока временно увеличили задержку с 200 мс до 210........
|
|
|
|
| |
Пост N: 8
Зарегистрирован: 22.03.06
|
|
Отправлено: 06.10.06 16:55. Заголовок: Re:
Dima пишет: цитата: | Вообщем пока временно увеличили задержку с 200 мс до 210........ |
| Проверку стабильности веса все равно делать желательно т.к. всегда есть внешние воздействия на весы (прошел рядом человек/машина/паровоз...) и записался ошибочный вес
|
|
|
|
| |
Пост N: 25
Зарегистрирован: 07.08.06
|
|
Отправлено: 06.10.06 17:29. Заголовок: Re:
Имхо, можно просто игнорировать любое сообщение от весов, если контрольный байт не совпадает с вычисленным. И не менять задержку (мусор туда всё равно попадать будет). BTW, а там кабель от весов до компа какой длины ? Может, он чересчур длинноват ? ;)
|
|
|
|
| |
Пост N: 395
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.10.06 18:49. Заголовок: Re:
p519446 пишет: цитата: | а там кабель от весов до компа какой длины ? |
| да не кабель нормальный ;) метр с лишним не больше.... Всем спасибо , буду думать !!!
|
|
|
|
| постоянный участник
|
Пост N: 52
Зарегистрирован: 13.10.05
|
|
Отправлено: 09.10.06 09:08. Заголовок: Re:
Я для работы с платформенными весами я использовал библиотеки Tools для Сlipper5.1 Стабилизацию проверял просто - сравнивал значение получаемое из порта, через какой-то промежуток времени и если оно не менялось то это и есть вес.
|
|
|
|
| |
Пост N: 401
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.10.06 14:14. Заголовок: Re:
Еще вопросик. Обнаружил что если открыть порт и что то в него пихануть а затем его закрыть Com_close , то на самом деле порт не закрывается и закрывается только тогда когда полностью выходим из программы. Во как Для этого теста использовал PortMon от sysinternals.com В приниципе это вроде ни как не влияет на работу программы но тем не менее не порядок. Как решить ?
|
|
|
|
| |
Пост N: 1
Зарегистрирован: 23.10.06
|
|
Отправлено: 23.10.06 16:01. Заголовок: Re:
а что ты понимаешь под "закрыть порт"? и что значит "он не закрывается"? тулсовые ком-функции у меня тоже иногда врали на фискальном регистраторе) ИНОГДА возможно, они просто глючные ЗЫ. Дима! У меня вроде раньше на нике suv2 был пароль ************* Теперь не пускает!
|
|
|
|
| |
Пост N: 403
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.10.06 17:02. Заголовок: Re:
suv пишет: цитата: | а что ты понимаешь под "закрыть порт"? и что значит "он не закрывается"? |
| Грю же чекал этой прогой PortMon от sysinternals.com , там все видно ;) А проверялась моя прога на Clipper и фирменная под Windows для этих весов , так вот она сняла вес и порт закрыла , у меня фиг ;) Все видно по монитору PortMon. PS Ник suv2 поправил ;)
|
|
|
|
|
| |
Пост N: 10
Зарегистрирован: 23.10.06
|
|
Отправлено: 23.10.06 17:20. Заголовок: Re:
как поправил? где поправил? с каким паролем мне заходить? что тебе от того, что там кто-то что-то показывает? байты продолжают поступать, если ты порт закрыл? и зачем вообще его закрывать - ну совершенно непонятно
|
|
|
|
| |
Пост N: 404
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.10.06 17:24. Заголовок: Re:
suv Заходи с suv2
|
|
|
|
| |
Пост N: 33
Зарегистрирован: 07.08.06
|
|
Отправлено: 24.10.06 00:04. Заголовок: Re:
У меня порт также НЕ закрывается до тех пор, пока прогу полностью не завершить. И не "иногда", а ВСЕГДА. И когда кассиры в конце дня хотят запустить какую-то еще "штатную" хрень для обмена через ТОТ ЖЕ com-порт с тем же устройством (терминалом считывания магнитно-чиповых карт), то эта штатная прога НЕ может открыть ком-порт. Может, это не клипперная ф-ция врёт, а виндусовая ДОС-машина (vdm.exe) такая "умная" ? Я в ней еще и не такую странность знаю (когда открытые файлы можно "отложенно грохнуть" в другом окошке -- SUV не даст соврать, тоже натыкался на это...)
|
|
|
|
| |
Пост N: 11
Зарегистрирован: 09.07.08
|
|
Отправлено: 08.12.08 12:17. Заголовок: Народ, а не подкине..
Народ, а не подкинете любезно примерную структуру проги, которая опрашивает счётную машинку банкнот, а то я сам никогда не пользовался ф-ями COM_*. Ведь кроме открыть-считать-закрыть надо ещё видимо проверять готвоность машинки, начало и конец передачи и т.п.? Заранее благодарен.
|
|
|
|
| |
Пост N: 1144
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.12.08 15:54. Заголовок: PRG_MAN Для этого н..
PRG_MAN Для этого нужно иметь протокол обмена этой счетной машинки.
|
|
|
|
| |
Пост N: 12
Зарегистрирован: 09.07.08
|
|
Отправлено: 08.12.08 17:52. Заголовок: Протокол узнаю. Толь..
Протокол узнаю. Только принципиально это что-то изменит? Не хочется изобретать велосипед
|
|
|
|
| |
Пост N: 1145
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.12.08 18:05. Заголовок: PRG_MAN пишет: Толь..
PRG_MAN пишет: цитата: | Только принципиально это что-то изменит? |
| Нужно смотреть на протокол обмена. я связывал кассовые аппараты , весы и еще всякое железо и везде были разные подходы в зависимости от протокола обмена.
|
|
|
|
| |
Пост N: 13
Зарегистрирован: 09.07.08
|
|
Отправлено: 10.12.08 09:14. Заголовок: Хорошо.Тогда конкрет..
Хорошо.Тогда конкретнее пообщаемся попозже, когда принесут машинку.
|
|
|
|