Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched.
Close
gibt es eine Möglichkeit im Beispielprojekt Camera (mit dem Raspberry Pi) eine durchlaufende Nummerierung bei den erstellten Bildern einzuführen? Bisher war es ja so, dass immer die alte Datei überschrieben wurde. Ich habe es mit diesem Ansatz versucht:
plcmax hat geschrieben:
Hallo,
versuch es mal so:
stBildfilename:=CONCAT('Bild',INT_TO_STRING(Nummer));
stBildfilename:=concat(stBildfilename,Extention);
Gruß
plcmax
Hallo plcmax,
danke für deine Antwort. Dieser Ansatz würde innerhalb von CoDeSys den Namen durchnummerieren. Ist auch nützlich, aber mein Problem ist es, diesen Namen dem Raspberry Pi mitzuteilen; der Pi benennt am Ende ja die Datei. Kennst du dich darin vielleicht aus?
Grüße
Ensi8050
P.S. Habe jetzt es auch mit einem direkten Bash-Befehl versucht (auf dem Raspberry Pi klappt es), aber CoDeSys nimmt es nicht:
Hi,
eigentlich hatte es plcmax schon korrekt beschrieben:
den Pfad muss du halt noch anpassen vermutlich:
PROGRAMPLC_PRGVARÂ Â xTakePicture:BOOL;Â Â iPictureCounter:INT;Â Â strHelperCamOption:STRING:='-o';Â Â strPath:STRING:=' /media/usbstick/visu/picture';Â Â strFilename:STRING:='1';Â Â strFileExtension:STRING:='.jpg';Â Â strCAMCommand:STRING;END_VARVARCONSTANTÂ Â maxPic:INT:=6;END_VAR
die Implementireung:
IFxTakePictureTHEN
  PrepareCommand();
  Raspberry_Pi_Camera.Still(strCAMCommand);
  xTakePicture :=FALSE;
  iPictureCounter:=iPictureCounter+1;
  IFiPictureCounter=maxPicTHEN
    iPictureCounter:=0;
    strFilename:='0';
    strCAMCommand:='';
  END_IFEND_IF
vielen Dank für die ausführliche Erklärung, jetzt weiß ich was plcmax gemeint hatte. Die Stringerzeugung funktioniert jetzt wunderbar, außer mit dem Datum-Uhrzeit-Stempel ('-o /media/usbstick/Bild_DT#2016-05-10-06:54:18.jpg -t 100' als String macht er nicht). Das jetztige Problem besteht darin, dass keine korrekten Videodateien in der if-Schleife erzeugt werden bzw. nur die Videodatei (mit nur 1KB, 10 Sekunden waren eingestellt). Das xTakePicture ist bei mir ein digitaler Eingang, dessen Flanke überprüft wird (steigende Flanke). Der Index am Ende wird ohne Probleme hochgezählt.
Ich hoffe, Sie könnten nochmal einen kurzen Blick darüberwerfen?
  IFEingang_steigende_FlankeTHEN                 Â
      //BildundVideoaufnehmen Â
      Index:=Index+1;
  END_IF
Herzlichen Dank und schöne Grüße
Ensi8050
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
dann so, ne kleine Statemachine hilft in allen Lebenslagen
PROGRAMPLC_PRGVARÂ Â xTakePicture:BOOL;Â Â iPictureCounter:INT;Â Â strHelperCamOption:STRING:='-o';Â Â strPath:STRING:=' /root/visu/';Â Â strFilename:STRING:='Picture';Â Â strFileExtension:STRING:='.jpg';Â Â strCAMCommand:STRING;Â Â Bitmapversion:ARRAY[1..maxPic]OFINT;Â Â iState:INT;END_VARVARCONSTANTÂ Â maxPic:INT:=6;END_VAR
IFxTakePictureTHEN
  CASEiStateOF
    0: //PreparePictureName
      strFilename:='Picture';
      PrepareCommand();
      iPictureCounter:=iPictureCounter+1; Â
      iState:=iState+1;
    1:
      Raspberry_Pi_Camera.Still(strCAMCommand);
      IFiPictureCounter=maxPic+1THEN
        iPictureCounter:=0;
        strFilename:='0';
        strCAMCommand:='';
      END_IF
        iState:=iState+1;
    2:
      xTakePicture :=FALSE;
      iState:=0;
  END_CASEEND_IF
Grüße
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Edit1:
Ich meinte natürlich den Pfad auf den Visu-Ordner der SD-Karte, damit
diese in der Standardeinstellung dann über den Image-Pool eingebunden werden können.
Gruß
CloudHead
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Guten Tag,
gibt es eine Möglichkeit im Beispielprojekt Camera (mit dem Raspberry Pi) eine durchlaufende Nummerierung bei den erstellten Bildern einzuführen? Bisher war es ja so, dass immer die alte Datei überschrieben wurde. Ich habe es mit diesem Ansatz versucht:
Jedoch erhalte ich dann nur den Namen Bild_.jpg.
Vielen Dank schonmal
Freundliche Grüße
Ensi8050
Hallo,
versuch es mal so:
stBildfilename:=CONCAT('Bild',INT_TO_STRING(Nummer));
stBildfilename:=concat(stBildfilename,Extention);
Gruß
plcmax
Hallo plcmax,
danke für deine Antwort. Dieser Ansatz würde innerhalb von CoDeSys den Namen durchnummerieren. Ist auch nützlich, aber mein Problem ist es, diesen Namen dem Raspberry Pi mitzuteilen; der Pi benennt am Ende ja die Datei. Kennst du dich darin vielleicht aus?
Grüße
Ensi8050
P.S. Habe jetzt es auch mit einem direkten Bash-Befehl versucht (auf dem Raspberry Pi klappt es), aber CoDeSys nimmt es nicht:
Hi,
eigentlich hatte es plcmax schon korrekt beschrieben:
den Pfad muss du halt noch anpassen vermutlich:
die Implementireung:
PrepareCommand Action:
Grüße
Edwin
CameraMultiblePicWebvisu.project [162.75 KiB]
Hallo Herr Schwellinger,
vielen Dank für die ausführliche Erklärung, jetzt weiß ich was plcmax gemeint hatte. Die Stringerzeugung funktioniert jetzt wunderbar, außer mit dem Datum-Uhrzeit-Stempel ('-o /media/usbstick/Bild_DT#2016-05-10-06:54:18.jpg -t 100' als String macht er nicht). Das jetztige Problem besteht darin, dass keine korrekten Videodateien in der if-Schleife erzeugt werden bzw. nur die Videodatei (mit nur 1KB, 10 Sekunden waren eingestellt). Das xTakePicture ist bei mir ein digitaler Eingang, dessen Flanke überprüft wird (steigende Flanke). Der Index am Ende wird ohne Probleme hochgezählt.
Ich hoffe, Sie könnten nochmal einen kurzen Blick darüberwerfen?
Herzlichen Dank und schöne Grüße
Ensi8050
Hi,
dann so, ne kleine Statemachine hilft in allen Lebenslagen
Grüße
Edwin
Der korrekte Pfad lautet:
Cam.Still('-w 800 -h 600 -t 500 -o /var/opt/codesys/PlcLogic/visu/pic.jpg');
Edit1:
Ich meinte natürlich den Pfad auf den Visu-Ordner der SD-Karte, damit
diese in der Standardeinstellung dann über den Image-Pool eingebunden werden können.
Gruß
CloudHead