Jump to content

Komet

Members
  • Gesamte Inhalte

    2
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von Komet

  1. Hello everybody,

     

    I'm working on an industrial special machine and i want to control some part of it with bricklet. My machine can do round trip on a rail with a motor and its coder. the PLC keep the control of all the power, I just send him order with a RS232 bricklet.

    For a first test i want to go to 30 000 counts, wait 2 seconds and then go back to my initial position ( 0 ) and repeat forever. Here is the issue : my machine drift in a single direction about some centimeters each time. When I control it directly by the PLC i haven't that and I don't understand why it does it with the counter bricklet.

    the coder is a sew eurodriver EH1C, I connect CH0- and CH2- to GND and CH0+ and CH2+ to A & B

    Here is my code :

     

    from tinkerforge.ip_connection import IPConnection
    from tinkerforge.bricklet_rs232_v2 import BrickletRS232V2
    from tinkerforge.brick_master import BrickMaster
    from tinkerforge.bricklet_industrial_counter import BrickletIndustrialCounter
    import time
     
    HOST = "localhost"
    PORT = 4223
    UID = "6eSrKP" # Change XXYYZZ to the UID of your Master Brick
    UID_RS = "W9P"
    UID_COUNTER = "QV8"
     
    ipcon = IPConnection() # Create IP connection
    rs232 = BrickletRS232V2(UID_RS, ipcon) # Create device object
    counter = BrickletIndustrialCounter(UID_COUNTER, ipcon) # Create device object
    ipcon.connect(HOST,PORT)
     
    counter.set_counter_configuration(counter.CHANNEL_0,
                                          counter.COUNT_EDGE_RISING,
                                          counter.COUNT_DIRECTION_EXTERNAL_DOWN,
                                          counter.DUTY_CYCLE_PRESCALER_1,
                                          counter.FREQUENCY_INTEGRATION_TIME_1024_MS)
    counter.set_all_counter_active([True, False, False, False])
    counter.set_counter(0, 0)
     
    i = 0
    speed = 40
     
    while True :
       
        message = [chr(i),chr(i),chr(i),chr(i),chr(i),chr(i),chr(i),chr(speed),chr(2)] # the first 7 control IR power the 8th the speed and the 9th the direction
        rs232.write(message)
        time.sleep(2)
     
        message = [chr(i),chr(i),chr(i),chr(i),chr(i),chr(i),chr(i),chr(speed),chr(1)]
        rs232.write(message)
        while counter.get_counter(0)<75000:
            print(counter.get_counter(0))
     
        message = [chr(i),chr(i),chr(i),chr(i),chr(i),chr(i),chr(i),chr(speed),chr(2)]
        rs232.write(message)
        time.sleep(2)
     
        message = [chr(i),chr(i),chr(i),chr(i),chr(i),chr(i),chr(i),chr(speed),chr(0)]
        rs232.write(message)
        while counter.get_counter(0)>0:
            print(counter.get_counter(0))
×
×
  • Neu erstellen...