CODESYS - das IEC 61131-3 Programmiersystem

Willkommen im offiziellen CODESYS - Forum von 3S-Smart Software Solutions | A member of the CODESYS Group
Deutsche Version English version russian version 
Aktuelle Zeit: Do Nov 21, 2019 1:52 am

Alle Zeiten sind UTC




Ein neues Thema erstellen  Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Mai 01, 2016 10:28 am 
Offline

Registriert: Mi Jul 29, 2015 10:47 am
Beiträge: 5
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:
Code:
nummer:=nummer +1;
Raspberry_Pi_Camera.Still('"-o Bild"+nummer+".jpg -t 0"');

Jedoch erhalte ich dann nur den Namen Bild_.jpg.

Vielen Dank schonmal

Freundliche Grüße

Ensi8050


Nach oben
   
BeitragVerfasst: So Mai 01, 2016 3:01 pm 
Offline

Registriert: Fr Feb 07, 2014 6:21 am
Beiträge: 86
Hallo,
versuch es mal so:
stBildfilename:=CONCAT('Bild',INT_TO_STRING(Nummer));
stBildfilename:=concat(stBildfilename,Extention);


Gruß
plcmax


Nach oben
   
BeitragVerfasst: Do Mai 05, 2016 6:46 am 
Offline

Registriert: Mi Jul 29, 2015 10:47 am
Beiträge: 5
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? :wink:

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:
Code:
Raspberry_Pi_Camera.Still('-o /media/usbstick/Bild_$(DATE +"%d-%m-%Y_%H:%M:%S").jpg -t 0');


Nach oben
   
BeitragVerfasst: Sa Mai 07, 2016 11:02 am 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 3539
Hi,
eigentlich hatte es plcmax schon korrekt beschrieben:
den Pfad muss du halt noch anpassen vermutlich:

Code:
PROGRAM PLC_PRG
VAR
   xTakePicture: BOOL;
   iPictureCounter: INT;
   strHelperCamOption: STRING:='-o';
   strPath:STRING:=' /media/usbstick/visu/picture';
   strFilename:STRING:='1';
   strFileExtension: STRING:='.jpg';
   strCAMCommand: STRING;
END_VAR
VAR CONSTANT
   maxPic:INT:=6;
END_VAR


die Implementireung:
Code:
IF xTakePicture THEN
   PrepareCommand();
   Raspberry_Pi_Camera.Still(strCAMCommand);
   xTakePicture := FALSE;
   iPictureCounter:=iPictureCounter+1;
   IF iPictureCounter = maxPic THEN
      iPictureCounter:=0;
      strFilename:= '0';
      strCAMCommand:='';
   END_IF
END_IF


PrepareCommand Action:
Code:
strFilename:= INT_TO_STRING(iPictureCounter);
strCAMCommand:=strHelperCamOption;
strCAMCommand:=CONCAT(strCAMCommand,strPath);
strCAMCommand:=CONCAT(strCAMCommand,strFilename);
strCAMCommand:=CONCAT(strCAMCommand,strFileExtension);


Grüße
Edwin


Dateianhänge:
CameraMultiblePicWebvisu.project [162.75 KiB]
148-mal heruntergeladen
Nach oben
   
BeitragVerfasst: Sa Mai 14, 2016 5:28 pm 
Offline

Registriert: Mi Jul 29, 2015 10:47 am
Beiträge: 5
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?

Code:
   IF Eingang_steigende_Flanke THEN                           
         //Bild und Video aufnehmen   
         Index:= Index+1;
   END_IF


Herzlichen Dank und schöne Grüße

Ensi8050


Nach oben
   
BeitragVerfasst: So Mai 15, 2016 5:41 pm 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 3539
Hi,
dann so, ne kleine Statemachine hilft in allen Lebenslagen ;-)

Code:
PROGRAM PLC_PRG
VAR
   xTakePicture: BOOL;
   iPictureCounter: INT;
   strHelperCamOption: STRING:='-o';
   strPath:STRING:=' /root/visu/';
   strFilename:STRING:='Picture';
   strFileExtension: STRING:='.jpg';
   strCAMCommand: STRING;
   Bitmapversion: ARRAY[1..maxPic] OF INT;
   iState: INT;
END_VAR
VAR CONSTANT
   maxPic:INT:=6;
END_VAR



Code:
IF xTakePicture THEN
   CASE iState OF
      0: // Prepare PictureName
         strFilename:='Picture';
         PrepareCommand();
         iPictureCounter:=iPictureCounter+1;   
         iState:=iState+1;
      1:
         Raspberry_Pi_Camera.Still(strCAMCommand);
         IF iPictureCounter = maxPic +1 THEN
            iPictureCounter:=0;
            strFilename:= '0';
            strCAMCommand:='';
         END_IF
            iState:=iState+1;
      2:
         xTakePicture := FALSE;
         iState:=0;
   END_CASE
END_IF


Grüße
Edwin


Nach oben
   
BeitragVerfasst: Fr Nov 08, 2019 11:01 pm 
Offline

Registriert: Fr Feb 20, 2015 5:07 pm
Beiträge: 9
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


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de