-> Hier kostenlos registrieren
Hallo!
Ich habe ein 5PP520 und will beim IF7 auf einen USB-Stick zugreifen.
Hab mit asUSB schon rausgefunden das es Dynamisch vergeben wird. Also /bd0 beim ersten USB Stick.
Zu meinem Problem:
Ich erstelle ein FileDevice mit DeviceLink() was laut .status auch wunderbar klappt.
Danach will ich ein bestimmtes Directory abfragen das auf dem Stick sein sollte und zwar mit DirInfo.
Und dieser sagt mir mit .status dauernd 20709 (pDevice ist zu lang oder NULL , fiERR_FILE_DEVICE ) bzw einmal hab ichs geschafft das er das FileDevice angenommen hat und da hat er
20723 (fiERR_DIR_NOT_EXIST , Verzeichnis existiert nicht) gebracht.
Das Verzeichnis ist jedenfalls auf dem Stick und unter Windows funktionierte das Programm auch mit dem fixen FileDevice über die HW wunderbar.
Jetzt auf dem PP komm ich wies scheint mit der Dynamischen Belegung bzw der Ordner Hierarchie nicht klar.
Der Code Lautet wie folgt (Auszug):
case 4:
fDevLink.enable = 1;
fDevLink.pDevice = (UDINT) "USBIF7";
fDevLink.pParam = (UDINT) "/DEVICE=/bd0";
DevLink(&fDevLink);
if(fDevLink.status == 0 || fDevLink.status == 20730){
byStepDL = 1;
bStepDLOK = 1;
}
else if(fDevLink.status != 65535){
bStepDLOK = 0;
iSysError = FileIoGetSysError();
iErrorCode = 14;
byStepError = 111;
}
break;
.
.
.
.
case 1:
iRunLevel = 10;
fDirInfo.enable = 1;fDirInfo.pDevice = (UDINT) File.DevPath; //da Steht "USBIF7" drinnen
fDirInfo.pPath = (UDINT) File.LibPath; // Ordner am Stick ist unter windows M:\MedienBibliothek\. LibPath eingegeben als "\\Medienbibliothek\\"
DirInfo(&fDirInfo);
if(fDirInfo.status == 20723)
byStepCP = 2;
else if(fDirInfo.status == 0)
byStepCP = 7;
else if(fDirInfo.status != 65535){
iErrorCode = 3;
byStepError = 1;
byStepCP = 0;
}
break;
Ende
Die 2 Cases sind aus 2 versch. Programmteilen werden aber sofort nacheinander (im gleichen Zyklus und als nächste Operation) abgearbeitet.
Stick hab ich versucht 32GB FAT32 und 4GB FAT. Beide gleiches Ergebnis.
Sticks wurden umbenannt in USBIF7.
Habs auch mit dem FileDevice in der HW versucht mit /DEVICE=/bd0 und dabei das DeviceLink auskommentiert.
Gleiches Ergebnis.
Vielleicht hat jemand eine Idee und kann mir weiterhelfen.
Wette ich überseh wieder was ganz einfaches
Vielen Dank im voraus!
Ich habe ein 5PP520 und will beim IF7 auf einen USB-Stick zugreifen.
Hab mit asUSB schon rausgefunden das es Dynamisch vergeben wird. Also /bd0 beim ersten USB Stick.
Zu meinem Problem:
Ich erstelle ein FileDevice mit DeviceLink() was laut .status auch wunderbar klappt.
Danach will ich ein bestimmtes Directory abfragen das auf dem Stick sein sollte und zwar mit DirInfo.
Und dieser sagt mir mit .status dauernd 20709 (pDevice ist zu lang oder NULL , fiERR_FILE_DEVICE ) bzw einmal hab ichs geschafft das er das FileDevice angenommen hat und da hat er
20723 (fiERR_DIR_NOT_EXIST , Verzeichnis existiert nicht) gebracht.
Das Verzeichnis ist jedenfalls auf dem Stick und unter Windows funktionierte das Programm auch mit dem fixen FileDevice über die HW wunderbar.
Jetzt auf dem PP komm ich wies scheint mit der Dynamischen Belegung bzw der Ordner Hierarchie nicht klar.
Der Code Lautet wie folgt (Auszug):
case 4:
fDevLink.enable = 1;
fDevLink.pDevice = (UDINT) "USBIF7";
fDevLink.pParam = (UDINT) "/DEVICE=/bd0";
DevLink(&fDevLink);
if(fDevLink.status == 0 || fDevLink.status == 20730){
byStepDL = 1;
bStepDLOK = 1;
}
else if(fDevLink.status != 65535){
bStepDLOK = 0;
iSysError = FileIoGetSysError();
iErrorCode = 14;
byStepError = 111;
}
break;
.
.
.
.
case 1:
iRunLevel = 10;
fDirInfo.enable = 1;fDirInfo.pDevice = (UDINT) File.DevPath; //da Steht "USBIF7" drinnen
fDirInfo.pPath = (UDINT) File.LibPath; // Ordner am Stick ist unter windows M:\MedienBibliothek\. LibPath eingegeben als "\\Medienbibliothek\\"
DirInfo(&fDirInfo);
if(fDirInfo.status == 20723)
byStepCP = 2;
else if(fDirInfo.status == 0)
byStepCP = 7;
else if(fDirInfo.status != 65535){
iErrorCode = 3;
byStepError = 1;
byStepCP = 0;
}
break;
Ende
Die 2 Cases sind aus 2 versch. Programmteilen werden aber sofort nacheinander (im gleichen Zyklus und als nächste Operation) abgearbeitet.
Stick hab ich versucht 32GB FAT32 und 4GB FAT. Beide gleiches Ergebnis.
Sticks wurden umbenannt in USBIF7.
Habs auch mit dem FileDevice in der HW versucht mit /DEVICE=/bd0 und dabei das DeviceLink auskommentiert.
Gleiches Ergebnis.
Vielleicht hat jemand eine Idee und kann mir weiterhelfen.
Wette ich überseh wieder was ganz einfaches

Vielen Dank im voraus!