EnglishSvenska

Robotarna pratar med varandra!

De två små robotarna har en tom main-rutin och väntar på interupt-signaler från den stora roboten. Så fort en liten robot får order om att utföra så utför den oavsett var den befinner sig. På det här sättet låter vi den stora roboten stå för logiken och de små blir bara utförare.

 

För den som är intresserad finns kod att hämta:
rob_stor.txt
rob_liten_1.txt
rob_liten_2.txt

Ett utdrag från koden visar hur man använder TRAP för att använda interupts i RAPID-kod.

 

VAR bool first_loop:=true;

VAR intnum sig_mt_home;

VAR intnum sig_mt_ws;

VAR intnum sig_dodrill;

 

PROC main()

IF (first_loop) THEN

! mt_home

CONNECT sig_mt_home WITH t_mt_home;

ISignalDI DI_cR1_mt_home, high, sig_mt_home;

! mt_ws

CONNECT sig_mt_ws WITH t_mt_ws;

ISignalDI DI_cR1_mt_ws, high, sig_mt_ws;

! do drill

CONNECT sig_dodrill WITH t_dodrill;

ISignalDI DI_cR1_dodrill, high, sig_dodrill;

first_loop := false;

ENDIF

Reset DO_cR1_mt_home_d;

Reset DO_cR1_mt_ws_d;

Reset DO_cR1_dodrill_d;

!drill_sequence;

ENDPROC


TRAP t_dodrill

! its a trap!

Reset DO_cR1_dodrill_d;

dodrill;

Set DO_cR1_dodrill_d;

WaitTime 1.5;

RETURN;

ENDTRAP

 

Tagged with: , ,