Bubble sort but, on a whole table

Hmm

The errors are located in the FOR NEXT loops,

3 errors in the first FOR NEXT and 3 errors in the second FOR NEXT loop...

A little things corrected, now I have 6 errors instead of 14

Here is the code:

IF SORTO_FLANK THEN
FOR i:= 0 TO 500
IF "ORDER_NUMMER".VARi= 0 THEN
"ORDER_NUMMER".VARi:= 50000;
END_IF;
END_FOR;
REPEAT
SWAP:= FALSE;
FOR index:= 500 TO 1 BY -1 DO
IF "ORDER_NUMMER".VARi[i - 1] > "ORDER_NUMMER".VARi THEN
aux1:= "ORDER_NUMMER".VARi;
"ORDER_NUMMER".VARi:= "ORDER_NUMMER".VARi[i - 1];
"ORDER_NUMMER".VARi[i - 1]:= aux1;
END_IF;
END_FOR;
UNTIL NOT swap
END_REPEAT;
FOR i:= 0 TO 500
IF "ORDER_NUMMER".VARi= 50000 THEN
"ORDER_NUMMER".VARi:= 0;
END_IF;
END_FOR;
END_IF;

dedesssde.jpg
 
Last edited:
I Forgot Do

Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
Do Do Do Do Do
 
Last Code

SORTO FLANK IS AN EDGE BIT; 1 cycle high..



Code:
 IF SORTO_FLANK THEN
	FOR i:= 0 TO 500 DO
		IF "ORDER_NUMMER".VARi[i]= 0 THEN
		 "ORDER_NUMMER".VARi[i]:= 50000;
		END_IF;						 
	END_FOR;
REPEAT
swap:= FALSE;
	FOR index:= 500 TO 1 BY -1 DO
		IF "ORDER_NUMMER".VARi[i - 1] > "ORDER_NUMMER".VARi[i] THEN
		aux1:= "ORDER_NUMMER".VARi[i];
		"ORDER_NUMMER".VARi[i]:= "ORDER_NUMMER".VARi[i - 1];
		"ORDER_NUMMER".VARi[i - 1]:= aux1;
		swap:= TRUE;
		END_IF;
	END_FOR;
UNTIL NOT swap		 
END_REPEAT;				 
	FOR i:= 0 TO 500 DO
		IF "ORDER_NUMMER".VARi[i]= 50000 THEN
		 "ORDER_NUMMER".VARi[i]:= 0;
		END_IF;						 
	END_FOR;
END_IF;

THIS IS MY LAST CODE;;; STILL NO DIFFERENCE? IT WRITES 50000 IN THE EMPTY PLACES AND DOES NOT A SORTATION ?
 
Last edited:
Found It

Code:
IF SORTO_FLANK THEN
	FOR i:= 0 TO 500 DO
		IF "ORDER_NUMMER".VARi[i]= 0 THEN
		   "ORDER_NUMMER".VARi[i]:= 50000;
		END_IF;						   
	END_FOR;
 REPEAT
 swap:= FALSE;
	FOR index:= 500 TO 1 BY -1 DO
		IF "ORDER_NUMMER".VARi[index - 1] > "ORDER_NUMMER".VARi[index] THEN
		aux1:= "ORDER_NUMMER".VARi[index];
		"ORDER_NUMMER".VARi[index]:= "ORDER_NUMMER".VARi[index - 1];
		"ORDER_NUMMER".VARi[index - 1]:= aux1;
		swap:= TRUE;
		END_IF;
	END_FOR;
 UNTIL NOT swap		  
 END_REPEAT;				   
	FOR i:= 0 TO 500 DO
		IF "ORDER_NUMMER".VARi[i]= 50000 THEN
		   "ORDER_NUMMER".VARi[i]:= 0;
		END_IF;						   
	END_FOR;
END_IF;


I'm still sleeping, I found it i had to be index
 
Final Code For Whole Table

Code:
 IF SORTO_FLANK THEN
	FOR i:= 0 TO 500 DO
		IF "ORDER_NUMMER".VARi[i]= 0 THEN
		   "ORDER_NUMMER".VARi[i]:= 50000;
		END_IF;						   
	END_FOR;
 REPEAT
 swap:= FALSE;
	FOR index:= 500 TO 1 BY -1 DO
		IF "ORDER_NUMMER".VARi[index - 1] > "ORDER_NUMMER".VARi[index] THEN
		aux1:= "ORDER_NUMMER".VARi[index];
		"ORDER_NUMMER".VARi[index]:= "ORDER_NUMMER".VARi[index - 1];
		"ORDER_NUMMER".VARi[index - 1]:= aux1;
		aux2:= "REGEL_NUMMER".VARi[index];
		"REGEL_NUMMER".VARi[index]:= "REGEL_NUMMER".VARi[index - 1];
		"REGEL_NUMMER".VARi[index - 1]:= aux2;
		aux3:= "LEVER_DATUM".VARi[index];
		"LEVER_DATUM".VARi[index]:= "LEVER_DATUM".VARi[index - 1];
		"LEVER_DATUM".VARi[index - 1]:= aux3;
		aux4:= "BUIS_TYPE".VARi[index];
		"BUIS_TYPE".VARi[index]:= "BUIS_TYPE".VARi[index - 1];
		"BUIS_TYPE".VARi[index - 1]:= aux4;
		aux5:= "GRONDSTOF_LENGTE".VARi[index];
		"GRONDSTOF_LENGTE".VARi[index]:= "GRONDSTOF_LENGTE".VARi[index - 1];
		"GRONDSTOF_LENGTE".VARi[index - 1]:= aux5;
		aux6:= "KLANT_NUMMER".VARi[index];
		"KLANT_NUMMER".VARi[index]:= "KLANT_NUMMER".VARi[index - 1];
		"KLANT_NUMMER".VARi[index - 1]:= aux6;
		aux7:= "ARTIKEL_NUMMER".VARi[index];
		"ARTIKEL_NUMMER".VARi[index]:= "ARTIKEL_NUMMER".VARi[index - 1];
		"ARTIKEL_NUMMER".VARi[index - 1]:= aux7;
		aux8:= "MATRIJS_STEMPEL_1".VARi[index];
		"MATRIJS_STEMPEL_1".VARi[index]:= "MATRIJS_STEMPEL_1".VARi[index - 1];
		"MATRIJS_STEMPEL_1".VARi[index - 1]:= aux8;
		aux9:= "MATRIJS_STEMPEL_2".VARi[index];
		"MATRIJS_STEMPEL_2".VARi[index]:= "MATRIJS_STEMPEL_2".VARi[index - 1];
		"MATRIJS_STEMPEL_2".VARi[index - 1]:= aux9;
		aux10:= "MATRIJS_GATEN".VARi[index];
		"MATRIJS_GATEN".VARi[index]:= "MATRIJS_GATEN".VARi[index - 1];
		"MATRIJS_GATEN".VARi[index - 1]:= aux10;
		aux11:= "BUIS_MATERIAAL".VARi[index];
		"BUIS_MATERIAAL".VARi[index]:= "BUIS_MATERIAAL".VARi[index - 1];
		"BUIS_MATERIAAL".VARi[index - 1]:= aux11;
		aux12:= "BUIS_DIAMETER".VARi[index];
		"BUIS_DIAMETER".VARi[index]:= "BUIS_DIAMETER".VARi[index - 1];
		"BUIS_DIAMETER".VARi[index - 1]:= aux12;
		aux13:= "BUIS_DIKTE".VARi[index];
		"BUIS_DIKTE".VARi[index]:= "BUIS_DIKTE".VARi[index - 1];
		"BUIS_DIKTE".VARi[index - 1]:= aux13;
		aux14:= "WENS_LENGTE".VARi[index];
		"WENS_LENGTE".VARi[index]:= "WENS_LENGTE".VARi[index - 1];
		"WENS_LENGTE".VARi[index - 1]:= aux14;
		aux15:= "WENS_HOEK_1".VARi[index];
		"WENS_HOEK_1".VARi[index]:= "WENS_HOEK_1".VARi[index - 1];
		"WENS_HOEK_1".VARi[index - 1]:= aux15;
		aux16:= "WENS_HOEK_2".VARi[index];
		"WENS_HOEK_2".VARi[index]:= "WENS_HOEK_2".VARi[index - 1];
		"WENS_HOEK_2".VARi[index - 1]:= aux16;
		aux17:= "WENS_AANTAL".VARi[index];
		"WENS_AANTAL".VARi[index]:= "WENS_AANTAL".VARi[index - 1];
		"WENS_AANTAL".VARi[index - 1]:= aux17;
		aux18:= "WENS_AANTAL_BUNDEL".VARi[index];
		"WENS_AANTAL_BUNDEL".VARi[index]:= "WENS_AANTAL_BUNDEL".VARi[index - 1];
		"WENS_AANTAL_BUNDEL".VARi[index - 1]:= aux18;
		swap:= TRUE;
		END_IF;
	END_FOR;
 UNTIL NOT swap		  
 END_REPEAT;				   
	FOR i:= 0 TO 500 DO
		IF "ORDER_NUMMER".VARi[i]= 50000 THEN
		   "ORDER_NUMMER".VARi[i]:= 0;
		END_IF;						   
	END_FOR;
END_IF;

works
 

Similar Topics

Hello all, I was looking into different sorting techniques and actually found a bubble/insertion sort sample code file on Rockwell's site. Only...
Replies
20
Views
5,267
Hello, I been trying to sort some values in the the Do-more PLC but still have some issues. I have 20 elements from the data view with random...
Replies
9
Views
3,666
Hi, im creating compressor station project with S7-1200. Project requires that 4 compressors should work in cascade - that's already done, and...
Replies
13
Views
11,621
Hi all, I need some help here please. I'm trying to understand the SCL programming example included in the SIEMENS SCL official documentation...
Replies
1
Views
7,828
Good afternoon guys, I have a basic question on the bubble level in the picture attached. This is probably really easy, but I don't get it, haha...
Replies
11
Views
3,357
Back
Top Bottom