方法の一つ:ルーチン名を呼び出すルーチンを直接使用
単純すぎる、説明されません
方法2:コール%
%「PROC名」%コールルーチン
コードは示しています。
MODULE CommonMain PROCメイン() ヌムpathnumのVAR: = 0 ; 私の目標のn YES: = 0 ; VAR num個のtargettest: = 10 ; %" MoveRail "%0、0 ;!日常パラメトリック検定通常 %" MoveRail "%0 \正確な、0 ;!スイッチとの日常パラメトリック検定 %" MoveRail "%0、0 \ターゲット:= targettest ;! オプションのパラメータを持つルーチン試験 %" Rob1_Side " + NumToStr(pathnum、0)+ " _ " + NumToStr(targetnum、0)%;! 共通経路スタイルのテストコール ENDPROC PROC MoveRail(NUM movedistance \ 切り替える正確な、NUM transdis \ スイッチローム\ のvar num個のターゲット) 存在する場合(正確な)THEN TPWrite " 2、正確な" ; そうしないと 存在する場合(ターゲット)THEN TPWrite " 3、ターゲット:= " \のNum:= ターゲット。 そうしないと TPWrite 「1、無正確な」。 ENDIF ENDIF ENDPROC PROC Rob1_Side0_0() TPWrite " Rob1_Side0_0 " 。 ENDPROC ENDMODULE
エラー処理、読み込みエラーが存在する可能性があります
エラー TEST ERRNO ケースERR_LOADED; !エラー処理 デフォルト: ノーマル!
方法3:CallByVar命令
コードは示しています。
PROC CallPath(NUM TrackDistance、文字列のPathName \ スイッチ家) VAR NumLenのNUM: = 0 ; VARの文字列PROCNAME。 VARの文字列NumName。 VAR CGrdSpdのNUM: = 0 ; VARのブールチェック:= FALSE; VAR NUMミントはラック: = 0 ; IF StrMatch(PathName,1,"Up")<(StrLen(PathName)+1) THEN MinTrack:=MinTrack_up; ELSEIF StrMatch(PathName,1,"Mid")<(StrLen(PathName)+1) THEN MinTrack:=MinTrack_mid; ELSEIF StrMatch(PathName,1,"Down")<(StrLen(PathName)+1) THEN MinTrack:=MinTrack_down; ENDIF NumLen:=StrLen(PathName)-DivideLen; ProcName:=StrPart(PathName, 1, DivideLen); NumName:=StrPart(PathName,DivideLen+1,NumLen); Check:=StrToVal(NumName, ProcNumber); IF TrackDistance+wobj_x_displace<MinTrack THEN rHome; ELSE IF Present(home)=TRUE THEN MoveRail TrackDistance, RailSpeed, wobj_x_displace\Rhome; ELSE MoveRail TrackDistance, RailSpeed, wobj_x_displace; ENDIF bladeWobj.uframe.trans.x:=(CarriagePositionActualCom/100-wobj_x_displace); CallByVar ProcName, ProcNumber; ENDIF ENDPROC