Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: Problem mit SysProcessExecuteCommand und SysProcess.library

  1. #11
    Registriert seit
    03.12.2013
    Ort
    Bremen
    Beiträge
    165
    Danke
    13
    Erhielt 15 Danke für 15 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey Sascha,

    hast du an die Config-Datei gedacht?
    Hallo,
    Rückgabewert 25 bedeutet das es ein "nicht erlaubtes Kommando ist" das bedeute du hast dein Kommando nicht in /etc/CODESYSControl.cfg freigeschaltet.
    Kannst du schauen ob wirklich nur eine Sektion von SysProcess in diesem Konfig file vorhanden ist und es müsste:


    [SysProcess]
    Command.0=shutdown
    Command.1=irsend

    sein.

    Grüße
    Ich glaube die Funktion leifert dir nur eine Zeile zurück. Dein Python Script gibt aber zwei Zeilen aus.

    MfG
    Hendrik

  2. #12
    Registriert seit
    24.07.2013
    Beiträge
    420
    Danke
    1
    Erhielt 132 Danke für 111 Beiträge

    Standard

    Hi,
    frag lass dir mal noch den Rückgabewert geben.
    Code:
    diResult:=SysProcess.SysProcessExecuteCommand2(pszCommand:=command1, pszStdOut:=stdout, udiStdOutLen:= SIZEOF(stdout),pResult := ADR(Result));
    daran müsste man sehen was nicht klappt die Fehler findest du hier:

    Grüße
    Angehängte Grafiken Angehängte Grafiken
    Geändert von HausSPSler (30.03.2016 um 07:38 Uhr)
    Edwin Schwellinger
    3S-Smart Software Solutions GmbH

  3. #13
    Registriert seit
    14.04.2014
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hat leider etwas länger gedauert die Antwort. Seit Dienstag habe ich ein neues Kreuzband und bin erst seit gestern wieder zu Hause.

    @Hendrik
    Ja an die Config habe ich gedacht.
    [SysProcess]
    Command.0=shutdown
    Command.1=mysrom0

    Das Python liefert nicht zurück. Die zwei Zeilen sind nur zur Kontrolle des Script als print ausgegeben worden. Das Script führt nur ein JSON Befehl aus auf meine WLAN Steckdose um diese ein- bzw auszuschalten.

    Code:
    import urllib2
    from contextlib import closing
    import json
    import time     
    
    for _ in range(6):
        url = "http://192.168.XXX.XXX/report"
        with closing(urllib2.urlopen(url)) as response:
            response = json.load(response)
            print response['relay']
            if not response['relay']:
                url = "http://192.168.XXX.XXX/relay?state=1"
                urllib2.urlopen(url).read(1000)
                print response
                time.sleep(1) 
            else:
                print "bereits AN"
                break
    @HausSPSler
    Als Resultat kommt diResult = 1 zurück.

    diResult.pngdiResult_aktiv.jpg

  4. #14
    Registriert seit
    09.08.2012
    Beiträge
    10
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen,
    ich habe das selbe Problem wie bei dir.

    Irgendwie bekomm ich auch nur immer eine 1 zurück. Ich möchte allerdings einen SSH Command an den Pi schicken. Über Putty funktioniert der Befehl wunderbar, nur in Codesys bekomm ich ihn einfach nicht zum laufen.
    So sieht meine CODESYSControl.cfg aus.

    Code:
    [SysProcess]Command.0=shutdown
    Command.1=ssh
    Command=AllowAll
    Und hier noch ein paar Screenshots von meinem Programm etc.
    FehlerSSH.jpgFehlerSSH_Putty.pngFehlerSSH_Online.jpg

    Wäre spitze wenn mir hier jemand weiterhelfen kann.

    Vielen Dank schon im Vorraus.

    Grüße

  5. #15
    Registriert seit
    14.04.2014
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo

    Bei mir ist es so dass es funktioniert, jedoch bringt mir das Command immernoch eine 1 retour. Das Python-Script wird einwandfrei ausgeführt und schaltet meine WLAN Steckdose. Leider kann ich dir dazu auch nicht mehr weiterhelfen.

    Code:
    command1  := 'python /usr/bin/my_strom_on.py 192.168.XXX.XXX';
    Grüsse Sascha

  6. #16
    Registriert seit
    09.08.2012
    Beiträge
    10
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Sascha,
    bei mir bekomm ichs einfach nicht zum laufen.

    Habs jetzt auch mal mit einem phyton skript versucht. Selbes Ergebnis.

    Grüße

  7. #17
    Registriert seit
    09.08.2012
    Beiträge
    10
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen,
    hab es nun endlich zum laufen gebracht.

    Lösung des Problems bei mir war, dass die codesys runtime mit dem root user ausgeführt wird und ich immer nur den Nutzer Pi dazu berechtig hab über das ssh zu kommunisieren.

    Also funktioniert bei mir nun auch wunderbar.

    Jetzt wird die Webvisu dazu gebastelt.

    Grüße

  8. #18
    Registriert seit
    03.12.2013
    Ort
    Bremen
    Beiträge
    165
    Danke
    13
    Erhielt 15 Danke für 15 Beiträge

    Standard

    Moin 1cem4n und alle sonstigen Interessierten,

    bin gerade mal wieder über dieses Thema gestolpert - was meinst du damit?
    Lösung des Problems bei mir war, dass die codesys runtime mit dem root user ausgeführt wird und ich immer nur den Nutzer Pi dazu berechtig hab über das ssh zu kommunisieren.
    Grüße

  9. #19
    Registriert seit
    03.12.2013
    Ort
    Bremen
    Beiträge
    165
    Danke
    13
    Erhielt 15 Danke für 15 Beiträge

    Beitrag

    Moin Moin,

    ich habe mich heute noch einmal zwischen durch mit dem Thema beschäftigt und wollte mal kurz ein paar Dinge zusammenfassen.
    Folgendes wollte ich realisieren:
    Das RFID Modul RFIO-RC522 bei Codesys einbinden. Der Hintergrund hierfür ist ein einfacheres Usermanagement für eine kleine Steuerung.

    Um das ganze ans Laufen zu bekommen bin ich auf der Rpi ebene angefangen.
    Hierfür habe ich mich an folgenden Anleitung gehalten
    https://tutorials-raspberrypi.de/ras...eroeffner-nfc/
    Hier erstmal die entsprechenden Python Skripte runtergeladen, installieren und testen.
    Auf dem Rpi konnte ich so RFID Chips auslesen.

    Damit man die Module später auch in weiteren Skripten anwenden kann muss noch eine leere Datei in folgendem Ordner angelegt werden.
    WICHTIG __init__.py jeweils zwei Unterstriche vor und nach dem "init"!!

    pi@raspberrypi:~ $ cd MFRC522-python/
    pi@raspberrypi:~/MFRC522-python $ sudo nano __init__.py
    Mit STRG+O Speichern und mit STRG+X Datei verlassen.


    Jetzt das Ganze in die PLC reinholen.
    Da waren sie wieder die Probleme, wenn man das nicht tägliche / regelmäßig macht.

    Da ich noch ein altes Projekt hatte habe ich mir das dort abgeguckt.
    In der PLC Runtime wird folgender FB Aufruf benötigt.
    Code:
    VAR
        commandRFID :        STRING           := 'RFID';
        stdoutRFID :             STRING(1000)  := '';    
        ResultRFID :             RTS_IEC_RESULT;
    END_VAR
    
    SysProcess.SysProcessExecuteCommand2(pszCommand:=commandRFID, pszStdOut:=stdoutRFID, udiStdOutLen:= SIZEOF(stdoutRFID),pResult := ADR(ResultRFID));
    Zusätzlich muss auf dem Rpi folgende Datei angepasst werden: /etc/CODESYSControl.cfg

    Hier muss für jedes Script was ausgeführt werden soll einen Eintrag tätigen
    sieht zum Beispiel wie folgt aus:
    [SysProcess]
    Command.0=shutdown
    Command.1=CPU_Temp
    Command.2=RFID

    Die Skripte müssen alle in folgendem Verzeichnis auf dem Rpi liegen: /usr/bin

    Hier muss die Python Datei liegen.


    Python Script:
    sudo nano RFID.py
    Die Datei wird wie folgt befüllt:
    Code:
    
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import sys
    sys.path.append('/home/pi/MFRC522-python/') #liegt in einem anderem Verzeichniss
    import RPi.GPIO as GPIO
    import MFRC522
    import signal
    import time
     
    continue_reading = True
    # Capture SIGINT for cleanup when the script is aborted
    def end_read(signal,frame):
        global continue_reading
        print "Ctrl+C captured, ending read."
        continue_reading = False
        GPIO.cleanup()
     
    # Hook the SIGINT
    signal.signal(signal.SIGINT, end_read)
     
    # Create an object of the class MFRC522
    MIFAREReader = MFRC522.MFRC522()
     
    while continue_reading:
     
            # Scan for cards
            (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
     
            # If a card is found
            if status == MIFAREReader.MI_OK:
                    #print "Card detected"
     
                    # Get the UID of the card
                    (status,uid) = MIFAREReader.MFRC522_Anticoll()
                    #time.sleep(0.5)
                    print(uid)
                    continue_reading = False
                    GPIO.cleanup()
            else:
                    print("NoCard")
                    continue_reading = False
                    GPIO.cleanup()
    jetzt muss diese Datei für alle User zugelassen werden dies geht wie folgt:

    sudo chmod +x RFID.py

    wenn man das erledigt hat muss die Datei noch umbenannt oder kopiert werden ( Ich habe in der CodesysConfig das ganz mit "RFID" benannt)
    sudo cp RFID.py RFID

    jetzt ein Test in der Konsole ob alles funktioniert hat:

    pi@raspberrypi:/usr/bin $ RFID
    [227, 53, 7, 140, 93]

    So das Ganze hat funktionier jetzt wird das Ganze in Codesys ausprobiert und auch hier bekomme ich die Werte!

    Ich hoffe ich konnte einigen hiermit helfen bei Fragen meldet euch einfach!
    Diese Zusammenfassung habe ich aus dem Kopf zusammen geschrieben- falls etwas nicht wie beschrieben funktionieren sollte sagt bitte kurzer Bescheid!
    Geändert von Hendrik (31.05.2017 um 07:45 Uhr) Grund: Ergänzung __init__.py

  10. #20
    Registriert seit
    15.05.2017
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey Hendrik,
    vielen Dank für den Top Eintrag zum Auslesen des RFID und die Hilfe darüber hinaus.
    Hoffe es gibt noch mehr so hilfsbereite Menschen wie dich auf dieser Erde.

    Viele Grüß
    Oli

Ähnliche Themen

  1. LibnodaveConnection Library mit MC7 Umwandlung
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 12
    Letzter Beitrag: 25.08.2010, 23:29
  2. LibNodave mit Routing und Connection Library...
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 0
    Letzter Beitrag: 21.06.2010, 11:49
  3. LibNoDave und Connection Library mit Routing...
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 27.05.2010, 08:06
  4. Problem mit Library
    Von Diesla im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 24.07.2009, 20:09
  5. Trysim und Standard Library Bausteine
    Von RMA im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 28.04.2008, 17:18

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •