Hallo Forum,
ich suche nach einer Möglichkeit mit Hilfe der Systemvariablen $PRO_NAME1[] bei bestimmten angewählten Programmen Meldebits in der sps.sub abzufeuern. Dazu muss ich den Programmnamen (oder Teile davon) vergleichen. PROBLEM: In der [glow=red,2,300]Software Version 4.1.7[/glow] stehen die String-Funktionen (StrComp, StrLen, StrCopy usw.) nicht zur Verfügung. Die KUKA-Hotline musste das erst prüfen und war dann selbst recht erstaunt.
Ich habe schon alles mir Erdenkliche probiert aber es wird beim Übersetzen angemeckert oder erzeugt Laufzeitfehler:
Beispiel: Das Programm heißt "zwischenlage.src"
DECL CHAR Vergleich[24] ;in der config.dat
Code der sps.sub:
IF (VARSTATE("$PRO_NAME1[]")==#INITIALIZED) THEN
;a)
IF ($PRO_NAME1[]=="zwischenlage") THEN ;Das gibt ein Syntaxfehler -> rechter Operand ungleich INT, CHAR, usw...
;...
;b)
IF ($PRO_NAME1[1]=="z") THEN ;Das gibt ein Laufzeitfehler -> sps.sub steigt aus -> Wert erwartet o.ä.???
;...
;c)
Vergleich[]=$PRO_NAME1[] ;Das gibt ein Syntaxfehler -> rechte Seite Feld unzulässig
IF (Vergleich[1]=="z") THEN
;...
;d)
Vergleich[]="zwischenlage"
IF $PRO_NAME1[]==Vergleich[] THEN ;Das gibt ein Syntaxfehler -> Linker Operand Feld unzulässig
Alles anzeigen
Ich habe bei den Laufzeitfehlern mal zur Kontrolle die Variable anzeigen lassen.
$PRO_NAME1[]="zwischenlage"
$PRO_NAME1[1]="" -> leer, nix, nada?
Also ich glaube ich muss umdenken. Aber bevor ich das tue wollte ich euch fragen ob jemand eine Idee hat wie ich das hinbekommen kann.
Klar könnte ich zu beginn der Programme einfach ein Meldebit setzen aber eine zyklische Abfrage wäre mir auf jeden Fall lieber...
Danke