Witam!!!
HH620
Pisze program i stoje w martwym punkcie.Problem polega na tym, ze mam w nim od groma LBL (finalnie okolo 400)a chce pod jednym Q opisac ich numery i skakac do nich.Kolejnosc musi byc zgodna z wpisem!!!Przykladowo:
Q1=1+5+23+65+70
Teraz jak opisac to maszynie aby skoczyla do LBL 1, pozniej LBL5 itd ???. Jest w ogole taka mozliwosc???Moze da sie to zrobic w inny sposob???
Prosze o pomoc.
Pozdrawiam!!!!
Jak uzyc funkcji "SKOK' z Q paramatrow
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 1
- Posty: 948
- Rejestracja: 28 gru 2009, 15:56
- Lokalizacja: Miasto nieudaczników
Dżem dobry,
jest to możliwe manipulując Qparametrami typu string
Kod jest poniżej
lninijki zaczunające się od znaku ' są to komentarze aby Kolega zrozumiał co sie dzieje w danej linijce
funkcje DECLARE STRING, SUBSTR znajdziemy klikając na steorwniku przycisk SPEC FCT, pozniej softkeye: funkcje programowe - string funkcje
reszte funkcji znajdziemy klikając przycisk Q na sterowniku, pozniej softeye FORMULA i przewijając pasek z softkeyami strzałkami w prawo i lewo
POCZĄTEK KODU:
'deklaracja stringu czyli numerów podpogramów któe chcesz wywoływać po kolei
DECLARE STRING QS1 = "1+5+7+4+10+133+67"
'deklaracja stringu w którym znajduje się znak "+" (plus) bo on oddziela numery LBL'ów
DECLARE STRING QS2 = "+"
BEGIN:
'TNC przeszukuje string QS1 w poszukiwaniu tekstu ze stringu QS2 (czyli plusa) i wypluwa na jakiej pozycji w tekście znajduje się nasz plus
Q50 = INSTR ( SRC_QS1 SEA_QS2 BEG0)
'przycinanie oryginalnego stringa, tak aby został TYLKO numer LBL
QS3 = SUBSTR ( SRC_QS1 BEG0 LENQ50)
'zamiana stringa na liczbę
Q51 = TONUMB (SRC_QS3)
'przycinanie oryginalnego stringa tak aby pozbyć się numeru LBL, który już był wykorzystany
QS1 = SUBSTR ( SRC_QS1 BEGQ50+1)
'wywołanie numeru LBL, który znajduje się w parametrze Q51
CALL LBLQ51
i tu powinien pojawić się powrót do początku programu, tylko nie jestem pewien jak to zrobić
GOTO BEGIN
jest to możliwe manipulując Qparametrami typu string
Kod jest poniżej
lninijki zaczunające się od znaku ' są to komentarze aby Kolega zrozumiał co sie dzieje w danej linijce
funkcje DECLARE STRING, SUBSTR znajdziemy klikając na steorwniku przycisk SPEC FCT, pozniej softkeye: funkcje programowe - string funkcje
reszte funkcji znajdziemy klikając przycisk Q na sterowniku, pozniej softeye FORMULA i przewijając pasek z softkeyami strzałkami w prawo i lewo
POCZĄTEK KODU:
'deklaracja stringu czyli numerów podpogramów któe chcesz wywoływać po kolei
DECLARE STRING QS1 = "1+5+7+4+10+133+67"
'deklaracja stringu w którym znajduje się znak "+" (plus) bo on oddziela numery LBL'ów
DECLARE STRING QS2 = "+"
BEGIN:
'TNC przeszukuje string QS1 w poszukiwaniu tekstu ze stringu QS2 (czyli plusa) i wypluwa na jakiej pozycji w tekście znajduje się nasz plus
Q50 = INSTR ( SRC_QS1 SEA_QS2 BEG0)
'przycinanie oryginalnego stringa, tak aby został TYLKO numer LBL
QS3 = SUBSTR ( SRC_QS1 BEG0 LENQ50)
'zamiana stringa na liczbę
Q51 = TONUMB (SRC_QS3)
'przycinanie oryginalnego stringa tak aby pozbyć się numeru LBL, który już był wykorzystany
QS1 = SUBSTR ( SRC_QS1 BEGQ50+1)
'wywołanie numeru LBL, który znajduje się w parametrze Q51
CALL LBLQ51
i tu powinien pojawić się powrót do początku programu, tylko nie jestem pewien jak to zrobić
GOTO BEGIN
Jeżeli pomogłem kliknij pomógł 

-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 1
- Posty: 412
- Rejestracja: 25 lut 2016, 19:23
- Lokalizacja: Tarnowskie Góry
Aloha
A już myślałem, że tylko ja jestem na tyle je***ty by używać takich "udziwnień" jak QS
EDIT:
Żeby było ładnie, schludnie i wygodnie zrobiłbym to tak:
i wywoływał "DO-IT" po każdym narzędziu.
Pozdrawiam
A już myślałem, że tylko ja jestem na tyle je***ty by używać takich "udziwnień" jak QS

W jakim celu? Resetowanie wartości QS można wpisać do LBL RESET i wywoływać go po wybraniu nowego narzędzia. Skok bezwarunkowy można wykonać za pomocą FN9: IF +0 EQU +0 GOTO LBL "GDZIES_TAM". Tylko należy pamiętać, że to jest skok, nie wywołanie.Pneumokok pisze:i tu powinien pojawić się powrót do początku programu, tylko nie jestem pewien jak to zrobić
GOTO BEGIN
EDIT:
Żeby było ładnie, schludnie i wygodnie zrobiłbym to tak:
Kod: Zaznacz cały
LBL "DO-IT"
deklaracja łańcucha z nr labeli
LBL "DO-IT-REP
iteracja po łańcuchu i wyciąganie nr labela
CALL LBL Q24
CALL LBL "DO-IT-REP" REP LEN(łańcuch)-1
LBL 0
Pozdrawiam
Ostatnio zmieniony 06 paź 2016, 14:49 przez capt.d., łącznie zmieniany 3 razy.
-
Autor tematu - Znawca tematu (min. 80)
- Posty w temacie: 2
- Posty: 92
- Rejestracja: 26 paź 2015, 18:01
- Lokalizacja: Kielce
Dziekuje za podpowiedzi!!!Na UBF 2200 z HH415F jeszcze tych formul nie bylo
(maszyna kupina nowa kupe lat temu do pomiaru zastawek serca Religi
).Od niedawna na 620 robie i caly czas cos nowego
.Plusy leca i dziekuje bardzo.Przetestuje w chwili wolnego czasu i efekt koncowy wrzuce na forum.
Pozdrawiam!!!!!



Pozdrawiam!!!!!