Znaleziono 11 wyników

autor: artur_1617
21 maja 2019, 15:58
Forum: PikoCNC
Temat: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu
Odpowiedzi: 719
Odsłony: 66075

Re: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu

No i wracam do mojego pulpitu z mpg
Na przyszlosc przycisk Stop podlaczony do modulu remote musi byc NO przy NC zatrzymuje czasami program...(sprawdzone poprawne polaczenie)
Modul remote mam ustawiony na 2
Jak poruszam potencjometrem od posuwu to porusza sie tylko os Z (obojetnie ktora os jest wybrana przez przelacznik) i niezaleznie od kierunku krecenia potencjometrem os Z jedzie zawsze na plus.
Przyciski joga w ogole nie dzialaja....
dodaje moj PLC
//==============================================================================
// Typ płyty kontrolera
// 1 - A,E
// 2 - B
#SET_OPTION 4 = 1

//==============================================================================
// Obsługa kodu M3/M4
// 1 - Narzędzie jednokierunkowe
// 2 - Narzędzie dwukierunkowe
#SET_OPTION 3 = 1

#SET_TIMER 0 = 1.0 // M3/M4 czas rozpędzania (sek)
#SET_TIMER 1 = 1.0 // M3/M4 czas hamowania (sek)

//==============================================================================
// Tryb obsługi kodu M8 (chłodznie)
// 0 - brak
// 1 - praca pulsacyjna
// 2 - ON/OFF
#SET_OPTION 0 = 2

//==============================================================================
// Sposób wykorzystania wejść LIMIT
// 0 - brak
// 1 - limity osi (po dwa wejścia na oś)
// 2 - wejścia wspólne limit + - dla wszystkich osi
// 3 - jog osi
#SET_OPTION 1 = 0

//==============================================================================
// Wejście HOME_Z jako krańcówka osi Z
// 0 - Nie
// 1 - Tak
#SET_OPTION 10 = 2

//==============================================================================
// Obsługa głowicy wykuwającej
// 0 - Nie
// 1 - Tak
#SET_OPTION 2 = 0

//==============================================================================
// Impulsator parametru %F
// 0 - OFF
// 1 - ON
#SET_OPTION 8 = 1

//==============================================================================
// Impulsator parametru %S
// 0 - OFF
// 1 - ON
#SET_OPTION 9 = 1

//==============================================================================
// Jog oraz wejście PROBE osi technicznej
// 0 - OFF
// 1 - ON
#SET_OPTION 5 = 0

//==============================================================================
// Impuls resetujący serwa po naciśnięciu RUN
// 0 - OFF
// 1 - Impuls resetujący serwa po naciśnięciu RUN,
// 2 - j.w + wspólne wejście błędu
// 3 - j.w + osobne wejścia błędów
#SET_OPTION 6 = 0

//==============================================================================
// Wykorzystanie modułu zdalnych wejść (REMOTE)
// 0 - OFF
// 1 - jako JOG-a z przyciskami
// 2 - jako JOG-a z enkoderem (impulsatorem) 100/50 imp/obr.
#SET_OPTION 12 = 2

//==============================================================================
// Przykład wyświetlania komunikatów informacyjnych
// oraz obsługi klawiszy (klawiatura numeryczna)
// 0 - OFF
// 1 - ON
#SET_OPTION 11 = 0






//==============================================================================
// Wyjście ENABLE
//==============================================================================
#IF_OPTION 4 = 1
#NAME_O 7 = ENABLE
#END_OPTION

#IF_OPTION 4 = 2
#NAME_O 6 = ENABLE
#END_OPTION

<< RUN
>> OUT ENABLE

//==============================================================================
// Wejścia INDEX
//==============================================================================
#NAME_I 8 = INDEX_X
#NAME_I 7 = INDEX_Y
#NAME_I 6 = INDEX_Z

<< IN INDEX_X
>> INDEX_0

<< IN INDEX_Y
>> INDEX_1

<< IN INDEX_Z
>> INDEX_2


//==============================================================================
// Wejścia E_STOP
//==============================================================================
#NAME_I 12 = KEY_E_STOP
#TXT_ESTOP 0 = Przycisk bezpieczeństwa

<< IN KEY_E_STOP
!> E_STOP_0


//==============================================================================
// Obsługa kodu M3/M4 - Narzędzie jednokierunkowe
//==============================================================================
#IF_OPTION 3 = 1
#NAME_O 0 = SPINDLE

<< M C_M3
OR M C_M4
>> OUT SPINDLE

+< OUT SPINDLE
S> T0_S
OR T0
>> FIFO_WAIT
>> N_WAIT_G0

-< OUT SPINDLE
S> T1_S
OR T1
S> FIFO_WAIT
#END_OPTION

//==============================================================================
// Obsługa kodu M3/M4 - Narzędzie dwukierunkowe
//==============================================================================
#IF_OPTION 3 = 2

#NAME_O 0 = SPIN_CW
#NAME_O 2 = SPIN_CCW
#NAME_M 10 = ON_M3M4

<< M C_M3
R> M C_M4
>> OUT SPIN_CW

<< M C_M4
>> OUT SPIN_CCW

OR M C_M3
>> M ON_M3M4

+< M ON_M3M4 // Blokowanie programu na czas rozpędzania (T0)
S> T0_S
OR T0
>> FIFO_WAIT
>> N_WAIT_G0

-< M ON_M3M4 // Blokowanie programu na czas hamowania (T1)
S> T1_S
OR T1
S> FIFO_WAIT

#END_OPTION

//==============================================================================
// Obsługa kodu M8
// wariant 1 - praca pulsacyjna
//==============================================================================
#IF_OPTION 0 = 1

#NAME_O 1 = MIST_PULSE
#SET_TIMER 2 = 0.5 // Czas załączenia (sek)
#SET_TIMER 3 = 0.3 // Czas wyłączenia (sek)

+< M C_M8
S> T2_S
S> T3_R
IF_FALSE_BEGIN
-< T2
S> T3_S
-< T3
S> T2_S
ENDIF

<< M C_M8
AND T2
>> OUT MIST_PULSE

#END_OPTION


//==============================================================================
// Obsługa kodu M8
// wariant 2 - praca ciągła
//==============================================================================
#IF_OPTION 0 = 2
#NAME_O 1 = MIST

<< M C_M8
>> OUT MIST

#END_OPTION


//==============================================================================
// Obsługa głowicy wykuwającej
//==============================================================================
#IF_OPTION 2 = 1

#NAME_O 5 = HAMER_CLK
#NAME_O 4 = HAMER_DIR
#SET_TIMER 6 = 0.02 // Czas trwania impulsu wykuwającego (DIR)

<< M 10
>> OUT HAMER_CLK

<< T6
IF_FALSE_BEGIN
+< MOVE_INIT
S> T6_S
ENDIF

<< T6
OR T6_S
>> OUT HAMER_DIR

^< OUT HAMER_DIR
>> M 10

#END_OPTION


//==============================================================================
// Jog oraz wejście PROBE osi technicznej
//==============================================================================
#IF_OPTION 5 = 1

#NAME_M 7 = C_KEY_2
#NAME_M 8 = C_KEY_8
#NAME_I 8 = TAX_PROBE

<< IN TAX_PROBE
>> TA_PROBE

<< M C_KEY_8
>> TA_JOG_R

<< M C_KEY_2
>> TA_JOG_L

#END_OPTION


//==============================================================================
// Impuls resetujący serwa po naciśnięciu RUN
//==============================================================================
#IF_OPTION 6 = 1

#NAME_O 6 = SERVO_RESET
#SET_TIMER 7 = 0.5 // Długość impulsu resetującego (sek)

+< RUN
S> T7_S
OR T7
>> OUT SERVO_RESET

#END_OPTION


//==============================================================================
// Impuls resetujący serwa po naciśnięciu RUN,
// oraz wspólne wejście błędu
//==============================================================================
#IF_OPTION 6 = 2

#NAME_I 14 = SERV_ERR
#NAME_O 4 = SERVO_RESET
#SET_TIMER 7 = 0.5 // Długość impulsu resetującego (sek)
#TXT_ESTOP 1 = Błąd serwonapędu !

+< RUN
S> T7_S
OR T7
>> OUT SERVO_RESET

<< IN SERV_ERR
AND RUN
AND! OUT SERVO_RESET
>> E_STOP_1

#END_OPTION


//==============================================================================
// Impuls resetujący serwa po naciśnięciu RUN,
// oraz osobne wejścia błędów dla każdej osi.
//==============================================================================
#IF_OPTION 6 = 3

#NAME_I 14 = SERV_ERR_X
#NAME_I 15 = SERV_ERR_Y
#NAME_I 16 = SERV_ERR_Z
// #NAME_I 17 = SERV_ERR_A
#NAME_O 4 = SERVO_RESET
#TXT_ESTOP 1 = Błąd serwonapędu osi X !
#TXT_ESTOP 2 = Błąd serwonapędu osi Y !
#TXT_ESTOP 3 = Błąd serwonapędu osi Z !
// #TXT_ESTOP 4 = Błąd serwonapędu osi A !
#SET_TIMER 7 = 0.5 // Długość impulsu resetującego (sek)

+< RUN
S> T7_S
OR T7
>> OUT SERVO_RESET

<< RUN
AND! OUT SERVO_RESET
IF_TRUE_BEGIN
<< IN SERV_ERR_X
>> E_STOP_1
<< IN SERV_ERR_Y
>> E_STOP_2
<< IN SERV_ERR_Z
>> E_STOP_3
// << IN SERV_ERR_A
// >> E_STOP_4
ENDIF

#END_OPTION


//==============================================================================
// Wejścia HOME
//==============================================================================
#NAME_I 11 = HOME_X
#NAME_I 10 = HOME_Y
#NAME_I 9 = HOME_Z

<< IN HOME_X
>> HOME_0

<< IN HOME_Y
>> HOME_1

<< IN HOME_Z
>> HOME_2

<< IN HOME_Z
>> PROBE


//==============================================================================
// HOME_Z jako krańcówka osi Z
//==============================================================================
#IF_OPTION 10 = 1

#SET_TIMER 4 = 1.0

<< REF_0
OR REF_1
OR REF_3
>> T4_S

!< T4
AND HOME_2
>> LIMIT_R2

#END_OPTION


//==============================================================================
// Opcje wykorzystania wejść LIMIT
// Wariant 1: wejścia limit osi. Każda oś dwa wejścia.
//==============================================================================
#IF_OPTION 1 = 1

#NAME_I 5 = LIM_XL
#NAME_I 8 = LIM_XR
#NAME_I 4 = LIM_YL
#NAME_I 7 = LIM_YR
#NAME_I 3 = LIM_ZL
#NAME_I 6 = LIM_ZR

<< IN LIM_XL
>> LIMIT_L0

<< IN LIM_XR
>> LIMIT_R0

<< IN LIM_YL
>> LIMIT_L1

<< IN LIM_YR
>> LIMIT_R1

<< IN LIM_ZR
>> LIMIT_R2

<< IN LIM_ZL
>> LIMIT_L2

#END_OPTION


//==============================================================================
// Opcje wykorzystania wejść LIMIT
// Wariant 2: wejścia limit wspólne + - dla wszystkich osi
//==============================================================================
#IF_OPTION 1 = 2

#NAME_I 7 = LIM_COM_L
#NAME_I 8 = LIM_COM_R
#TXT_ESTOP 1 = Krańcówka limit - lewa...
#TXT_ESTOP 2 = Krańcówka limit - prawa...

+< IN LIM_COM_L
>> E_STOP_1

+< IN LIM_COM_R
>> E_STOP_2

<< IN LIM_COM_L
>> LIMIT_L0
>> LIMIT_L1
>> LIMIT_L2

<< IN LIM_COM_R
>> LIMIT_R0
>> LIMIT_R1
>> LIMIT_R2

#END_OPTION


//==============================================================================
// Opcje wykorzystania wejść LIMIT
// Wariant 3: wejścia jog osi X Y Z
//==============================================================================
#IF_OPTION 1 = 3

#NAME_I 5 = JOG_XL
#NAME_I 8 = JOG_XR
#NAME_I 4 = JOG_YL
#NAME_I 7 = JOG_YR
#NAME_I 3 = JOG_ZL
#NAME_I 6 = JOG_ZR

<< IN JOG_XL
>> JOG_L0

<< IN JOG_XR
>> JOG_R0

<< IN JOG_YL
>> JOG_L1

<< IN JOG_YR
>> JOG_R1

<< IN JOG_ZL
>> JOG_L2

<< IN JOG_ZR
>> JOG_R2

<< IN KEY_RESET
>> JOG_FAST

#END_OPTION


//==============================================================================
// Impulsator parametru %F
//==============================================================================
#IF_OPTION 8 = 1

#NAME_I 2 = IMP_PUL_F
#NAME_I 3 = IMP_DIR_F

+< IN IMP_PUL_F
IF_TRUE_BEGIN
H> WH_MD0
L> WH_MD1
H> WH_MD2

<< IN IMP_PUL_F
>> WH_PULSE

<< IN IMP_DIR_F
>> WH_DIR
ENDIF

#END_OPTION


//==============================================================================
// Impulsator parametru %S
//==============================================================================
#IF_OPTION 9 = 1

#NAME_I 1 = IMP_PUL_S
#NAME_I 0 = IMP_DIR_S

+< IN IMP_PUL_S
IF_TRUE_BEGIN
L> WH_MD0
H> WH_MD1
L> WH_MD2

<< IN IMP_PUL_S
>> WH_PULSE

<< IN IMP_DIR_S
>> WH_DIR
ENDIF

#END_OPTION


//==============================================================================
// Przykład wyświetlania komunikatów informacyjnych
// oraz obsługi klawiszy (klawiatura numeryczna klawisze 0 i 1)
//==============================================================================
#IF_OPTION 11 = 1

#NAME_M 25 = C_KEY_0
#NAME_M 26 = C_KEY_1
#NAME_M 21 = C_KEY_CTRL
#NAME_M 14 = MSG_TXT_0
#NAME_M 15 = MSG_TXT_1
#NAME_M 16 = MSG_TXT_2
#NAME_M 17 = MSG_TXT_3
#TXT_MSG 0 = INFO: Naciśnięto klawisz 0
#TXT_MSG 1 = INFO: Naciśnięto klawisz 1
#TXT_MSG 2 = INFO: Naciśnięto klawisz 0 + CTRL
#TXT_MSG 3 = INFO: Naciśnięto klawisz 1 + CTRL

<< M C_KEY_CTRL
IF_FALSE_BEGIN
<< M C_KEY_0
>> M MSG_TXT_0

<< M C_KEY_1
>> M MSG_TXT_1
ELSE_BEGIN
<< M C_KEY_0
>> M MSG_TXT_2

<< M C_KEY_1
>> M MSG_TXT_3
ENDIF

#END_OPTION


//==============================================================================
// Przykład wykorzystania modułu zdalnych wejść jako JOG-a
//==============================================================================
#IF_OPTION 12 = 1
#NAME_I 5 = REMOTE
#NAME_I 22 = RMJOG_XL
#NAME_I 23 = RMJOG_XR
#NAME_I 24 = RMJOG_YL
#NAME_I 25 = RMJOG_YR
#NAME_I 26 = RMJOG_ZL
#NAME_I 27 = RMJOG_ZR
#NAME_I 30 = RMJOG_FAST

<< IN REMOTE
>> REMOTE_IN

<< IN RMJOG_XL
>> JOG_L0

<< IN RMJOG_XR
>> JOG_R0

<< IN RMJOG_YL
>> JOG_L1

<< IN RMJOG_YR
>> JOG_R1

<< IN RMJOG_ZL
>> JOG_L2

<< IN RMJOG_ZR
>> JOG_R2

<< IN RMJOG_FAST
>> JOG_FAST

#END_OPTION

//==============================================================================
// Przykład wykorzystania modułu zdalnych wejść jako JOG-a z przełącznikiem
// trybu oraz enkoderem (impulsatorem) 100 lub 50 imp/obr.
// Manipulator ma następujące przyciski:
// JOG_L – jazda jog w lewo (wybór osi przełącznikiem)
// JOG_R – jazda jog w prawo
// JOG_FAST – Tryb szybki dla jog i impulsatora
// START
// STOP
// PAUZA
// ZERO – zerowanie (wybór osi przełącznikiem). Aktywny gdy przyciśnięty
// razem z JOG_FAST
// Enkoder (wybór trybu pracy przełącznikiem)
//==============================================================================
#IF_OPTION 12 = 2
#NAME_I 16 = ENC_A // Wejście "A" enkodera ( >> DIR)
#NAME_I 17 = ENC_B // Wejście "B" enkodera ( >> PULSE)
#NAME_I 5 = REMOTE // Moduł podpięty pod wejście 5
#NAME_I 13 = WH_STEP_1
#NAME_I 14 = WH_STEP_2
#NAME_I 22 = RMJOG_L
#NAME_I 23 = RMJOG_R
#NAME_I 24 = RM_REF
#NAME_I 25 = RM_START
#NAME_I 26 = RM_STOP
#NAME_I 27 = RM_PAUZA
#NAME_I 28 = RM_ZERO
#NAME_I 29 = WHM_0
#NAME_I 30 = WHM_1
#NAME_I 31 = WHM_2

<< IN REMOTE
>> REMOTE_IN

<< IN RMJOG_L // Jog w lewo. Wybór osi za pomocą przełącznika.
>> WH_JOG_L

<< IN RMJOG_R // Jog w prawo
>> WH_JOG_R

<< REF
OR IN RM_REF
>> REF

<< START
OR IN RM_START
>> START

<< STOP
OR IN RM_STOP
>> STOP

<< PAUSE
OR IN RM_PAUZA
>> PAUSE

+< IN ENC_A // Podłączenie enkodera 100/50 imp/obr.
S> M 20

-< IN ENC_B
AND M 20
IF_TRUE_BEGIN
<< IN ENC_B
!> WH_PULSE

<< IN ENC_A
>> WH_DIR

L> M 20




<< IN WHM_0 // Podłączenie bitów wyboru trybu pracy impulsatora
>> WH_MD0

<< IN WHM_1
>> WH_MD1

<< IN WHM_2
>> WH_MD2

ENDIF




#END_OPTION

// Koniec
autor: artur_1617
13 mar 2019, 20:17
Forum: PikoCNC
Temat: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu
Odpowiedzi: 719
Odsłony: 66075

Re: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu

Po przeniesieniu tego ENDIF wszystko dziala jak powinno.
autor: artur_1617
07 mar 2019, 19:33
Forum: PikoCNC
Temat: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu
Odpowiedzi: 719
Odsłony: 66075

Re: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu

Dzisiaj podlaczylem pulpit i niestety nie jest tak rozowo...
Podlaczylem dwa impulsatory od obrotow i posuwu i z godzine walczylem zeby zadzialaly.
W PLC bylo widac ze dzialaja lecz nic sie nie zmienialo. Az wlaczylem modul remote na 1 czyli przyciski bez impulsatora i zadzialalo.
Jezeli modul remote jest ustawiony na 2 i wybierzemy np. os Z to po przekreceniu ktoregos impulsatora (od obrotow lub posuwu) porusza sie os :D
Takze trzeba poprawic aby przy module remote pracujacym w trybie 2 mogly dzialac zarowno impulsatory od obrotow, posuwu i poruszania osiami.
autor: artur_1617
15 lut 2019, 21:10
Forum: PikoCNC
Temat: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu
Odpowiedzi: 719
Odsłony: 66075

Re: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu

Dzisiaj przetestowalem impulsator 100imp.obr i o dziwo dziala bardzo dobrze.
Tylko z tym mnoznikem jest problem....
Testowalem tryb normalny na 0.01 i tryb szybki 0.1 (x10 wiecej sie nie da) czyli wolno...
Takze przydaloby sie dodac tryb sredni x10 a w szybkim pozwolic na mnoznik x100
autor: artur_1617
13 lut 2019, 20:17
Forum: PikoCNC
Temat: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu
Odpowiedzi: 719
Odsłony: 66075

Re: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu

dol drzwiczek jest ponizej blatu stolu i szerokos ich jest wieksza od pola roboczego w Y (czyli brama), na tylnej sciance jest dekiel odkrecany na szerokosc nog bramy, boczne scianki takze maja sciagane dekle na dlugosc pola w X i wysokosc robocza w Z...to tak na wszelki wypadek jakby przyszlo cos wiekszego frezowac...
autor: artur_1617
13 lut 2019, 07:48
Forum: PikoCNC
Temat: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu
Odpowiedzi: 719
Odsłony: 66075

Re: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu

Frezarka ma pole 500x400mm i dojscie bedzie tylko przez drzwiczki od przodu, takze za duzo nie pochodze.
Dzieki temu mnoznikowi mozna zrobic panel z prawdziwego zdarzenia.
autor: artur_1617
12 lut 2019, 20:22
Forum: PikoCNC
Temat: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu
Odpowiedzi: 719
Odsłony: 66075

Re: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu

Robie pulpit na przedniej sciance frezarki przyciski,potencjometry do posuwu i obrotow no i impulsator tak jak w normalnych obrabiarkach...
Takze czekam na dodanie tego mnoznika posowu x1, x10,x100
autor: artur_1617
12 lut 2019, 07:48
Forum: PikoCNC
Temat: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu
Odpowiedzi: 719
Odsłony: 66075

Re: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu

Wlasnie jestem na etapie podlaczania impulsatora i przydaloby sie dodac mnoznik posowu x1, x10,x100 najlepiej do modulu remote.
autor: artur_1617
21 paź 2018, 13:33
Forum: PikoCNC
Temat: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu
Odpowiedzi: 719
Odsłony: 66075

Re: WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu

Obrazek

Moze to bedzie ta wysokosc dojazdowa?
Dopiero jutro sprawdze.

Wróć do „WYŁĄCZNIE pomysły na poprawę działania i funkcjnalność softu”