A Weboldalunkat
bármilyen HTML-szerkesztõvel elkészíthetjük,
akár a hagyományos Microsoft FrontPage vagy a Dreamweaver
MX használatával.
Aki most lát neki az elsõ weboldalának
megszerkesztéséhez, annak az utóbbi programot
javaslom. A Dreamweaver MX a Macromedia Dreamweaver, a díjmentes
HTML-szerkesztõ és webalkalmazás-fejlesztõ eszköz
legújabb változata. A Dreamweaver használatával
rögtön láthatjuk a tervezés alatt álló weboldalt, és
bármilyen mûködésre könnyedén
rá is
bírhatjuk. A weboldalak HTML nyelven íródnak,
de rengeteg dolgot megtehetünk anélkül, hogy egyetlen
sornyi HTML-t is látnunk kellene. A Dreamweaver egy „azt
kapod, amit látsz” típusú weboldal-szerkesztõ,
mely nagyon hatékony, ugyanakkor egyszerûen használható.
Az általános HTML nyelvbe, a FESTO PLC programozási
nyelvben használt hivatkozásokat, utasításokat
bele kell csempészni valahogyan, azért hogy a PLC és
a weboldal, egymás számára érthetõ nyelven
tudjon kommunikálni. Sajnos nem állt rendelkezésre
olyan forrás, amelyben ez részletesen le lett volna írva.
Egy létezõ demo verziójú FESTO weboldal kielemzése,
valamint a PLC utasításlistás kódelemeinek
megismerése után, sikerült olyan HTML-ben megírt
weboldalt szerkeszteni, amellyel különféle folyamatok
vezérelhetõk, felügyelhetõk. A szervopneumatikus
palettázó berendezés
mûködtetését megvalósító weboldalak
bemutatása közben könnyen megérthetõk ezen
utasítások.
A legfontosabb, hogy a PLC-n lévõ FTP szerver B könyvtárába
(ahol a PLC mûködéséért felelõs megírt
program is tárolódik) egy web elnevezésû alkönyvtárt
(27. ábra) hozzunk létre.

27. ábra PLC FTP szerver B könyvtára
A
beágyazott webszerver ebbõl a könyvtárból
(28. ábra) fog dolgozni, itt találja meg a felhasználó által
kért oldalakat és az oldalhoz tartozó elemeket
(képek, animációk, videók…). Ebbe
a könyvtárban kell elhelyezni a JavaScipt számára értelmezhetõ
fst.js fájlt is. Oda kell figyelnünk még
arra is, hogy amit fõoldalként nyit meg böngészõnk,
amikor elérjük a PLC Web-szerverét, annak main.htm
nevûnek kell lennie, különben „A lap nem jeleníthetõ
meg” hibaüzenetet kapunk. A további oldalakat, amikre
a fõoldalból jutunk, már tetszés szerint nevezhetjük
el.

28. ábra WEB könyvtár
A
fõoldal (29. ábra, main.htm) HTML szerkezete
a html segédletben látható. Dreamweaver
programot használva, annyi elõnyünk van, hogy ezekbõl
a HTML- kódokból
egy darabot sem kell beírnunk, mindezt megteszi helyettünk
a szerkesztõ program, csak a szükséges elemeket
kell behúznunk
a szerkesztõ felületbe.

29. ábra main.htm oldal
A
main.htm oldal (29. ábra) mûködését
tekintve két fõ feladata van. A teszt oldal elõhívása és
a web kamera képének megjelenítése. A web
kamera oldalának elõhívása egy nyomógomb
lenyomására hajtódik végre, HTML kódja
(html segédlet) a 22. sorban olvasható. Funkcióját
tekintve egy új
böngészõ ablakban a http://152.66.24.253/home.htm címen
regisztrált web kamera honlapját jeleníti meg,
melyen keresztül figyelhetjük a palettázó berendezés
mûködését. Megjelenik egy elõugró üzenet
is, mely közli a látogató számára
a web kamera oldalának hozzáférési kódjait.
A palettázó berendezés képén a start
gomb fölé mozgatva a kurzort START felirat jelenik meg,
rákattintva a test.htm oldalra jutunk el, ezt a 27. sor írja
le.
A fejlécben (2.- 13. HTML kódsor) a honlap nevének
megadása történt, és a JavaScript számára
meghatározásra kerül a használni kívánt
script.
A következõ
megszerkesztett oldal a test.htm oldal, mely oldalra a fõoldalról az imént olvasott módon juthatunk
el. A teljes HTML felépítés helyett, inkább
a vezérlés és visszajelzés számára
lényeges dolgokat emelném ki az oldal bemutatása
során.
A PLC mûködését tekintve, ha valaki a honlapot felkeresve
az ott lévõ nyomógombokat benyomja, a palettázó berendezést
semmilyen mûvelet végrehajtására nem tudja rávenni,
míg az „Üzemen kívül” felirat olvasható a
HTML oldalon (30. ábra). Valójában ez a funkció egy
visszajelzést szolgál, információt ad,
hogy a berendezés mûködtethetõ-e, vagy sem.
Az interneten keresztüli vezérlés engedélyezése,
indítása a palettázó berendezés
mellett elhelyezett reteszelhetõ nyomógomb benyomásával érhetõ
el. A nyomógomb benyomásával egy memória
szó (FW2) értékét állítjuk
be. A különbözõ értékekhez üzeneteket
rendelünk a HTML oldalon. A kiolvasás egy rendelkezésünkre álló FESTO-s
oldalakat kezelõ JavaScript használatával történik,
ami egy HTML fájlokba tervezett objektumorientált nyelv.
Alapjai a C és C++ nyelvek, így ezekre sokban hasonlít.
Tulajdonképpen a JavaScript a weboldal motorja. Elõször
is be kell olvastatni a JavaScript által felhasznált
fst.js script-et. Ezt az eljárást már a weboldal
fejlécében meg kell valósítanunk:
<script language="JavaScript" src="fst.js">
</script>
A visszajelzés HTML-kódja:
<
script language="JavaScript">
switch ( <FSTCI dmw2> )
{ case 0: document.write("Üzemen kívül");
break;
case 1: document.write("Üzem alatt");
break;
default: document.write("Kapcsolódás");
break;
}
</script>
,azaz
a FESTO FEC PLC belsõ regiszterébõl kiolvassa
a 2-es memória szó aktuális értékét.
0-ra „Üzemen kívül”, 1-re pedig „Üzem
alatt” feliratot (31. ábra) ír ki, amit mi definiáltunk
elõzõleg. Köztes állapot esetén, amikor nem érkezik
válasz a PLC felõl (pl.: a hálózat megterhelt,
lassú) „Kapcsolódás” felirat olvasható.
A PLC programozásban a szavak kezelésére az FW
megjelölés használatos, a hivatkozásban mégis
MW jelölést láthatunk (<FSTCI
dmw2>).
Az eltérés
abból adódhat, hogy a PLC Flag angol kifejezést
használja, a Web-es alkalmazás, pedig a Merker német
kifejezést.
A folyamatos adatkiolvasást az oldal állandó frissítésével érjük
el. A HTML szerkezetében közvetlenül a fejrészbe
tehetjük frissítõ parancsunkat, meghatározva a frissítés
gyakoriságát [sec]:
<meta
http-equiv="Refresh" content="3;url=test.htm">
30. ábra test.htm
Ugyanilyen adatkiolvasási eljárással jelenítõdik
meg az egyes tengelyek lépés számlálóinak értékei.
CW0 és CW1 értékét direktbe is kiírathatjuk
a webes felületen, vagy értékeihez üzeneteket
köthetünk, mint az üzemállapot megjelenítésénél.
Jelen esetben nem a konkrét értékek kerültek
kijelzésre. Ennek oka az volt, hogy a számláló a
felsõ határnál tovább számlált a
nyomógombok megnyomásakor, a berendezés viszont
(a helyes mûködésnek megfelelõen) a paletta határán
továbblépés nélkül mozdulatlanul állt.
A továbbszámlálás figyelmen kívül
hagyásaként, hamis lépésadatok esetén „Véghelyzet” felirat
kerül kijelzésére.
A HTML parancs: <FSTCI
dzw0> és <FSTCI dzw1> a CW0
(X koordináta) és CW1 (Y koordináta) értékeinek
kiolvastatására. Szintén szintaktikai eltérés
mutatkozik a PLC programozásában ismert kód és
a HTML-es kód között a számláló használatára.
A PLC Counter angol kifejezést használja, a Web-es alkalmazás,
pedig a Zähler német kifejezést.

31. ábra test.htm üzem közben
Az egyes tengelyeken
történõ lépéseket számláló regiszterek értékeinek
kiolvastatása az alábbiak szerint történik.
A PLC programban az X tengelyhez a CW0 számláló lett
rendelve, ennek megfelelõen:
< script
language="JavaScript">
switch ( <FSTCI
dzw0> )
{ case -1: document.write("-1");
break;
case 0: document.write("0");
break;
case 1: document.write("1");
break;
case 2: document.write("2");
break;
case 3: document.write("3");
break;
case 4: document.write("4");
break;
case 5: document.write("5");
break;
default: document.write("Véghelyzet");
break; }
</script>
Látható egy negatív érték is, mert
az X tengelyen a nullponthoz képest egyet léphetünk
negatív irányban is a palettán. Az Y tengelyhez,
pedig a CW1 számláló lett rendelve, így:
< script language="JavaScript">
switch ( <FSTCI
dzw1> )
{ case 0: document.write("0");
break;
case 1: document.write("1");
break;
case 2: document.write("2");
break;
case 3: document.write("3");
break;
case 4: document.write("4");
break;
case 5: document.write("5");
break;
case 6: document.write("6"); break;
default: document.write("Véghelyzet");
break; }
</script>
A rendszerfelügyelet így tehát megoldott, a vezérlést
pedig, a nyomógombok akció funkciójának
felhasználásával valósíthatjuk meg.
Ezen funkcióval, rákattintás hatására
a JavaScript lefordít a PLC számára –az
fst.js scriptnek megfelelõen- értelmezhetõ nyelvre egy
belsõmemória
címzést és annak egy beírtatni kívánt értéket.
A PLC programban minden egyes feladathoz tartozó bitkombinációt,
amit az SPC200 számára ad ki, az FW1 belsõ regiszter értékétõl
tettük függõvé.
Következõ FW1 értékek kerülnek elküldésre:
•
0, akkor a PLC P5 programja fog mûködni, az SPC200 nullpontfelvétel
hajt végre.
<
input name="button" type="button" onClick="CISend('MW1',
'0')" value="Nullpont felvétel">
A HTML nyelvben
a gomb pozícióját és feliratát
definiálva, az akció meghatározása történik.
Rákattintás
hatására az FW1 memória szót
0 decimális értékûre írja át a PLC memóriájában.
A 0 decimális érték beírás hatására
a PLC belsõ memóriájának 1-s szó összes bitjének értéke
0 lesz (21. táblázat).

21.
táblázat FW1=0 esetén a PLC belsõ regisztereinek értéke
• 1, akkor
a P1 program fog mûködni az SPC200, X tengely
menti pozícionálást hajt végre.
<
input name="button1" type="button" onClick="CISend('MW1',
'1')" value=" + ">
Rákattintás hatására az FW1 memória
szót 1 decimális értékure írja át
a PLC memóriájában.
Az 1 decimális érték beírás hatására
a PLC belsõ memóriájának 1-s szavának 0-s
bitjének értéke 1 lesz (22. táblázat).

22.
táblázat FW1=1 esetén a PLC belsõ regisztereinek értéke
• 2, P2 program
fog mûködni, az SPC200 Y tengely menti
pozícionálást hajt végre.
<
input name="button2" type="button" onClick="CISend('MW1',
'2')" value=" + ">
•
3, P1 programból a negatív irányú pozícionálás
bitkombinációja kerül elküldésre.
< input name="button11" type="button" onClick="CISend('MW1',
'3')" value=" - ">
•
4, P2 programból a negatív irányú pozícionálás
bitkombinációja kerül elküldésre.
< input name="button21" type="button" onClick="CISend('MW1',
'4')" value=" - ">
•
5, P3 programból a megfogót záró bitkombináció állítódik
be.
< input name="button3" type="button" onClick="CISend('MW1',
'5')" value="ZÁR">
•
7, P3 programból a megfogót nyitó bitkombináció állítódik
be.
< input name="button31" type="button" onClick="CISend('MW1',
'7')" value="NYIT">
•
9, P4 programból a Z tengelyt
felsõ pozícióba
küldõ bitkombináció állítódik
be.
< input name="button4" type="button" onClick="CISend('MW1',
'9')" value="FEL">
• 11, P4-bõl
a Z tengelyt alsó pozícióba
küldõ bitkombináció állítódik
be.
< input name="button41" type="button" onClick="CISend('MW1',
'11')" value="LE">
•
13, P6 programból a megfogó elforgatásának
bitkombinációja válik aktívvá.
< input name="button5" type="button" onClick="CISend('MW1',
'13')" value="Megfogó alaphelyzetbe">
•
14, P7 program szerinti komplett ciklus hajtódik végre.
< input name="button6" type="button" onClick="CISend('MW1',
'14')" value="Alaphelyzetfelvétel">
Lap
tetejére