U okviru ovih naredbi bar jedan od operanada je datoteka u kojoj se nalazi niz podataka. Pri tome se dozvoljava rad samo sa onim datotekama čiji elementi su dužine jedne reči. Adrese pojedinih podataka određuju se pomoću bazne adrese koja se definiše u naredbi i pointera koji predstavlja upravljački paramater, čija se vrednost menja u toku ponovljenih izvršavanja naredbe. Pri tome se adresa operanda dobija kao zbir bazne adrese i vrednosti pointera. U naredbama se definiše početna vrednost pointera kao i ukupna dužina niza.

 Ako neka aplikacija zahteva da se sekvencijalna obrada izvrši nad podacima koji su duži od 16 bitova, onda se ti podaci moraju podeliti na više datoteka. Tada se u svakom rangu na izlazu kao naredbe akcije mogu paralelno staviti više istih naredbi kojima se adresiraju sve definisane datoteke.

 Svakoj datoteci koja se specificira u okviru neke sekvencijalne naredbe pridružuje se po jedan elemenat upravljačke datoteke R. U okviru ovog elementa pamte se indikatorski bitovi, kao i vrednost pointera i dužina same datoteke. O formatu jednog elementa ove datoteke biće kasnije više reči.

 Potrebno je da se naglasi da se ove naredbe ne izvode uvek na isti način. Naime, samo kada se uslov u rangu menja sa neistinit na istinit menja se vrednost pointera i on ukazuje na drugi podatak. Međutim, ako uslov posle toga ostane i dalje istinit, pointer ne menja vrednost već se naredba izvršava sa podatkom koji je uzet pri poslednjoj promeni pointera.

SQL – Sequencer Load (sekvencijalno punjenje datoteke)

Slika br.1 SQL naredba, grafički simbol i položaj u rangu

 Svaki put kada se uslov menja sa neistinit na instinit, ova naredba se izvršava tako što se vrednost pointera poveća za 1 i podatak koji je određen kao source prenese u datoteku file na onu adresu na koju pokazuje pointer. Na taj način se pri svakom sledećem izvršavanju naredbe menja sadržaj sledeće reči u nizu. Ukoliko se kao source adresa navede konstanta onda se ceo niz postavlja na istu vrednost. Ako je source adresa promenljiva (fn:s), onda svaka reč niza dobija vrednost koju promenljiva ima u trenutku izvođenja naredbe. Međutim, ako se kao source adresa navede datoteka (#fn:s), onda se ta adresa uzima kao bazna adresa izvorne datoteke, što znači da se pri izvođenju naredbe podatak uzima sa one adrese na koju u izvornoj datoteci pokazuje pointer.

 Pri tome se podrazumeva da obe datoteke imaju istu dužinu, definisanu kao length. Pri sledećim sken ciklusima, za svo vreme za koje uslov ostaje istinit, vrednost pointera se ne menja, već se isti, prethodno određeni, podatak prenosi u promenljivu označenu sa dest.

SQO – Sequencer output (sekvencijalno upravljanje)

Slika br.2 SQO naredba, grafički simbol i položaj u rangu

 Svaki put kada se uslov menja sa neistinit na instinit, ova naredba se izvršava tako što se vrednost pointera (position) poveća za 1 i uzme ona reč iz datoteke file (#fn:w) na koju pokazuje pointer. Ta reč se filtrira kroz masku mask i rezultat filtracije se prenosi u promenljivu označenu sa dest. Ako je kao dest navedena datoteka #fn:d onda će se rezultat upisati u onu reč te datoteke na koju pokazuje pointer (Slika br.3). Isto tako, ako je kao mask navedena datoteka #fn:m onda i maska prestaje da bude fiksna, već se svaki put kao maska uzima ona reč iz datoteke na koju pokazuje pointer. Potrebno je zapaziti da se u reči koja označena sa dest menjaju samo oni bitovi koji su nemaskirani (odgovorajući bitovi maske su postavljeni na 1).

 Pri sledećim sken ciklusima, za svo vreme za koje uslov ostaje istinit, vrednost pointera se ne menja, već se isti, prethodno određeni, podatak prenosi u promenljivu označenu sa dest.

Slika br.3 Ilustracija izvršavanja SQO naredbe

SQC – Sequencer compare (sekvencijalno poređenje)

Slika br.4 SQC naredba, grafički simbol i položaj u rangu

 Svaki put kada se uslov menja sa neistinit na instinit, SQC naredba se izvršava tako što se vrednost pointera (position) poveća za 1 i uzme ona reč iz datoteke #fn:w na koju pokazuje pointer. Ta reč se poredi sa filtriranim podatkom koji sadrži promenljiva označena kao source i rezultat poređenja se upisuje u odgovarajući indikatorski bit. Filtracija podatka vrši se pomoću maske mask i to tako da u poređenju učestvuju samo oni bitovi kojima u maski odgovara vrednost bita 1 (nemaskirani bitovi). Ako je kao source navedena datoteka #fn:s onda će se podaci koji učestvuju u poređenju uzimati iz one reči te datoteke na koju pokazuje pointer (Slika br.5). Isto tako, ako je kao mask navedena datoteka #fn:m onda i maska prestaje da bude fiksna, već se svaki put kao maska uzima ona reč iz datoteke na koju pokazuje pointer.

 Pri sledećim sken ciklusima, za svo vreme za koje uslov ostaje istinit, vrednost pointera se ne menja, već se isti, prethodno određeni, podatak (source) uzima kao podatak za poređenje.

Slika br. 5 Ilustracija izvršavanja SQC naredbe.

Datoteka R – Control

 Naredbama za sekvenciranje pridružuju se indikatorski bitovi i upravljački parametri. Ove informacije se smeštaju u upravljačku datoteku tipa R. Pri tome se može koristiti sistemska upravljačka datoteka broj 6, ili korisnička datoteka (brojevi od 9 do 255). Jedan elemenat ove datoteke, koji se odnosi na SQO i SQC naredbu ima izgled kao na Slika br.6.

Slika br.6 Elemenat upravljačke datoteke za SQO i SQC naredbu.

 Bitovi stanja u elementu datoteke R menjaju se na sledeći način:

  • EN – Enable bit se postavlja na 1 kada uslov prelazi sa neistinit na istinit. Postavljanje ovog bita prouzrokuje da se izvrši naredba i vrednost pointera poveća za 1. Pri svakom sledećem prolazu kroz ovaj rang, sve dok je uslov istinit, EN bit ozadržava vrednost 1, ali se vrednost pointera ne menja, već se naredba izvršava sa istom vrednošću pointera. Kada uslov postane neistinit, EN – bit se resetuje na 0.
  • DN – Done bit se postavlja na 1 kada vrednost pointera, posle niza izvođenja SQL, SQO ili SQC naredbe, dođe do kraja niza u zadanoj datoteci. Ovaj bit će biti resetovan na 0 tek u onom sken ciklusu u kome uslov, pošto je prethodno postao neistinit, ponovo postaje istinit (kada se EN-bit ponovo postavi na 1).
  • ER – Error bit se postavlja na 1 kada se u programu detektuje negativna vrednost pointera, ili negativna ili nulta vrednost dužine niza. Ako se ovaj bit ne resetuje pre kraja sken ciklusa nastaće značajna greška.
  • FD – Found bit se postavlja na 1 ako je rezultat poređenja u SQC naredbi istinit. Drugim rečima ovaj bit ukazuje na to da su nemaskirani bitovi podataka jednaki odgovarajućim bitovima u datoteci referentnih vrednosti.

Length i position

Promenljive length se pamti u prvoj reči datoteke R i predstavlja broj reči koji se nalazi u nizu u jednoj sekvencijalnoj datoteci. Maksimalna vrednost dužine je 255. Pri definisanju dužine, potrebno je voditi računa o činjenici da navedena adresa reči w u datoteci #fn:w zapravo predstavlja nultu, početnu poziciju. To znači da se za datu dužinu l u datoteci koristi zapravo l+1 reč. Ovo se naravno odnosi i na mask, source i dest ukoliko su u naredbi specificirane kao datoteke.

 Vrednost pointera, označena kao position, pamti se u drugoj reči datoteke R. Početna vrednost pointera se definiše pri specifikaciji naredbe. Vrednost pointera se kreće od 1 do l i ukazuje na reči u datoteci od fn:(w+1) do fn:(w+l+1). Kada pointer stigne do poslednje reči u datoteci, postavlja se DN-bit na 1 i pri tome se u prvom sledećem sken ciklusu u kome uslov ima prelaz sa neistinit na istinitinit (isiti ciklus u kome se resetuje DN-bit) vrednost pointera automatski vraća na 1. Pri definiciji početne vrednosti pointera potrebno je obratiti pažnju na činjenicu da se ona poveća za 1 pre prvog izvođenja naredbe.

 Ako se kao početna vrednost pointera definiše 0, onda će pri izvođenju SQC naredbe obrada početi od reči u datoteci čija je adresa fn:(w+1). Međutim kod SQO naredbe način izvođenja operacije zavisi od istinitosti uslova u prvom sken ciklusu. Ako je uslov istinit naredba se izvršava počev od nulte reči, čija je adresa fn:(w+0). Međutim, ako je uslov neistinit, izvršavanje naredbe se odlaže sve dok uslov ne postane istinit i tada se uzima prva reč, čija je adresa.

 Konačno, važno je da se istakne da se prilikom eventualne programske promene dužine i pozicije mora voditi računa da se ne prekorači veličina definisanog niza u datoteci.

Resetovanje parametara

 Ukoliko se iz nekog razloga želi prekinuti sekvencijalno upravljanje ili poređenje, to se može ostvariti pomoću RES naredbe u kojoj se navodi adresa nulte reči elementa datoteke R koji je vezan za naredbu čiji se rad želi resetovati Rn:e. RES naredbom se vrednosti svih indikatorskih bitova, izuzev FD-bita, postavljaju na 0. Istovremeno se i vrednost pointera postavlja na 0 (ova vrednost će se povećati na 1 pre prvog sledećeg izvođenja naredbe).

Slika br. 7 RES naredba, grafički simbolj i položaj u rangu

Leder programiranje:

  • Uvod u Leder programiranje možete pronaći OVDE.
  • Leder programiranje – Bit naredbe možete pronaći OVDE.
  • Leder programiranje – Kontakti možete pronaći OVDE.
  • Leder programiranje – START/STOP kolo možete pronaći OVDE.
  • Leder programiranje – Realizaciju časovnik možete prinaći OVDE.
  • Leder programiranje – Realizaciju brojača možete pronaći OVDE.
  • Leder programiranje – Sekvencijalno upravljanje možete pronaći OVDE.

Napomena: Tekst je preuzet iz materijala  za predmet PROCESNI RAČUNARI, na ETF, Univerziteta u Beogradu. Iz originalnog teksta su izostavljene pojedine slike, a dalja objašnjenja pojmova korišćenih u ovom uvodnom tekstu možete naći u pomenutim materijalima.

POSTAVI ODGOVOR

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.