Форум сайта python.su
Добрый день. Еще совсем молод в Python, но появилась задачка, которую сам не могу решать. Помогите если кто сможет.
Есть код, вычисление остатка материала. Но проблема в том, что прибор, который передает данные расхода, хранит у себя 16 бит данных, затем обнуляется и тут начинается проблема.
a1 = float(result1[0] * 0.1) b1 = float(row[2]) #row2- 1продукт silos1a = b1 - a1 print ("Расход:"f'{silos1a:.1f}')
Офлайн
staxbel
a1 - это данные с прибора, b1 - это предыдущие данные - соответственно, когда все хорошо - получается расход со знаком -, но когда показания с прибора допустим 100, а предыдущее 65500 - в расход пишется 58950.
Онлайн
Да, что-то я не так посчитал :-(
было 65500 предыдущее значение, получили материал какое-то количество, стало значение 100, 16 бит это 65535. Если новое значение стало 100 значит 65535 - 65500= 35 - это значение до конца 16 бит. стало значение 100, значит взяли материала 135. а в расходе будет 65400.
Офлайн
staxbelТакая логика меня вводит в ступор,
Если новое значение стало 100 значит 65535 - 65500= 35 - это значение до конца 16 бит
staxbelесли ты про свои весы,то вес у тебя в с 10 по 17 БАЙТы а не биты,
Но проблема в том, что прибор, который передает данные расхода, хранит у себя 16 бит данных
Отредактировано xam1816 (Май 25, 2021 22:24:18)
Онлайн
Это уже не те весы, где я задавал вопрос. Это другой прибор. У него (я не знаю как правильно сказать) в ячейке данных хранится максимальное число 65535, потом оно начинает с 0. работает он по modbus
Отредактировано staxbel (Май 25, 2021 22:25:46)
Офлайн
Какой прибор?как называется?
Онлайн
Офлайн
А есть возможность выложить сюда какой вес отображается на индикаторе,и какие данные приходят в через порт в этот момент
Онлайн
прибор работает по другому. Оператор указывает вес, который нужно набрать, идет набор, может набраться немного меньше или больше указанного. После окончания цикла набора, когда вес стал стабильным, он записывает это значение в регистр 40056.
Офлайн
staxbelага short int
в ячейке данных хранится максимальное число 65535, потом оно начинает с 0.
Отредактировано AD0DE412 (Май 26, 2021 19:50:42)
Офлайн