Strona 1 z 1
tworzenie plików tekstowych w sinumeriku 840D
: 14 maja 2013, 21:41
autor: mens26
Witam
Wie może ktoś jak zrobić żeby w trakcje obróbki zapisywał się plik tekstowy z datą godziną korektami "R" które były użyty w danym programie CNC
: 16 maja 2013, 04:13
autor: djronin
Kiedys pisałem programik na Sinumerik 810d do pomiarów i do zapisywania wyników
prosze to ten drugi:
;
DEF INT ERROR
DEF BOOL PLIKRAP
DEF STRING[8] DATAPOM
DEF STRING[8] GODZPOM
DEF STRING[32] PLIK
DEF STRING[32] NRPART
DEF STRING[32] NAME
NAME="FLANSCH"
NRPART="0123456"
PLIK="RAPORT_POMIARU_MPF"
PLIKRAP=ISFILE(PLIK)
IF (PLIKRAP==TRUE)
R20=R20+1
ELSE
R20=1
WRITE(ERROR,PLIK,"**********************")
WRITE(ERROR,PLIK,"****RAPORT POMIARU****")
WRITE(ERROR,PLIK,"**********************")
WRITE(ERROR,PLIK,"MASZYNA: DMC 1035V eco")
WRITE(ERROR,PLIK,"MODEL SONDY 3D: Renishaw OMP40-2")
WRITE(ERROR,PLIK,"NAZWA CZĘŚCI: "<<NAME)
WRITE(ERROR,PLIK,"NUMER CZĘŚCI: "<<NRPART)
WRITE(ERROR,PLIK,"OPERATOR: ARTUR P.")
WRITE(ERROR,PLIK,"")
WRITE(ERROR,PLIK,"===============================")
WRITE(ERROR,PLIK,"")
ENDIF
WRITE(ERROR,PLIK,"NUMER POMIARU: "<<R20)
WRITE(ERROR,PLIK,"DATA POMIARU: "<<$A_DAY<<"."<<$A_MONTH<<"."<<$A_YEAR+2000)
WRITE(ERROR,PLIK,"GODZINA POMIARU: "<<$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND)
WRITE(ERROR,PLIK,"CZAS WYKONANIA POMIARU: "<<R22<<":"<<R21)
WRITE(ERROR,PLIK,"ZADANA WIELKOŚĆ POMIARU: "<<R30<<"mm")
WRITE(ERROR,PLIK,"WYNIK POMIARU: "<<R11)
WRITE(ERROR,PLIK,"")
WRITE(ERROR,PLIK,"===============================")
WRITE(ERROR,PLIK,"")
RET
Jeśli zapisujesz korekty w parametrach R możesz dodać instrukcje warunkową która będzie sprawdzać czy dany r się zmienił jeśli prawda to program można przerobić tak aby zapisywał te zmiany uwzględniając date czas i wartość korekcji
;R13 - KOREKTA ŚREDNICY T10
;R53 - STARA KOREKRA ŚREDNICY T10
;R14 - KOREKTA ŚREDNICY T11
;R54 - STARA KOREKRA ŚREDNICY T11
;R15 - KOREKTA ŚREDNICY T12
;R55 - STARA KOREKRA ŚREDNICY T12
IF (R13 <> R53) OR (R14 <> R54) OR (R15 <> R55)
R53=R13
R54=R14
R55=R15
WRITE...
WRITE...
WRITE...
WRITE...
WRITE...
WRITE...
WRITE...
WRITE...
ENDIF
RET
: 16 maja 2013, 21:47
autor: mens26
tworzy plik wszystko oki tylko pod koniec wyskakuje błąd: "kanał 1 blok funkcja niedopuszczalna, indeks:1" i 2 rzecz zapisuje tylko do wielkosci pliku ~1020bitów
: 17 maja 2013, 11:39
autor: djronin
Uruchom program w trybie SBL (krok po kroku) i napisz na jakiej linijce wywala błąd.
co do wielkosci pliku to nie wiem co może być przyczyną może ten błąd..?
ja mam pliki po 15KB z "raportu"
: 18 maja 2013, 12:49
autor: djronin
mens26 pisze:zapisuje tylko do wielkosci pliku ~1020bitów
Maksymalna wielkość pliku (→ producent maszyny!)
Maksymalnie możliwa wielkość plików protokołowych jest ustawiana w danej
maszynowej:
MD11420 $MN_LEN_PROTOCOL_FILE
Maksymalna wielkość pliku obowiązuje dla wszystkich plików, które zostaną utworzone
przy pomocy polecenia WRITE. Przy przekroczeniu jest wyprowadzany komunikat błędu i
blok wzgl. dane nie są zapisywane. O ile pamięć jest wystarczająca, można utworzyć
nowy plik.
To wycinek z podręcznika programowania s.131 Zachęcam do lektury.
PGA 0310 PL
mens26 pisze:~1020bitów
Zapewne chodziło Ci o Bajty nie bity 1Bajt to słowo składające się z 8bitów.
na przykładzie który Ci podałem program uruchomiony pierwszy raz powinien zapisać ok 430znaków co odpowiada rozmiarowi pliku równym 430bajtów kolejne przejście programu dopisuje 189 znaków a więc tym sposobem po 4 raportach masz błąd zapisu.
Sprawdziłem w maszynie na której pracuje wartość danej maszynowej a więc u mnie:
$MN_LEN_PROTOCOL_FILE=100
Pisałem już, ze pliki u mnie ważyło ok 15kB więc jednostka wprowadzanej wartości to (tak mi się wydaje) kB. sprawdz u siebie jeśli się nie myle to jest to 1.
: 21 maja 2013, 21:01
autor: mens26
Zmieniłem MD11420 na 100 i śmiga jak złoto
Pozdrawiam