Beiträge von bernhardjunk

    Hallo Dale,

    ich weiss, dass es CodeSys für den Raspi gibt und hatte es auch mal installiert. Es braucht aber viele Resourcen und ist dann sehr langsam. Ich habe es hier auf einem Server laufen mit einem I7-Core und 64Gb Ram da läuft der sehr gut.

    Aber für eine I7-Core bekomme ich 30 Raspis. Ich würde die gerne mal clustern. Ich habe das irgenwo gelesen, dass einer 120 Raspis geclusterd hat. Vielleicht mache ich das mal nach.Dann kann da auch CodeSys drauf laufen.

    Ach ja, Bei BMW in München wollen sie nur noch TIA V13.1 mit SCL haben.

    bei

    if x=="S" soll der Motor angehalten werden

    if x=="f" soll der Motor vorwärts drehen

    if x=="b" soll der Motor rückwärts laufen

    if x=="r" soll der Motor starten


    Hast du das Programm verstanden?


    Bis auf die "oder" Stop_v und Stop_r läuft das Programm. Nur eben diese drei oder ( SL steht für schnell/Langsam) geht es nicht, weil die Eingänge nicht erkannt werden. Darum benötige ich eure Hilfe

    Bernd

    Ich habe hier Python einmal unter Opensuse und einmal unter Debian am Laufen. Bei Opensuse kann ich debuggen, bei Debian fehlt mir wohl noch etwas. Was weiss ich nicht. Ich habe mit apt-get install geany-plugins installiert, aber es wird kein Debugging Tool angezeigt. Bei Opensuse ja.

    Was brauche ich noch?

    wenn du mit S7 und TIA gearbeitet hast, dann muss dir SCL auch geläufig sein.

    Da wird auch eine Variable gebildet wie db100.dbw0 und das wird als Variable definiert, weil TIA keinen direkten Zugang zu einem DB hat.

    Das ist hier ähnlich.

    Ich habe auch noch Probleme, Python umzusetzen. Das würde mir mit S7 leichter fallen.

    Hallo Gemeinde,

    ich habe hier ein Python Programm welches nicht so läuft, wie ich es will.


    Eine Eisenbahn mit zwei Endschalter und 2 Vorabschalter für die Geschwindigkeitsreduzierung.


    GPIO.in(26) ist Endlage hinten

    GPIO.in(6) ist Endlage vorne

    GPIO.in (5) ist Umschaltung schnell / langsam


    Das Programm habe ich irgendwo abgekupfert und auf meine Bedürfnisse angepasst.

    Mit den Tasten S (stop), R (run), F (vorwärts), B (Rückwärts), L (langsam) M (mittel) und H (schnell)

    funktioniert es. Aber die Abschaltung bzw Umschaltung geht nicht.


    Das Programm:


    import RPi.GPIO as GPIO
    from time import sleep

    in1 = 17 #24
    in2 = 27 #23
    en = 22 #25
    SL = 5
    Stop_V = 6
    Stop_R = 26
    temp1=1

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(in1,GPIO.OUT)
    GPIO.setup(in2,GPIO.OUT)
    GPIO.setup(en,GPIO.OUT)
    GPIO.output(in1,GPIO.LOW)
    GPIO.output(in2,GPIO.LOW)
    GPIO.setup(6,GPIO.IN)
    GPIO.setup(26,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)
    GPIO.setup(5,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)
    p=GPIO.PWM(en,1000)
    p.start(25)
    print("\n")
    print("The default speed & direction of motor is LOW & Forward.....")
    print("r-run s-stop f-forward b-backward l-low m-medium h-high e-exit")
    print("\n")

    while(1):

    x=raw_input()

           
    if x=='r':
    print("run")
    if(temp1==1):
    GPIO.output(in1,GPIO.HIGH)
    GPIO.output(in2,GPIO.LOW)
    print("forward")
    x='z'

    else:
    GPIO.output(in1,GPIO.LOW)
    GPIO.output(in2,GPIO.HIGH)
    print("backward")
    x='z'



    if x=='s' or (GPIO.input(6) == GPIO.HIGH) or (GPIO.input(26) == GPIO.HIGH):
    print("stop")
    print (GPIO.input(6))
    print (GPIO.input(26))
    GPIO.output(in1,GPIO.LOW)
    GPIO.output(in2,GPIO.LOW)
    x='z'

    elif x=='f' and GPIO.input(6) == GPIO.LOW:
    print("forward")
    type (GPIO.input(6))
    GPIO.output(in1,GPIO.HIGH)
    GPIO.output(in2,GPIO.LOW)
    temp1=1
    x='z'


    elif x=='b' and (GPIO.input(26) == GPIO.LOW):
    print("backward")
    type (GPIO.input(26))
    GPIO.output(in1,GPIO.LOW)
    GPIO.output(in2,GPIO.HIGH)
    temp1=0
    x='z'

    elif x=='l' or (GPIO.input(5) == GPIO.HIGH):
    print("low")
    type (GPIO.input(5))
    p.ChangeDutyCycle(18)
    x='z'
           

    elif x=='m':
    print("medium")
    p.ChangeDutyCycle(30)
    x='z'
               
    elif x=='h':
    print("high")
    p.ChangeDutyCycle(50)
           
    x='z'

        
       
    elif x=='e':
    GPIO.cleanup()
    break
       

    Die Eingänge werden wohl zum falschen Zeitpunkt oder gar nicht gelesen.

    Hardwaremässig habe ich alles in Ordnung.

    Zu meinen Magnetschalter habe ich parallel Widerstände von 100M geschaltet.

    Wenn ich mit pigs die Eingänge auslese, kommen sie auch.

    Was ist falsch am Programm?