Hallo!
(Absatz enthält Vorgeplänkel und kann übersprungen werden )
Kurz zu mir: Ich habe schon mehrere Jahre Erfahrung damit, Bewegungsabläufe Offline mit Robotstudio zu simulieren und den Code entsprechend in RAPID-Quelltext auszugeben und auf den IRB2400ern (S4,S4C,S4C+) einzusetzen. Außerdem programmiere ich ziemlich viel in ObjectPascal und Visual Basic. Was mir aber neu ist, ist die Programmierung in RAPID. Durch meinen Background und Recherche in der mir vorliegenden Roboter-Programmstruktur komme ich ziemlich gut rein, allerdings hakt es noch an der ein oder anderen Ecke und dann was tun, wenn RAPID-Handbuch und google keine Hilfe bringt. Daher wollte ich mich mal gern im Forum nach einer Lösung erkundigen.
3Punkte:
1. Ich habe ein ziemlich langes Array hier und ich würde es gern der Übersichtlichkeit halber auf unterschiedliche Zeilen schreiben. Dazu kann man ja im VisualBasic einen Zeilenumbruch erzwingen indem man einfach " _" an ein Zeilenende schreibt und kann dann auf der nächsten Zeile weitermachen. Gibt es dazu ein Pendant im RAPID-Quelltext? Handbuch ist sehr mau wenn es um Arrays geht.
2. Ich möchte ein Programm schreiben, welches
- ein System-Modul von einer Floppy-Diskette öffnet
- eine fest definierte Konstante ausliest
- und das Systemmodul dann wieder entläd
3. weiterhin soll es auch ein modul von einer diskette laden, den inhalt verändern und die veränderte Version auf die diskette zurückspeichern. allgemein gibt es ja dazu etwas im RAPID-handbuch mit startload, waitload und unload, allerdings ist nirgendwo aufgeführt, wie man auf das Diskettenlaufwerk verweist. daher meine frage und ich poste hier einfach mal den quelltext zu 2.:
VAR BOOL bOK;
VAR NUM nI;
VAR NUM nActpart;
VAR NUM nDiff;
VAR NUM nTrgpart;
VAR loadsession load1;
StartLoad "HOME:" \File:="PICK.SYS", load1; !home muss ersetzt werden mit floppy
WaitLoad load1;
%"rIDENT"%;
nActpart:=nThispart;
UnLoad "HOME:" \File:="PICK.SYS"; !home muss ersetzt werden mit floppy
bOK:=StrToVal(stProd{nI,6},nTrgpart);
IF bOK=TRUE THEN
nDiff:=nTrgpart-nActpart;
IF (nDiff>0 AND Abs(nDiff)<50) OR (nDiff<0 AND Abs(nDiff)>50) THEN
FOR nI FROM 1 TO Abs(nDiff) DO
!PulseDO\PLength:=1,doUP;
ENDFOR
ELSE
FOR nI FROM 1 TO Abs(nDiff) DO
!PulseDO\PLength:=1,doDOWN;
ENDFOR
ENDIF
ENDIF
das ist der quelltext für 2.
bei 3. würde mich nur interessieren, wie die syntax aussieht für "geändertes programm auf floppy zurückspeichern (überschreiben)"
ist mein erster post, hoffe ist nich zuviel auf einmal. der rest funktioniert schon ganz gut. riesen im voraus und ein schönes wochenende!
gruss, lutz