|
|
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
Здравствуйте Уважаемые ! Прошу не пинать если вопрос уже поднимался, лучше ткните носом :( Суть задачи: Есть весы производства ФизТех с весовым терминалом Т3. Программа (серверOLE automation VES_CONTROL) предлагаемая производителем для получения веса на компе не устраивает. По этому очень чешутся руки написать самому внешнюю компоненту для 1С на Delphi. Опыт программирования есть (хоть и не большой), но давно не занимался. В документации к весам нашел следующее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Хотелось бы сразу спросить может у кого есть исходники, былоб вообще шоколадно ;) А так застопорился на мысли как эту строку (0A 74 10 00 A2 0D) преобразовать в человеческий вид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 17:31 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
*keeper*, 0A 74 10 00 A2 0D = 10.74 классика а лучше себе не взрывать мозг, а использовать их родной драйвер, в случае косячков будет на кого свалить :) поверь, я тож в свое время такой фигней занимался :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 17:36 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
Так вопрос-то в чём ? Ты не умеешь работать с байтами/битами ? Складируешь принятые байты в буфер, пока не встретишь 0D, а дальше смотришь, что там лежит. Преобразовать двоично-десятичное значение "74 10 00" в 10.74 сумеешь ? )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 17:42 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
demian111*keeper*, 0A 74 10 00 A2 0D = 10.74 классика а лучше себе не взрывать мозг, а использовать их родной драйвер, в случае косячков будет на кого свалить :) поверь, я тож в свое время такой фигней занимался :)) Ну, задачка-то простая. Только тебе ещё нужно анализировать и предпоследний байт, бит D7 - там знак числа Я в 2004 году делал интерфейс к весам CAS, работают до сих пор. А их COM-объект глючил по страшному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 17:43 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
defecatorА их COM-объект глючил по страшному. Странно, обычно на косяки производитель реагирует. хотя в данном случае протокол обмена простой, и тем более документирован, может ты и прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 17:51 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
defecatorА их COM-объект глючил по страшному. Спрашивается: задлянафига их вообще делают? Для асинхронного (a-la RS232) обмена ничего лучше непосредственной работы с портом вроде бы нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 18:13 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисdefecatorА их COM-объект глючил по страшному. Спрашивается: задлянафига их вообще делают? Для асинхронного (a-la RS232) обмена ничего лучше непосредственной работы с портом вроде бы нет... у нас сейчас похожая задача, но надо данные как-то выгрызать после запроса на апач (т.е. тынца в ссылку на страничке). а сервер и машина с сомпортом - разные. пхп говорят можно сом/оле юзать = при определенных насторойках и т.п. пока идея есть поставить дельфовый ехе, который будет слушать сом-порт (локально) и порт - в машине. шоб по запросу с сервера мочь отдать данные (через сокеты). вроде если дрова умеют сом - можно тоже самое реализовывать и через пхп. может на этот случай и делают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 18:44 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
Вау! Не ожидал , что так быстро ответите. Спасибо! defecatorТак вопрос-то в чём ? Ты не умеешь работать с байтами/битами ? Складируешь принятые байты в буфер, пока не встретишь 0D, а дальше смотришь, что там лежит. Преобразовать двоично-десятичное значение "74 10 00" в 10.74 сумеешь ? )))) Хотелось хоть одним глазком увидеть наглядный примерчик. Получения этой самой строки и её дальнейшего разбора. (с чужими велосипедами всегда легче ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 19:14 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
demian111*keeper*, 0A 74 10 00 A2 0D = 10.74 классика а лучше себе не взрывать мозг, а использовать их родной драйвер, в случае косячков будет на кого свалить :) поверь, я тож в свое время такой фигней занимался :)) Их родной очень не устраивает. Его бы доработать, добавить универсальности и ошибки исправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 19:16 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
defecatordemian111*keeper*, 0A 74 10 00 A2 0D = 10.74 классика а лучше себе не взрывать мозг, а использовать их родной драйвер, в случае косячков будет на кого свалить :) поверь, я тож в свое время такой фигней занимался :)) Ну, задачка-то простая. Только тебе ещё нужно анализировать и предпоследний байт, бит D7 - там знак числа Я в 2004 году делал интерфейс к весам CAS, работают до сих пор. А их COM-объект глючил по страшному. Может поделитесь своим ноу-хау? Буду премного благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 19:18 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
*keeper*Хотелось хоть одним глазком увидеть наглядный примерчик. А в чём проблема? В MSDN приведён очень даже наглядный пример... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 19:57 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov*keeper*Хотелось хоть одним глазком увидеть наглядный примерчик. А в чём проблема? В MSDN приведён очень даже наглядный пример... Ткните носом пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 20:35 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
*keeper*defecatorпропущено... Ну, задачка-то простая. Только тебе ещё нужно анализировать и предпоследний байт, бит D7 - там знак числа Я в 2004 году делал интерфейс к весам CAS, работают до сих пор. А их COM-объект глючил по страшному. Может поделитесь своим ноу-хау? Буду премного благодарен. Код исключительно под весы CAS, там совсем другой протокол обмена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 20:58 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
*keeper*Ткните носом пожалуйста. http://msdn.microsoft.com/en-us/library/aa363196%28v=VS.85%29.aspx Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2011, 21:24 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, спасибо конечно, но думаю самостоятельно не разберусь. Там примеры на C ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 08:32 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
*keeper*Dimitry Sibiryakov, спасибо конечно, но думаю самостоятельно не разберусь. Там примеры на C Берешь TurboPower AsyncPro, там есть компонент для работы с последовательным портом. Изучаешь примеры и начинаешь принимать поток данных от весов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 10:00 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
defecator, Там примеров очень много, но они все по моему не в тему. Я вот нашел компонент TComPort вот пытаюсь что-то получить. Никак не пойму как работать с получеными данными. Открываю пример , который шел вместе с компонентой. Есть исходники приложения ComExample Вижу PortMon'ом вот такое 102319 10:47:15 ComExample.exe IRP_MJ_READ Serial0 Length 6 102319 10:47:15 SUCCESS Length 6: 0A 45 40 01 A2 0D на табло терминала -140,50 кг вроде все так но как мне с этими данными работать не пойму в терминал валятся символы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 10:54 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
defecatorБерешь TurboPower AsyncPro, там есть компонент для работы с последовательным портом. Изучаешь примеры и начинаешь принимать поток данных от весов.Можно даже фришный TcomPort. Успешно использовал для работы с весами CAS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 11:17 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
LSVdefecatorБерешь TurboPower AsyncPro, там есть компонент для работы с последовательным портом. Изучаешь примеры и начинаешь принимать поток данных от весов.Можно даже фришный TcomPort TurboPower AsyncPro на 300% фришный )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 11:35 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
*keeper*defecator, Там примеров очень много, но они все по моему не в тему. Я вот нашел компонент TComPort вот пытаюсь что-то получить. Никак не пойму как работать с получеными данными. Открываю пример , который шел вместе с компонентой. Есть исходники приложения ComExample Вижу PortMon'ом вот такое 102319 10:47:15 ComExample.exe IRP_MJ_READ Serial0 Length 6 102319 10:47:15 SUCCESS Length 6: 0A 45 40 01 A2 0D на табло терминала -140,50 кг вроде все так но как мне с этими данными работать не пойму в терминал валятся символы В общем, мне кажется, что, наверное, пора в форум работа или нанять программиста.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 11:36 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
defecator, Мне хочется самому разобраться. Но знаний и практики не хватает. По этому и обратился за помощью к Вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 11:42 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
defecator, Хотя бы подскажите как работать с получеными данными. Ну вот получил я строку из порта, что с ней дальше надо сделать, чтоб разложить по байтам и по битам (на сколько я понял надо четвертый байт разбирать по битам) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 11:46 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
*keeper*102319 10:47:15 SUCCESS Length 6: 0A 45 40 01 A2 0D на табло терминала -140,50 кг вроде все так но как мне с этими данными работать не пойму в терминал валятся символы Перевести из BCD формата в двоичный, поставить правильно десятичную точку и знак: (dat[1]+dat[2]*100+dat[3]*10000)*exp(-(dat[4] and $07)*ln(10))*(1-((dat[4] and $80) shr 6 )) где dat:array[0..5] of byte - данные из порта. Примерно так - не проверял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 11:52 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
*keeper*defecator, Хотя бы подскажите как работать с получеными данными. Ну вот получил я строку из порта, что с ней дальше надо сделать, чтоб разложить по байтам и по битам (на сколько я понял надо четвертый байт разбирать по битам) Ты получаешь не строку, а просто отдельные байты. Складируешь их в некий буфер, пока не встретишь $0D. Не забывать, что буфер может переполняться - мало ли, какая ошибка будет. Если переполнение - сбрасываешь буфер, и копишь заново. НУ я не знаю, как тебе ещё объяснить.....Как работать с массивами ? С индексами массивов ? Могу ещё посоветовать начать читать книжки по Object Pascal.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2011, 11:54 |
|
||
|
Получение данных с весов через rs232
|
|||
|---|---|---|---|
|
#18+
x1ca4064*keeper*102319 10:47:15 SUCCESS Length 6: 0A 45 40 01 A2 0D на табло терминала -140,50 кг вроде все так но как мне с этими данными работать не пойму в терминал валятся символы Перевести из BCD формата в двоичный, поставить правильно десятичную точку и знак: (dat[1]+dat[2]*100+dat[3]*10000)*exp(-(dat[4] and $07)*ln(10))*(1-((dat[4] and $80) shr 6 )) где dat:array[0..5] of byte - данные из порта. Примерно так - не проверял Sorry, формула преобразования bcd-bin содержит ошибку, но я уверен, что Вы разберетесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2011, 00:32 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=37456207&tid=2041103]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
189ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 542ms |

| 0 / 0 |
