Znaleziono 2 wyniki

autor: djronin
23 wrz 2014, 12:45
Forum: Siemens Sinumerik CNC
Temat: Gdzie jest błąd w warunku ?
Odpowiedzi: 6
Odsłony: 1307

w Fanucu nie ma IF ELSE ENDIF wszystko na skokach :)

[ Dodano: 2014-09-23, 18:52 ]
Zienek pisze:Ogólnie praktyka w szeroko rozumianym programowaniu...
To są elementy języka wysokiego poziomu w assemblerze który jest najbliżej języka maszynowego wszystkie warunki opierają się na skokach JE JNE więc każdy if else endif jest przekładany na skoki. Są one po prostu mniej wygodne w stosowaniu.
autor: djronin
23 wrz 2014, 01:43
Forum: Siemens Sinumerik CNC
Temat: Gdzie jest błąd w warunku ?
Odpowiedzi: 6
Odsłony: 1307

Re: Gdzie jest błąd w warunku ?

seites pisze:Nie mogę się doszukać błędu w warunku

Kod: Zaznacz cały

IF R139==1 OR R139==0 GOTOF MANUAL
Czy R139 przyjmuje na począdku programu albo w innym miejscu wartość inną niż 1 lub 0 ??
Bo z tego wynika, że zawsze będzie skakać do manual chyba że gdzieś po drodze przyjmuje wartość poza 0 lub 1



a instrukcja warunkowa może wyglądać tak:

Kod: Zaznacz cały

IF (R13>=R140) OR (R15>=R140) OR (R17>=R140) OR (R19>=R140) ;TEST
    R139=1  ;JEŚLI TEST = PRAWDA
ELSE       ;W PRZECIWNYM RAZIE
    R139=0  ;JEŚLI TEST = FAŁSZ
ENDIF       ;KONIEC TESTU
Przy zastosowaniu IF - ENDIF lub IF - ELSE - ENDIF przypisanie wartości zmiennym jest bardziej przejrzyste skoki lepiej stosować do omijania znacznej części kodu, choć można też wyskoczyć z instrukcji np:

Kod: Zaznacz cały

IF (R13>=R140) OR (R15>=R140) OR (R17>=R140) OR (R19>=R140) ;TEST
    R139=1     ;JEŚLI TEST = PRAWDA
    GOTOF MANUAL
ELSE       ;W PRZECIWNYM RAZIE
    R139=0     ;JEŚLI TEST = FAŁSZ
    GOTOF AUTO
ENDIF    ;KONIEC TESTU
...
...
MANUAL:
...
...
...
...
M30
AUTO:
...
...
...
...
M30
POZDRAWIAM

Wróć do „Gdzie jest błąd w warunku ?”