https://github.com/gitalecu/pymodbus https://code.google.com/p/pymodbus/ $sudo bash $sudo apt-get update $sudo apt-get install python-dev $git clone git://github.com/bashwork/pymodbus.git $cd pymodbus $python setup.py install $cd pymodbus $cd examples $cd common $nano test.py paste this in file, write your RPI IP at host='raspberry IP'test.py PORT=503 =======================================================py script #!/usr/bin/env python from pymodbus.client.sync import ModbusTcpClient as ModbusClient #assign modbus server connection TRIPLC = ModbusClient(host='10.0.0.4', port=503) #write_valuee = input ("Value to write: ") #print 'Output: ', write_valuee import time a = 0 print 'wait to start ethernet' time.sleep(5) while a < 15: a += 1 print ' cycle: ', a time.sleep(5) #send read command to server read_reg0 = 0 read_qty = 10 rr = TRIPLC.read_input_registers(0, 10) #rr = TRIPLC.read_holding_registers(read_register, read_qty) print 'Input0: ', rr.getRegister(0) print 'Input1: ', rr.getRegister(1) print 'Input2: ', rr.getRegister(2) print 'Input3: ', rr.getRegister(3) print 'Input4: ', rr.getRegister(4) print 'Input5: ', rr.getRegister(5) print 'Input6: ', rr.getRegister(6) print 'Input7: ', rr.getRegister(7) print 'Input8: ', rr.getRegister(8) print 'Input9: ', rr.getRegister(9) # ============================= >> write to txt file g0 = rr.getRegister(0) g1 = rr.getRegister(1) g2 = rr.getRegister(2) g3 = rr.getRegister(3) g4 = rr.getRegister(4) g5 = rr.getRegister(5) g6 = rr.getRegister(6) g7 = rr.getRegister(7) g8 = rr.getRegister(8) g9 = rr.getRegister(9) if g0 > 0 and g1 > 0 and g2 > 0 and g3 > 0 and g4 > 0 and g5 > 0 and g6 > 0 and g7 > 0 and g8 > 0 and g9 > 0: pos = [g0 , g1 , g2 , g3 , g4 , g5 , g6 , g7 , g8 , g9] with open('vars.txt','w') as f: f.write("%s %s %s %s %s %s %s %s %s %s" % (pos[0], pos[1], pos[2], pos[3], pos[4], pos[5], pos[6], pos[7], pos[8], pos[9])) f.close() #f.write("%s %s" % (x,y)) #else: # ----------------------------------> #===================================> read text file w = 0 file_path = 'vars.txt' try: fp = open(file_path) except IOError: # If not exist, create the file fp = open(file_path, 'w+').close() w = 1 if w == 1: with open ('vars.txt', 'w') as fil: fil.write("%s %s %s %s %s %s %s %s %s %s" % (0, 0, 0, 0, 0, 0, 0, 0, 0, 1)) fil.close() w = 0 with open ('vars.txt', 'r') as myfile: position=myfile.read().split() position = map(int, position) #myfile.close() print 'line0: ', position[0] print 'line1: ', position[1] print 'line2: ', position[2] print 'line3: ', position[3] print 'line4: ', position[4] print 'line5: ', position[5] print 'line6: ', position[6] print 'line7: ', position[7] print 'line8: ', position[8] print 'line9: ', position[9] #-------------------------------------> #send write command to modbus server # write_value= rr.getRegister(0) #TRIPLC.write_register(write_register, write_value) TRIPLC.write_registers(0, position[0]) TRIPLC.write_registers(1, position[1]) TRIPLC.write_registers(2, position[2]) TRIPLC.write_registers(3, position[3]) TRIPLC.write_registers(4, position[4]) TRIPLC.write_registers(5, position[5]) TRIPLC.write_registers(6, position[6]) TRIPLC.write_registers(7, position[7]) TRIPLC.write_registers(8, position[8]) TRIPLC.write_registers(9, position[9]) if a>= 10: a = 1 #================> #x=1.123 #y=2.123 #pos = [143, write_value] #with open('vars.txt','w') as f: # f.write("%s %s" % (pos[0], pos[1])) #f.write("%s %s" % (x,y)) #with open ('vars.txt', 'r') as myfile: # position=myfile.read().split() #position = map(int, position) #print 'position 0: ', position[0] #print 'position 1: ', position[1] # position = [1.123, 2.123] ---------------------------------------------------py script pi@raspberrypi:~/Documents/pymodbus/examples/common $ Ctr + x y Enter $chmod -R 777 vars.txt $sudo python test.py $cat vars.txt 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 http://jacekhryniewicz.wix.com/website#!raspberry-pi-with-modbus-tcp/c1d2y