Advertisement
alk0v

Python MODBUS Raspberry

Jul 4th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.58 KB | None | 0 0
  1. import RPi.GPIO as GPIO
  2. import time
  3. import serial
  4. import string
  5. import binascii
  6.  
  7. GPIO.setmode(GPIO.BOARD)
  8. GPIO.setup(11, GPIO.IN)
  9. data = bytearray.fromhex("10 04 01 00 00 02 73 76")
  10. #ser = serial.Serial('/dev/ttyUSB3', 19200, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=10)
  11. ser = serial.Serial('/dev/ttyUSB4', 19200, timeout=10)
  12. if ser.isOpen():
  13.    print(ser.name + ' is open...')
  14. try:
  15.         while 1:
  16.                 signal = GPIO.input(11)
  17.                 if(signal==0):
  18.                   print ('Request: 1004010000027376')
  19.                   try:
  20.                      ser.write(data)
  21.                      #time.sleep(2)
  22.                      #print ('Wait Answer')
  23.                      answer = ser.read(10)
  24.                      b = bytearray()
  25.                      b.extend(answer)
  26.                      #answer = bytearray.fromhex("10 04 01 00 00 02 73 76")
  27.                      #print (answer[0])
  28.                      print ('Answer: '+binascii.hexlify(answer))
  29.                      #answer = (bytes(answer))
  30.                      if(b[3]==3):
  31.                         num = ((b[7]<<24)+(b[6]<<16)+(b[5]<<8)+(b[4]))/float(1000)
  32.                         print(num)
  33.                         print('Weight: '+str(num)+' kg')
  34.                      else:
  35.                         print('Platform unstable')
  36.                   except serial.serialutil.SerialTimeoutException:
  37.                      print ('Error RS485')
  38.                   ser.flush()
  39.                 time.sleep(0.2)
  40. except KeyboardInterrupt:
  41.         pass
  42. GPIO.cleanup()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement