GC_READ_LINE (173)


GC_READ_LINE (173)

ID                          173

 

 

Zastosowanie:

PLC

 

Grupa: MOTION

 

Opis skrótowy:

Funkcja odczytująca wybraną linię z pliku G-Kodów z Karty SD lub z pamięci RAM

 

Wejścia (5 sztuk):

nr

typ

impuls

oznaczenie

Uwagi

1

B

tak ( 0->1 )

Table

Zmiana z 0 na 1 – odczytanie danych z tabeli GCodeTable

2

I

-

Table_Line_No

Nr linii G-kodów jako indeks tabeli GCodeLineAddress, w której są wskaźniki do początków linii w tabeli GCodeTable

3

B

tak ( 0->1 )

OperTable

Zmiana z 0 na 1 – odczytanie danych z tabeli GCodeOperTable

4

I

-

Oper_Line_No

Nr linii G-kodów jako indeks tabeli GCodeOperLineAddress, w której są wskaźniki do początków linii w tabeli GCodeOperTable

5

I

-

Oper_No

Numer pliku operacji

 

Wyjścia (3 sztuki) :

nr

typ

impuls

oznaczenie

Uwagi

1

B

tak ( 0->1->0 )

Done

Sygnalizacja odczytania linii włączana na jeden cykl programu

2

B

nie

Error

Sygnalizacja błędu

3

I

-

Error_ID

 

 

Err_id

Opis

0 Brak błędu
1 nieznany błąd
2 -
3 pliki na karcie sd są niepoprawne
4 brak plików z gkodami
5 błąd odczytu plików z karty SD
6 -
7 -
8 -
9 zadana linia jest nieprawidłowa
10 zadany gkod jest nieprawidłowy
11 nieprawidłowy numer tablicy operacyjnej

 

 

 

Działanie funkcji:

Po zmianie sygnału na jednym z wejść (Table lub OperTable) funkcja rozpoczyna pobieranie danych z odpowiedniej tabeli (GCodeTable lub GCodeOperTable1 do GCodeOperTable10) w zależności od aktywowanego wejścia. Odczytywana jest linia o numerze wskazanym przez odpowiednie wejście. Wartości z wejść Table_Line_No i Oper_Line_No są indeksami do tabel (GCodeLineAddress lub GCodeOperLineAddress), w których znajdują się adresy kolejnych linii G-kodów. Na wejścia Table_Line_No i Oper_Line_No należy podac numer linii G-kodów plików źródłowych, czyli zazwyczaj po każdym wykonanym G-kodzie numer ten zwiększa się o 1. Numeracja  linii zaczyna się od zera.

informacja o poprzednio wykonywanym typie G-kodu jest przekazywana do odpowiednich rejestrów wg tabeli poniżej [SB: dodano 2017-09-25]

 

rejestr źródłowy rejestr docelowy
R3071 ( _G_Code_G) R3098 (_Last_G)
R3091 ( _G_Code_MG) R3099 (_Last_MG)

 

 

 

 

Dane odczytane z G-kodów są wstawiane do odpowiednich rejestrów specjalnych (podpunkt 4.6.5 - wstawić link). Użytkownik nie ma bezpośredniego dostępu do tabel GCodeTable, GCodeLineAddress,  GCodeOperTable oraz GCodeOperLineAddress. W jednym cyklu pobierana jest jedna linia pliku źródłowego, czyli pobierane są G-kody do momentu natrafienia na kod 13 (przejście do kolejnej linii).

Jeżeli M1008=1 to: Funkcja sprawdza także kolejny G-kod i jeżeli jest to G-kod G1 (ruch typu VECTOR), G2 (ruch po okręgu zgodnie z kierunkiem ruchu wskazówek zegara) lub G3 (ruch po okręgu przeciwnie do kierunku ruchu wskazówek zegara) to przekazuje dane kolejnego ruchu do odpowiednich rejestrów wg tabeli poniżej: [SB: dodano 2017-09-25]

rejestr zapisywany Wstawiane do rejestrów dla G-kodu
R3092 (_G_Code_Next_X) G1, G2, G3
R3093 (_G_Code_Next_Y) G1, G2, G3
R3094 (_G_Code_Next_Z) G1, G2, G3
R3095 (_G_Code_Next_I) G2, G3
R3096 (_G_Code_Next_J) G2, G3
R3097 (_Next_G) G1, G2, G3

 

 

 

 

 

 

Należy zadbać o to, aby sygnały aktywności na wejściach binarnych nie pojawiły się jednocześnie w jednym cyklu programu.

Po odczytaniu linii G-kodu załączany jest sygnał na wyjściu Done na jeden cykl programu sterownika.

 

Używane rejestry R i znaczniki M:

Numer

nazwa

opis

R-read, W-write

R3065

_G_Code_A

wartości pobrane z G-kodów

W

R3066

_G_Code_B

wartości pobrane z G-kodów

W

R3067

_G_Code_C

wartości pobrane z G-kodów

W

R3068

_G_Code_D

wartości pobrane z G-kodów

W

R3069

_G_Code_E

wartości pobrane z G-kodów

W

R3070

_G_Code_F

wartości pobrane z G-kodów

W

R3071

_G_Code_G

wartości pobrane z G-kodów

W

R3072

_G_Code_H

wartości pobrane z G-kodów

W

R3073

_G_Code_I

wartości pobrane z G-kodów

W

R3074

_G_Code_J

wartości pobrane z G-kodów

W

R3075

_G_Code_K

wartości pobrane z G-kodów

W

R3076

_G_Code_L

wartości pobrane z G-kodów

W

R3077

_G_Code_M

wartości pobrane z G-kodów

W

R3078

_G_Code_N

wartości pobrane z G-kodów

W

R3079

_G_Code_O

wartości pobrane z G-kodów

W

R3080

_G_Code_P

wartości pobrane z G-kodów

W

R3081

_G_Code_Q

wartości pobrane z G-kodów

W

R3082

_G_Code_R

wartości pobrane z G-kodów

W

R3083

_G_Code_S

wartości pobrane z G-kodów

W

R3084

_G_Code_T

wartości pobrane z G-kodów

W

R3085

_G_Code_U

wartości pobrane z G-kodów

W

R3086

_G_Code_V

wartości pobrane z G-kodów

W

R3087

_G_Code_W

wartości pobrane z G-kodów

W

R3088

_G_Code_X

wartości pobrane z G-kodów

W

R3089

_G_Code_Y

wartości pobrane z G-kodów

W

R3090

_G_Code_Z

wartości pobrane z G-kodów

W

R3091

_G_Code_MG

1=G, 2=M

W

R3092 _G_Code_Next_X współrzędna X kolejnej pozycji w ruchu z G-kodów W
R3093 _G_Code_Next_Y współrzędna Y kolejnej pozycji w ruchu z G-kodów W
R3094 _G_Code_Next_Z współrzędna Z kolejnej pozycji w ruchu z G-kodów W
R3095 _G_Code_Next_I współrzędna I kolejnej pozycji w ruchu z G-kodów W
R3096 _G_Code_Next_J współrzędna J kolejnej pozycji w ruchu z G-kodów W
R3097 _Next_G oznaczenie kolejengo G-kodu, jeżeli jest to ruch typu G1, G2 lub G3. W przeciwnym wypadku R3097=0 W
R3098 _Last_G zmienna zapamiętująca wartość ostatniego G-kodu G, modyfikowana z bloku GC_READ_LINE, R3098=1 gdy G1, R3098=2 gdy G2, R3098=3 gdy G3, R3098=0 dla innych wartości G lub M W
R3099 _Last_MG zmienna zapamiętująca czy ostatni G-kod to M czy G, modyfikowana z bloku GC_READ_LINE W

M1005

_YZ_circle

Płaszczyzna wykonywania okręgu YZ

W

M1006

_XZ_circle

Płaszczyzna wykonywania okręgu XZ

W

M1007

_XY_circle

Płaszczyzna wykonywania okręgu XY

W

M1008 _Smooth_Mode 1 – załączanie wygładzania trajektorii ruchu, 0 – wylączenie wygładzania trajektorii W
       

 

Uwagai. 

 

 

 

 

zmiany:

 

SB, 2017-09-16: usunąłem wejścia sterujące odczytywaniem danych z tabeli po optymalizacji. tabela ta została zlikwidowana.

SB, 2017-09-24: dodałem R3092, R3093, R3094 i M1009 do funkcjonalności bloku

BB, 2017-09-24: dodałem opisy błędów