Cancel
Showing results for 
Search instead for 
Did you mean: 

process control

Pioneer
Pioneer

Hello

I have a question, use the crane and I cut one piece into several smaller ones.Then, the first element is transmitted to the control station and the rest to the warehouse. I do not know which method to use to gantry wait until the process runs out of control, he took part and carried it to the warehouse and then collected the remaining store.

Thank you in advance

9 REPLIES

Re: process control

Solution Partner Phenom Solution Partner Phenom
Solution Partner Phenom

Lucas,

 

What is your question?


Gert Nomden
Senior Consultant | Tecnomatix Product Manager
cardsplmsolutions.com

Re: process control

Pioneer
Pioneer

Is there a command that causes the gantry will wait for an element to the end of the inspection process and then it will download and then the other components?

Re: process control

Genius
Genius

Hi Lucas,

 

you can define your own method for the un-/hook action in the strategy properites of the crane.

 

regards,

Frank

Re: process control

Pioneer
Pioneer

I have a question, that I did a loop that performs the same function through 2 "num_parts". But if I have one element or 3 or more it does not work correctly, I could use some loop?

Re: process control

Genius
Genius

Hi Lucas,

 

I cannot open your model cause i have only Plant Sim 11 on this maschine. Maybe you can post the method here.

 

I think u can solve ur problem by using a "while"- loop which runs until all parts are moved.

 

Re: process control

Pioneer
Pioneer

This is my method:

is
	motionOK	: integer;
	step		: integer;
	finished	: boolean;
do
	
	waituntil portal.state="idle" and Elementy.empty and Kontrola_jakości.empty prio 1;
	finished := false;
	step := 1;
	
	repeat
		inspect step
		when 1 then
			-- podjazd do Magazynu_blach_Nr1 
			motionOK := portal.moveToObject( Magazyn_blach_Nr1 );
	
		when 2 then
			-- opuszczenie haka 
			portal.moveHook( 2 );
			
		when 3 then
			-- podniesienie blachy
			-- priorytetem oczekiwanie póki hak nie będzie pełny
			Magazyn_blach_Nr1.cont.move( Portal.hook );
			waituntil portal.hook.full prio 1;
			
		when 4 then
			-- podniesienie haka z blachą
			portal.moveHook( 5 );
			
		when 5 then
			-- podjazd z blachą do Wycinarki
			motionOK := portal.moveToPosition(Wycinarka.XPos, Wycinarka.YPos );
			
		when 6 then
			-- opuszczenie haka z blachą
			portal.moveHook( 2 );
			
		when 7 then
			--  opuszczecnie blachy na wycinarkę
			--  priorytetem oczekiwanie póki hak nie będzie pusty
			portal.hook.cont.move(Wycinarka);
			waituntil portal.hook.empty prio 1;
			
		when 8 then
			-- podjazd do bufora Elementy
			motionOK := portal.moveToObject( Elementy );
	
		when 9 then
			-- opuszczenie haka
			portal.moveHook( 2 );
			
		when 10 then
			-- podniesienie elementu
			-- priorytetem oczekiwanie póki hak nie będzie pełny
			Elementy.cont.move( Portal.hook );
			waituntil portal.hook.full prio 1;
			
		when 11 then
			-- podniesienie haka z elementem
			portal.moveHook( 5 );
			
		when 12 then
			-- podjazd z elementem do stanowiska Kontrola_jakości
		
				motionOK := portal.moveToPosition(Kontrola_jakości.XPos, Kontrola_jakości.YPos );
			
			
		when 13 then
			-- opuszczenie haka z elementem
			portal.moveHook( 2 );
			
		
		when 14 then
			-- podniesienie elementu
			-- priorytetem oczekiwanie póki hak nie będzie pełny
			portal.hook.cont.move( Kontrola_jakości );
			waituntil portal.hook.empty prio 1;
			
					
		when 15 then
			-- podniesienie haka bez elementem
			portal.moveHook( 5 );
			
		when 16 then
			-- opuszczenie haka bez elementem
			portal.moveHook( 2 );
			
		when 17 then
			-- podniesienie elementu
			-- priorytetem oczekiwanie póki hak nie będzie pełny
			Kontrola_jakości.cont.move( Portal.hook );
			waituntil portal.hook.full prio 1;
			
		when 18 then
			-- podniesienie haka bez elementem
			portal.moveHook( 5 );
			
		when 19 then
			-- podjazd z elementem w 98% do Magazynu_elementów a w 2% do kontenera na Odpadki
			local rand:real;
				rand:=z_uniform(100,0,1);
					if rand < 0.97 then
						motionOK := portal.moveToPosition(Magazyn_elementów.XPos, Magazyn_elementów.YPos );
					else
						motionOK := portal.moveToPosition(Odpadki.XPos, Odpadki.YPos );
					end;
			
		when 20 then
			-- opuszczenie haka z elementem
			portal.moveHook( 2 );
			
		when 21 then
			--  opuszczecnie elementu
			
					if rand < 0.97 then
						portal.hook.cont.move( Magazyn_elementów );
					else
						portal.hook.cont.move(Odpadki);
					end;
					waituntil portal.hook.empty prio 1;
					
			
		when 22 then
			-- podniesienie haka pustego
			portal.moveHook( 5 );	
	
		when 23 then
			--  
			if Elementy.occupied then
				motionOK := portal.moveToPosition(Elementy.XPos, Elementy.YPos )
			else
				motionOK := portal.moveToPosition(Magazyn_blach_Nr1.XPos, Magazyn_blach_Nr1.YPos )
			end;		
			
		when 24 then
			-- opuszczenie haka pustego
			portal.moveHook( 2 );	
			
		when 25 then
				
			if Elementy.occupied then
				Elementy.cont.move( Portal.hook );
				waituntil portal.hook.full prio 1;
			else
				onExit;
			end;
			
		when 26 then
				
			-- podniesienie haka pełnego
			portal.moveHook( 5 );
				
		when 27 then
			
			motionOK := portal.moveToPosition(Kontrola_jakości.XPos, Kontrola_jakości.YPos );
			
		when 28 then
			
			portal.moveHook( 2 );
			
		when 29 then
			
			portal.hook.cont.move( Kontrola_jakości );
			waituntil portal.hook.empty prio 1;
			
					
		when 30 then
			-- podniesienie haka bez elementem
			portal.moveHook( 5 );
			
		when 31 then
			-- opuszczenie haka bez elementem
			portal.moveHook( 2 );
			
		when 32 then
			-- podniesienie elementu
			-- priorytetem oczekiwanie póki hak nie będzie pełny
			Kontrola_jakości.cont.move( Portal.hook );
			waituntil portal.hook.full prio 1;
			
		when 33 then
			-- podniesienie haka bez elementem
			portal.moveHook( 5 );
			
		when 34 then
		
		motionOK := portal.moveToPosition(Magazyn_elementów.XPos, Magazyn_elementów.YPos );
				
			
		when 35 then
			-- opuszczenie haka z elementem
			portal.moveHook( 2 );
			
		when 36 then
			--  opuszczecnie elementu
			
					
			portal.hook.cont.move( Magazyn_elementów );
		        waituntil portal.hook.empty prio 1;
			
			
			
		when 37 then
			-- koniec sekwencji
			portal.endSequence;
			finished := true;
		end;
		
		step := step+1;
		waituntil portal.state="waiting" and wycinarka.empty prio 1 ;
	until finished;
end;

Re: process control

Genius
Genius

Hi Lucas,

 

I would recommend you to split your one method/sequence in seperate onExit methods. You can create a different onExit method for your elementy station where you call the last part of your current sequence. Put this sequence in a loop according to the number of mu on your elementy station or check if Elementy.empty in ur first onExit method like u already did.

Re: process control

Pioneer
Pioneer

Hi

I did as you wrote, everything works the way I wanted, thanks a lot.

Re: process control

Pioneer
Pioneer

I would even to know one thing.
Currently I have done so that the sheet goes to the cutter and is divided into a number of elements. I would, for example, cut a sheet of size 3x1,5m, two elements of size 0,5x0,2m so that the Buefer1 went part of the cut and to Bufer2 the rest of the sheet. Earlier, I made so that the percentage sheet was divided into a part representing the component and the residue sheet. What method could skorzytsać to achieve this?

Bez tytułu.png