• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PLC ST sekwencja początkujący

Object Storage Arubacloud
0 głosów
186 wizyt
pytanie zadane 18 lipca 2019 w Inne języki przez Tholin Nowicjusz (160 p.)

Cześć,

Jest to mój pierwszy post wiec serdecznie witam wszystkich.

Ponieważ  język ST w sterownikach PLC jest podobne do C++.
z miła chęcią przyjmę świrze spojrzenie programisto wysokopoziomowych na mój cod.

Opis zagadnienia:

Maszyna porusza się pomiędzy punktem A i B,
Przejazd z punktu  do punktu to 1 przejście.

np w jednym cyklu maszyna ma mieć:

2 przejścia czyli:  A do B do A
3 przejścia: A do B do A do B


Maszyna ma zadana ilość przejść. i t robi się problem jak mamy nieparzysta liczbę przejść. 
Aby nie tracić czasu nie che zawsze startować z punktu A w następnym cyklu maszyny jeżeli zaskoczyła cykl w pozycji B:


IF ProcessStep= 1 & StartMoving THEN
	passes:=0;
	ProcessStep:= 10;
END_IF;

IF passes > CurrentPasses THEN 
	IF ProcessStep= 10 & (CurrentPosition = position_A) THEN
		TargetPosition:=position_B;
		ProcessStep := 20;
	ELSE
		ProcessStep:= 11;
	END_IF;

		IF ProcessStep= 20 & TargetPosition = position_B THEN
			StartMotor := TRUE;
				IF MotorStatus = TRUE THEN
				StartMotor := FALSE;
				ProcessStep:= 21;
				END_IF;
		END_IF;
	
			 IF ProcessStep= 21 & CurrentPosition = TargetPosition & MotorDoon THEN
				CurrentPasses := passes +1;
			 END_IF;
			
	

				IF ProcessStep= 11 & CurrentPosition = position_B THEN
					TargetPosition:=position_A;
					ProcessStep := 12;
					ELSE
					ProcessStep:= 10;
				END_IF;

					IF ProcessStep= 12 & TargetPosition = position_B THEN
						StartMotor := TRUE;
							IF MotorStatus = TRUE THEN
								StartMotor := FALSE;
								ProcessStep:= 13;
							END_IF;
					END_IF;
					
						IF ProcessStep= 13 & CurrentPosition = TargetPosition & MotorDoon THEN
							CurrentPasses := passes +1;
						END_IF;
END_IF;

IF passes = CurrentPasses THEN
	StartMoving := FALSE;
	ProcessStep= 1;
END_IF;

 

 

1 odpowiedź

0 głosów
odpowiedź 14 czerwca 2021 przez Tholin Nowicjusz (160 p.)

Podobne pytania

0 głosów
1 odpowiedź 173 wizyt
0 głosów
1 odpowiedź 91 wizyt
0 głosów
1 odpowiedź 1,043 wizyt
pytanie zadane 19 kwietnia 2018 w C# przez Oskar Szkurłat Bywalec (2,780 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...