Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 5, 2021 22:11:42

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Запись в БД с условием

вот эту строку сделайте вместо своей, а на весах F10 задайте 03(там 00 -99)

 ser.write(b'03')
и пришлите снова что выдает 22 байта

Отредактировано xam1816 (Апрель 5, 2021 22:50:00)

Офлайн

#2 Апрель 5, 2021 22:32:08

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Запись в БД с условием

 ser = serial.Serial(
    port='COM3',
    baudrate=9600,
    timeout=1,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS
)

вот так прописать

на весах F12 сделать 2 - передача данных после успокоения, если 3 то после отправки номера оборудования,задается в F10 я в примере написал 03

Отредактировано xam1816 (Апрель 5, 2021 22:48:18)

Офлайн

#3 Апрель 6, 2021 07:08:54

staxbel
Зарегистрирован: 2021-03-13
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в БД с условием

xam1816
сделал как вы сказали
b' 2830'
Данные изменены 2021-04-06 07:07:53.572095
b' 1495'
Данные изменены 2021-04-06 07:08:03.902686
b' 3950'
Данные изменены 2021-04-06 07:08:04.224704
b' 2<30'
Данные изменены 2021-04-06 07:08:04.447717
b' 14\xb95'

Офлайн

#4 Апрель 6, 2021 07:10:44

staxbel
Зарегистрирован: 2021-03-13
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в БД с условием


xam1816
ser.write(b'03')
b''

Офлайн

#5 Апрель 6, 2021 07:23:48

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Запись в БД с условием

staxbel
А на весах F10 значение?,это как раз задается номер оборудования на которое он отзывается, и скорость бод посмотри соответствует ,F11 вроде,
Вместо b'03' сделать ‘03’.encode(),это конечно мелочи все, не относящиеся к вашей задаче, потому что я хотел декодировать все 22 байта, он ругается на имя весов,но это х. С ним, каким кабелем соединено,может чего там с заземлением или помехи или кто знает как борются с кривыми данными на практике, на весы в инете первой строкой есть pdf , есть там протокол данные 8бит, бит четности 0,стповый 1, Может скорость в бодах убавить

Отредактировано xam1816 (Апрель 6, 2021 07:55:49)

Офлайн

#6 Апрель 6, 2021 11:29:45

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2756
Репутация: +  184  -
Профиль   Отправить e-mail  

Запись в БД с условием

> Это весы CAS2001A, в документации про корректность данных ни слова.

Посмотрел документацию, весы действительно тупые.

> когда прибор один подключен, все ок, но когда параллельно их несколько, получается такой мусор.

Может у тебя весы одинаковые номера имеют и пытаются данные одновременно передать?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Апрель 6, 2021 11:32:40)

Офлайн

#7 Апрель 7, 2021 08:43:50

staxbel
Зарегистрирован: 2021-03-13
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в БД с условием

Rodegast
> Это весы CAS2001A, в документации про корректность данных ни слова.Посмотрел документацию, весы действительно тупые.> когда прибор один подключен, все ок, но когда параллельно их несколько, получается такой мусор.Может у тебя весы одинаковые номера имеют и пытаются данные одновременно передать?
нет, весы все настроены одинаково и каждый имеет свой id

Офлайн

#8 Апрель 7, 2021 10:04:21

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Запись в БД с условием

Я думаю ещё можно попробовать увеличить тайм-аут после запроса, или как советовали выше,проверять каждый байт данных на соответствие цифрам

  correct_set = [32, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 ]  
.Вообще наверное грамотно подключеная,согласованная витая пара, проложенная по правилам,и рассчитанная по нагрузке, должна давать четкие данные, попробуйте оставить только одни весы на линии, и понаблюдайте за данными,потом подключайте по одному,может какие-то одни весы дают помехи

Офлайн

#9 Апрель 7, 2021 10:07:56

staxbel
Зарегистрирован: 2021-03-13
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Запись в БД с условием

xam1816
Я думаю ещё можно попробовать увеличить тайм-аут после запроса, или как советовали выше,проверять каждый байт данных на соответствие цифрам
Это проверял уже не раз. Для эксперимента подключал их проводом длиной 20 см. 1 - прибор (0 ошибок за час), 2 прибора (2 ошибок за час), 3 прибора (около 10 ошибок ) Все при условии опроса каждые 3 мин.

Офлайн

#10 Апрель 7, 2021 10:30:36

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Запись в БД с условием

staxbel
Это проверял уже не раз. Для эксперимента подключал их проводом длиной 20 см. 1 - прибор (0 ошибок за час), 2 прибора (2 ошибок за час), 3 прибора (около 10 ошибок ) Все при условии опроса каждые 3 мин.

Не дает мне покоя вот это:
staxbel
Устройство работает через преобразователь AC4 (rs485-usb)
staxbel
когда прибор один подключен, все ок, но когда параллельно их несколько, получается такой мусор.
Я конечно далек от темы, но быстрое гугление выдало вот такое :
https://zen.yandex.ru/media/id/5bd52e42d0549400ab5b51be/parallelnoe-podkliuchenie-rs485-5c9c661893c31d00b21fc6ce
приборы, которые выполняют обмен данными через интерфейс RS-485, должны подключаться последовательно, один за другим. То есть должна использоваться топология “последовательная шина”.

Топология “звезда” (то есть параллельное подключение приборов на линию RS-485) не допускается, потому что длинные ответвления от линии вызывают рассогласование и отражение сигнала.
Правда там дальше идет что таки можно и паралельно, если использовать повторители интерфейса, но это уже не суть..
Может в этом причина?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Апрель 7, 2021 10:37:43)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version