weis jemand ob man über einen Piface Eingang und CODESYS SPS Programm eine Datei auf dem Raspberry ausführen kann?.
Ich möchte über das SPS Programm z.B. eine WAV Datei abspielen.
also wenn du schon mp3's abspielen kannst (über die Linux Konsole) dann kannst du den ersten Teil überspringen:
Anleitung:
am besten mit ssh (putty) zum Pi verbinden…
Dann musst du folgende
Befehle ausführen: (Zeile markieren und mit rechtsclick in putty kopieren +
ausführen also zeilenweise meine ich) sudo apt-get install
alsa-utils
sudo
apt-get install mpg321
sudo
reboot
sudo
modprobe snd_bcm2835
sudo
amixer cset numid=3 1
dann
must du eine Datei editeeren /usr/share/alsa/alsa.conf:
sudo nano
/usr/share/alsa/alsa.conf
Change
the line “pcm.front cards.pcm.front” to “pcm.front cards.pcm.default”
So nun kommt der Teil der für CODESYS wichtig ist:
sudo nano
/etc/CODESYSControl.cfg
[SysProcess] Command.0=mpg321
Im CODESYS Projekt SysProcessExecuteCommand (aus der SysProcess.library) oder SysProcessExecuteCommand2 (der ist neu in SP7 und liefert den Rückgabewert in die IEC Welt hoch) aufrufen.
Dazu mache ich dir noch ein Beispiel.
Btte unbedingt dieses Kommando (welches du dann über die Piface Taste startest) in einer eigenen Task aufrufen, das ist wichtig(diese Kommando's sind blockierend d.h die Task in IEC steht solange..)!
Hab mir das Command2 noch nicht angeschaut. Aber welche Werte kommen da zurück ? Hast du vieleicht ein Beispiel? Ich liebäugle immer noch mit KNX.
Über den EIBD Treiber kann ich werte schreiben und auch lesen. Daher mein Interesse
Gruß herbert
ja jetzt funktioniert es.
Habe beim Programmaufruf die Variable xPlaySound auf VAR_INPUT setzen müssen.
Da ich dein Beispiel in mein Projekt eingefügt habe hat noch die Bibliothek "SysTypes" gefehlt.
ich habe die passende Bibliothek eingebunden und habe einen Befehl eingegeben. Dieser wird allerdings auf dem Raspberry nicht ausgeführt. Ich möchte eine Wandlung von .h264 nach .mp4 machen, mit MP4Box. Dierekt auf dem Raspberry funktioniert der Befehl, gibt es noch eine Besonderheit für das senden von Befehlen? Ich nutze SysProcessExecuteCommand();
Command ist bei mir AllowAll. Der Befehl lautet 'MP4Box -add /media/pi/INTENSO/Videos/video1_1.h264 /media/pi/INTENSO/Videos/video1_1.mp4'
Das Video befindet sich auf einem Stick und soll dort umgewandelt werden. In dem Verzeichnis erscheint aber keine neue Datei nach dem Aufruf aus Codesys.
hm.. müsste schon gehen so,
was immer wieder falsch gemacht wird, ist das in der CODESYSControl.cfg der Eintrag versehentlich doppelt angelegt wird.
(es gibt schon eine Sektion in dem File... bitte diese verwenden für AllowAll)
Dann in IEC müsstest du einen Rückgabewert bekommen, der ist dann 25 was dann bedeutet keine Rechte diese Kommando aufzurufen.
Grüße
danke für die schnelle Antwort, ich habe bei mir einen Eintrag unter [SysProcess]. Den habe ich auch mal deaktiviert. Beides Mal kommt aber die 25 zurück.
ich habe den Raspberry mit sudo reboot neugestartet und die SPS urgelöscht und das Programm neu geladen. Funktioniert leider immer noch nicht, kann das damit zusammenhängen, das ich die Dateien auf einem Stick umwandeln möchte?
Hallo Christian,
es muss gehen!
bitte überprüfe noch einmal dein config file: 1 darf nur eine Sektion von SysProcess geben in dem File und Command.0=rcSwitch solltest du entfernen
[SysProcess]
Command=AllowAll
dann nochmals die Fehlermeldung anschauen im IEC Code wenn du es aufrufst.