Skocz do zawartości

Wagowa kontrola magazynu


magier123

Pomocna odpowiedź

Witam
Zaczynam temat z Raspberry i chciałbym dopytac o jedną rzecz na początku. Jakie Waszym zdaniem byloby najlepsze rozwiązanie jesli chodzi o wagową kontrolę półek. Chodzi mi o to ze będę miał około 30 pojemników w których będą różne artykuły ( jeden artykuł na jeden pojemnik). Pytanie moje nie tak o kod jak oprogramować, ale jak fizycznie podłączyć to wszystko zebym z kazdej wagi dostawał osobny sygnał? Jakie sensory polecacie? Sensory mogą być 2 typów, jeden do cięższych rzeczy gdzie łącznie na wadze bylo by ok 15 kg, drugi do lekkich ale z jak największą dokładnością. 

 

 

Link do komentarza
Share on other sites

Moduły na RS485/232, do 32 urządzeń bez reapetera teoretyczne, Każdy moduł to niezależne urządzenie które odpytuje master.

Są gotowe urządzenia obsługujące tensometry.: Można podłączyć tensometr do 20Kg. Producent daje pełna dokumentacje, są też filmy instruktarzowe na Youtube.

https://pl.aliexpress.com/item/1005004375093757.html?spm=a2g0o.order_list.order_list_main.515.7b211c24wcjC5p&gatewayAdapt=glo2pol

Dodaje dokumentację i dane katalogowe, bo wiem że nie każdy potrafi znaleźć.

Ogólnie pytanie, jaki asortyment chcesz ogarniać, śruby czy co?

 

WG18A02-1.rar

Edytowano przez BlackJack
Link do komentarza
Share on other sites

Zakupiłem dla testu logiki działania 3 x HX711 plus tensometry do 1 kg. ale dalej nie widze patrząc po różnych schematach jak miałbym ich użyć żeby podłączyć ich ok 30 szt do jednego raspberry. Chodzi o to ze w zaleznosci od miejsca instalacji będę miał różną ilość wag do założenia. Potrzebuje rowiązanie w którym w programie podaje ilosc zainstalowanych urządzen a system po kolei je odpytuje, podając lokalizacje urzadzenia ktore zostało odpytane ( jakis identyfikator), to jaki to bedzie zasortyment to juz mniej wazne, bo wtedy tylko zmiana tensometrów i wzmacniaczy. 

Link do komentarza
Share on other sites

38 minut temu, magier123 napisał:

Zakupiłem dla testu logiki działania 3 x HX711 plus tensometry do 1 kg. ale dalej nie widze patrząc po różnych schematach jak miałbym ich użyć żeby podłączyć ich ok 30 szt do jednego raspberry. Chodzi o to ze w zaleznosci od miejsca instalacji będę miał różną ilość wag do założenia. Potrzebuje rowiązanie w którym w programie podaje ilosc zainstalowanych urządzen a system po kolei je odpytuje, podając lokalizacje urzadzenia ktore zostało odpytane ( jakis identyfikator), to jaki to bedzie zasortyment to juz mniej wazne, bo wtedy tylko zmiana tensometrów i wzmacniaczy. 

Dla tego ci poleciłem ten moduł z ALI Przede wszystkim jest to praktycznie kompletna waga, z pełną jej funkcjonalnością. Każdemu modułowi nadajesz adres. Jest oprogramowanie, dokumentacja. Na czystym HX711 trzeba to robić prawie od zera, bo to tylko interfejs czujnika. tensometrycznego.

Szukać pod hasłem SCADA for Raspberry PI i Modbus RTU.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

@BlackJack Zamówiłem no i przyszło z ALI. Jednak mam problem z tym i czytam i dokumentacje i fora ale jednak nie znajduje odpowiedzi. Zastosowalem jakis prosty kod tego typu jak ponizej, udaje mi sie podlaczyc , ale zwrotnie otrzymuje bląd. 

minimalmodbus.InvalidResponseError: Checksum error in rtu mode: b'\x0bf' instead of b')\x8a' . The response is: b'\x7f~\xdf\xff\xff\xff\x0bf' (plain response: b'\x7f~\xdf\xff\xff\xff\x0bf')
 

"""
######################################################################

Simple Modbus Sensor Polling Code
Coded By "The Intrigued Engineer" over a coffee

Minimal Modbus Library Documentation
https://minimalmodbus.readthedocs.io/en/stable/

Thanks For Watching!!!

######################################################################
"""

import minimalmodbus # Don't forget to import the library!!

mb_address = 1 # Modbus address of sensor

sensy_boi = minimalmodbus.Instrument('/dev/ttyS0',mb_address)	# Make an "instrument" object called sensy_boi (port name, slave address (in decimal))

sensy_boi.serial.baudrate = 9600				# BaudRate
sensy_boi.serial.bytesize = 8					# Number of data bits to be requested
sensy_boi.serial.parity = minimalmodbus.serial.PARITY_NONE	# Parity Setting here is NONE but can be ODD or EVEN
sensy_boi.serial.stopbits = 1					# Number of stop bits
sensy_boi.serial.timeout  = 0.5					# Timeout time in seconds
sensy_boi.mode = minimalmodbus.MODE_RTU				# Mode to be used (RTU or ascii mode)

# Good practice to clean up before and after each execution
sensy_boi.clear_buffers_before_each_transaction = True
sensy_boi.close_port_after_each_call = True

## Uncomment this line to print out all the properties of the setup a the begining of the loop
#print(sensy_boi) 

print("")
print("Requesting Data From Sensor...")	# Makes it look cool....

# NOTE-- Register addresses are offset from 40001 so inputting register 0 in the code is actually 40001, 3 = 40004 etc...

## Example of reading SINGLE register
## Arguments - (register address, number of decimals, function code, Is the value signed or unsigned) 
## Uncomment to run this to just get temperature data

#single_data= sensy_boi.read_register(1, 1, 3, False) 
#print (f"Single register data = {single_data}")

# Get list of values from MULTIPLE registers 
# Arguments - (register start address, number of registers to read, function code) 
data =sensy_boi.read_registers(0, 2, 3) 

print("")
print(f"Raw data is {data}") # Shows the raw data list for the lolz

# Process the raw data by deviding by 10 to get the actual floating point values
hum = data[0]/10
temp = data[1]/10

# Print out the processed data in a little table
# Pro-tip > \u00B0 is the unicode value for the degree symbol which you can see before the "C" in temperature
print("-------------------------------------")
print(f"Temperature = {temp}\u00B0C")
print(f"Relative Humidity = {hum}%")
print("-------------------------------------")
print("")

# Piece of mind close out
sensy_boi.serial.close()
print("Ports Now Closed")

W przypadku takiego kodu jak tutaj ponizej dostaje odpowiedz ale nijak ma sie ona do tego co w dokumentacji

 

import time
import serial
import binascii



ser = serial.Serial(
        port='/dev/ttyS0',
        baudrate = 9600,
        parity=serial.PARITY_NONE,
        stopbits=1,
        bytesize=serial.EIGHTBITS,
        timeout=1
)

while 1:
    ser.write(b'\x01\x03\x00\x00\x00\x03\x05\xCB')
    x=ser.readline()
  
    hex_string = binascii.hexlify(x).decode('utf-8')
    wynik = str(hex_string)
    print(wynik)

a odpowiedz jest taka 7f7ebeffffffffffbd1500

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.