<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Funkcje P2P i GCL w modułach pomiarowych serii ADAM-6000</title>
<meta name="keywords" content="Moduły pomiarowe kontrolno-pomiarowe moduł pomiarowy kontrolno-pomiarowy ADAM USB I/O Advantech">
<meta name="description" content="Moduły pomiarowe kontrolno-pomiarowe moduł pomiarowy kontrolno-pomiarowy ADAM USB I/O Advantech">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta name="author" content="Jacek Bonecki - Elmark Automatyka Sp. z o.o. - http://www.elmark.com.pl">
<meta name="verify-v1" content="dFPC/7SMwqEjaoI9PbBxgMy61Tm7deLBY7wDvMEdY3E=">
<style type="text/css">
<!--
a:HOVER{TEXT-DECORATION:UNDERLINE;}
a {TEXT-DECORATION:none}
.vlrbt {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-BOTTOM-WIDTH:1px;BORDER-BOTTOM-STYLE:solid;BORDER-BOTTOM-COLOR:#C0C0C0;BORDER-RIGHT-WIDTH:1px;BORDER-RIGHT-STYLE:solid;BORDER-RIGHT-COLOR:#C0C0C0;BORDER-LEFT-WIDTH:1px;BORDER-LEFT-STYLE:solid;BORDER-LEFT-COLOR:#C0C0C0;BORDER-TOP-WIDTH:1px;BORDER-TOP-STYLE:solid;BORDER-TOP-COLOR:#C0C0C0;}
.vrbt {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-BOTTOM-WIDTH:1px;BORDER-BOTTOM-STYLE:solid;BORDER-BOTTOM-COLOR:#C0C0C0;BORDER-RIGHT-WIDTH:1px;BORDER-RIGHT-STYLE:solid;BORDER-RIGHT-COLOR:#C0C0C0;BORDER-TOP-WIDTH:1px;BORDER-TOP-STYLE:solid;BORDER-TOP-COLOR:#C0C0C0;}
.vlbt {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-BOTTOM-WIDTH:1px;BORDER-BOTTOM-STYLE:solid;BORDER-BOTTOM-COLOR:#C0C0C0;BORDER-LEFT-WIDTH:1px;BORDER-LEFT-STYLE:solid;BORDER-LEFT-COLOR:#C0C0C0;BORDER-TOP-WIDTH:1px;BORDER-TOP-STYLE:solid;BORDER-TOP-COLOR:#C0C0C0;}
.vlrt {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-TOP-WIDTH:1px;BORDER-TOP-STYLE:solid;BORDER-TOP-COLOR:#C0C0C0;BORDER-RIGHT-WIDTH:1px;BORDER-RIGHT-STYLE:solid;BORDER-RIGHT-COLOR:#C0C0C0;BORDER-LEFT-WIDTH:1px;BORDER-LEFT-STYLE:solid;BORDER-LEFT-COLOR:#C0C0C0;}
.vlrb {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-BOTTOM-WIDTH:1px;BORDER-BOTTOM-STYLE:solid;BORDER-BOTTOM-COLOR:#C0C0C0;BORDER-RIGHT-WIDTH:1px;BORDER-RIGHT-STYLE:solid;BORDER-RIGHT-COLOR:#C0C0C0;BORDER-LEFT-WIDTH:1px;BORDER-LEFT-STYLE:solid;BORDER-LEFT-COLOR:#C0C0C0;}
.vlr {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-RIGHT-WIDTH:1px;BORDER-RIGHT-STYLE:solid;BORDER-RIGHT-COLOR:#C0C0C0;BORDER-LEFT-WIDTH:1px;BORDER-LEFT-STYLE:solid;BORDER-LEFT-COLOR:#C0C0C0;}
.vbt {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-BOTTOM-WIDTH:1px;BORDER-BOTTOM-STYLE:solid;BORDER-BOTTOM-COLOR:#C0C0C0;BORDER-TOP-WIDTH:1px;BORDER-TOP-STYLE:solid;BORDER-TOP-COLOR:#C0C0C0;}
.vrb {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-BOTTOM-WIDTH:1px;BORDER-BOTTOM-STYLE:solid;BORDER-BOTTOM-COLOR:#C0C0C0;BORDER-RIGHT-WIDTH:1px;BORDER-RIGHT-STYLE:solid;BORDER-RIGHT-COLOR:#C0C0C0;}
.vrt {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-RIGHT-WIDTH:1px;BORDER-RIGHT-STYLE:solid;BORDER-RIGHT-COLOR:#C0C0C0;BORDER-TOP-WIDTH:1px;BORDER-TOP-STYLE:solid;BORDER-TOP-COLOR:#C0C0C0;}
.vlb {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-BOTTOM-WIDTH:1px;BORDER-BOTTOM-STYLE:solid;BORDER-BOTTOM-COLOR:#C0C0C0;BORDER-LEFT-WIDTH:1px;BORDER-LEFT-STYLE:solid;BORDER-LEFT-COLOR:#C0C0C0;}
.vlt {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-LEFT-WIDTH:1px;BORDER-LEFT-STYLE:solid;BORDER-LEFT-COLOR:#C0C0C0;BORDER-TOP-WIDTH:1px;BORDER-TOP-STYLE:solid;BORDER-TOP-COLOR:#C0C0C0;}
.vl {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-LEFT-WIDTH:1px;BORDER-LEFT-STYLE:solid;BORDER-LEFT-COLOR:#C0C0C0;}
.vr {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-RIGHT-WIDTH:1px;BORDER-RIGHT-STYLE:solid;BORDER-RIGHT-COLOR:#C0C0C0;}
.vb {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-BOTTOM-WIDTH:1px;BORDER-BOTTOM-STYLE:solid;BORDER-BOTTOM-COLOR:#C0C0C0;}
.vt {FONT-FAMILY:Tahoma;FONT-SIZE:10px;BORDER-TOP-WIDTH:1px;BORDER-TOP-STYLE:solid;BORDER-TOP-COLOR:#C0C0C0;}
.v {FONT-FAMILY:Tahoma;FONT-SIZE:10px;}
.myframe {FONT-FAMILY:Tahoma;FONT-SIZE:10px;PADDING-RIGHT:10px;PADDING-LEFT:10px;PADDING-BOTTOM:0px;PADDING-TOP:0px;}
.myframe SPAN.CTOP {MARGIN:0px -10px}
.myframe SPAN.CBOT {MARGIN:0px -10px}
SPAN.CTOP {DISPLAY:BLOCK;FONT-SIZE:1px;LINE-HEIGHT:1px;BACKGROUND-REPEAT:no-repeat;HEIGHT:5px}
SPAN.CBOT {DISPLAY:BLOCK;FONT-SIZE:1px;LINE-HEIGHT:1px;BACKGROUND-REPEAT:no-repeat;HEIGHT:5px}
SPAN.CTOP SPAN {DISPLAY:BLOCK;FONT-SIZE:1px;LINE-HEIGHT:1px;BACKGROUND-REPEAT:no-repeat;HEIGHT:5px}
SPAN.CBOT SPAN {DISPLAY:BLOCK;FONT-SIZE:1px;LINE-HEIGHT:1px;BACKGROUND-REPEAT:no-repeat;HEIGHT:5px}
SPAN.CTOP {BACKGROUND-POSITION:0px 0px;BACKGROUND-IMAGE:none;MARGIN:0px -5px}
SPAN.CTOP SPAN {BACKGROUND-POSITION:100% 0px;BACKGROUND-IMAGE:none}
SPAN.CBOT {CLEAR:both;BACKGROUND-POSITION:0px 100%;BACKGROUND-IMAGE:none;MARGIN:0px -5px}
SPAN.CBOT SPAN {BACKGROUND-POSITION:100% 100%;BACKGROUND-IMAGE:none}
SPAN.CTOP {BACKGROUND-IMAGE:URL(IMG/C1.PNG)}
SPAN.CTOP SPAN {BACKGROUND-IMAGE:URL(IMG/C2.PNG)}
SPAN.CBOT {BACKGROUND-IMAGE:URL(IMG/C3.PNG)}
SPAN.CBOT SPAN {BACKGROUND-IMAGE:URL(IMG/C4.PNG)}
-->
</style>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#000080" vlink="#000080" alink="#000080" leftmargin="10" topmargin="10">
<table align=center width=1000 bgcolor=#000080 cellpadding=0 cellspacing=0 border=0><tr><td align=left><a href=/><img src=img/top.jpg border=0 width=800 height=65></a></td></tr></table>
<table align=center width=1000 border=0 cellpadding=5 cellspacing=0 style="font-family:tahoma;font-size:10px;"><tr>
<td width=1 valign=top align=center class=vlrbt>
<a target=_blank href=http://www.elmark.com.pl/products/advantech/grupa.php?grupa=1><img src=img/elmark.gif width=200 height=66 border=0 alt="Elmark Automatyka Sp. z o.o."></a><br>
<img src=img/blank.gif width=200 height=5><table cellpadding=3 cellspacing=0 width=200 style="font-family:tahoma;font-size:10px;">
<tr><td bgcolor=#000080><b><font color=#FFFFFF>Menu...</font></b></td></tr>
</table>
<table cellpadding=3 cellspacing=0 width=200 class=vlrb>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=0>Strona główna</a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=1>O nas: Elmark Automatyka Sp. z o.o.</a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=http://www.elmark.com.pl/forum/ target=_blank>Nasze forum</a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=2>Inne/ciekawe strony www</a></td></tr>
</table>
<img src=img/blank.gif width=200 height=5><table cellpadding=3 cellspacing=0 width=200 style="font-family:tahoma;font-size:10px;">
<tr><td bgcolor=#000080><b><font color=#FFFFFF>Artykuły...</font></b></td></tr>
</table>
<table cellpadding=3 cellspacing=0 width=200 class=vlrb>
<tr><td bgcolor=#FFFF9F>P2P i GCL w serii ADAM-6000</td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=102>Seria EKI-122X - konwertery Modbus</a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=103>WIRE-CHIP, JAZZ i moduły ADAM</a></td></tr>
</table>
<img src=img/blank.gif width=200 height=5><table cellpadding=3 cellspacing=0 width=200 style="font-family:tahoma;font-size:10px;">
<tr><td bgcolor=#000080><b><font color=#FFFFFF>O czym warto wiedzieć...</font></b></td></tr>
</table>
<table cellpadding=3 cellspacing=0 width=200 class=vlrb>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=201>Protokół ADAM-ASCII</a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=202>Protokół Modbus</a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=203>Implementacja Modbus/RTU</a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=204>Implementacja Modbus/TCP</a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=205>Wyjścia przekaźnikowe</a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=206>Seria ADAM-6000 i język PHP</a></td></tr>
</table>
<img src=img/blank.gif width=200 height=5><table cellpadding=3 cellspacing=0 width=200 style="font-family:tahoma;font-size:10px;">
<tr><td bgcolor=#000080><b><font color=#FFFFFF>Najpopularniejsze modele...</font></b></td></tr>
</table>
<table cellpadding=3 cellspacing=0 width=200 class=vlrb>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=301>ADAM-4520<font color=#BBBBBB> Optoizolowany<br>konwerter RS-232/422/485</font></a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=302>ADAM-4017+<br><font color=#BBBBBB>Wejścia analogowe (RS-485)</font></a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=303>ADAM-4055<br><font color=#BBBBBB>We/wy cyfrowe (RS-485)</font></a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=304>ADAM-5000/TCP<br><font color=#BBBBBB>Kaseta Modbus/TCP</font></a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=305>ADAM-6017<br><font color=#BBBBBB>Wejścia analogowe</font></a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=306>ADAM-6060<br><font color=#BBBBBB>We/wy cyfrowe (przekaźnikowe)</font></a></td></tr>
<tr><td bgcolor=#F4F4F4 onmouseover="this.style.backgroundColor='#CADCEB'" onmouseout="this.style.backgroundColor='#F4F4F4'"><a href=307>USB-4711A<font color=#BBBBBB> Uniwersalny<br>moduł pomiarowy AI/AO/DI/DO</font></a></td></tr>
</table>
</td>
<td valign=top align=center class=vrbt>
<table width=100% cellpadding=20 cellspacing=0 border=0 style="font-family:tahoma;font-size:12px;">
  <tr> 
    <td> 
	
	<div class="myframe" style="FONT-SIZE:14px;BACKGROUND-COLOR:#EBF3F8;COLOR:#000080;">
	<span class="ctop"><span></span></span>
	<b>P2P i GCL w serii ADAM-6000</b><br>Czyli coś więcej niż tylko zdalne moduły I/O...
	<span class="cbot"><span></span></span>
	</div>

        <br>
        <p align=justify><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADAM-6000 to seria oferowanych przez firmę Advantech modułów I/O przystosowanych 
        do budowy rozproszonych systemów automatyki i pomiarów. Ich dotychczasowa 
        funkcjonalność, polegająca jedynie na udostępnianiu wejść/wyjść urządzeniom 
        master w sieci Modbus/TCP, została w ostatnim czasie znacznie rozszerzona. 
        Wprowadzona implementacja funkcji P2P umożliwia autonomiczne przekazywanie 
        na odległość (za pośrednictwem sieci Ethernet) stanów sygnałów bez pośrednictwa 
        jakiejkolwiek jednostki nadrzędnej, a obsługa prostych algorytmów GCL 
        w pewnych przypadkach może nawet wyeliminować konieczność zastosowania 
        prostego sterownika PLC...</i><br>
        <br>
        <b>1. Krótka charakterystyka</b><br>
        <br>
        <img src="artykuly/p2pgcl/tab.jpg" width="311" height="151" align="right">Zestawienie 
        występujących obecnie w serii ADAM-6000 modułów I/O zawarto w tabeli. 
        Występują tam moduły wejść analogowych (uniwersalnych lub specjalizowanych 
        - do pomiaru temperatur za pomocą czujników termoelektrycznych i oporowych), 
        wyjść analogowych, oraz wejść/wyjść cyfrowych (tranzystorowych jak i przekaźnikowych). 
        Wszystkie z nich wyposażone są w interfejs komunikacyjny <b>Ethernet (10/100Base-T)</b>. 
        Modele z oznaczeniem "W" występują także opcjonalnie jako moduły 
        z łącznością bezprzewodową (IEEE802.11b wireless LAN). Do komunikacji 
        urządzeń nadrzędnych z modułami I/O zaimplementowano standardowy protokół 
        Modbus/TCP, bardzo powszechnie stosowany dziś w rozproszonych systemach 
        automatyki. Dostarczane są wraz z uchwytem montażowym DIN i naściennym, 
        przystosowane zostały do zasilania napięciem stałym w zakresie 10-30VDC. 
        </p>
      <p align=justify><b>2. Konfiguracja</b></p>
      <p align=justify>Konfigurację modułów przeprowadzić należy 
        korzystając z dostarczanego wraz z urządzeniami (oczywiście bezpłatnie) 
        programu konfiguracyjno-diagnostycznego <b>Adam.NET Utility</b> <img src="artykuly/p2pgcl/rys1-small.jpg" width="400" height="263" align="left" border="0">(Rys.1, 
        najnowsza wersja, przeznaczona do konfiguracji modułów także z innych 
        serii ADAM). W pierwszej kolejności program pozwala na wyszukanie wszystkich 
        modułów włączonych do lokalnej sieci. Następnym (wymaganym) krokiem jest 
        ustalenie podstawowych parametrów sieciowych poszczególnych modułów (adres 
        IP i maska podsieci, ewentualnie także adres IP bramy wyjściowej umożliwiający 
        zastosowanie modułów w sieciach rozległych). Opcjonalnie konfiguracja 
        podstawowa dotyczyć może także: nadania nazw identyfikacyjnych modułu 
        (Device Name i Device Description, pomocne przy dużych aplikacjach), zmian 
        ustawień kontroli dostępu do urządzenia (Access Control, w oparciu o adresy 
        IP lub MAC) oraz ustalenia hasła dostępu do zmian w konfiguracji. Kolejne 
        kroki uzależnione są już od rodzaju modułu I/O. Przykładowo: w przypadku 
        modułu wejść analogowych ADAM-6017 będzie to przede wszystkim ustalenie 
        zakresu pomiarowego (lub wybór typu podłączonego czujnika temperatury 
        w przypadku modułów 6015/6018), ustawienia dotyczące obliczania wartości 
        średniej i ewentualnych progów alarmowych. Bogate możliwości konfiguracji 
        występują - co często okazuje się rzeczą bardzo przydatną - w przypadku 
        modułów we/wy cyfrowych. Otóż każde z wejść cyfrowych skonfigurowane może 
        być do pracy w jednym z pięciu trybów: jako standardowe wejście cyfrowe 
        (moduł zwraca po prostu aktualny stan sygnału), wejście zatrzaskowe (z 
        aktywnym poziomem niskim lub wysokim), wejście licznikowe (o pojemności 
        32 bitów, z filtrem cyfrowym i podtrzymaniem bateryjnym), lub ostatecznie 
        w trybie pomiaru częstotliwości (do 3kHz). W przypadku wyjść cyfrowych 
        - oprócz trybu standardowego - może to być działanie z opóźnieniem (przy 
        załączaniu lub wyłączaniu) lub tryb wyjścia impulsowego (o zadanym wypełnieniu 
        i częstotliwości).<br>
        </p>
      <b>3. Komunikacja P2P </b> 
      <p align=justify>Stosunkowo często występującym problemem 
        rozległych systemów automatyki i pomiarów jest przesyłanie dużej ilości 
        sygnałów i na duże odległości. Kłopotliwa staje się konieczność prowadzenia 
        dużej ilości przewodów oraz występowanie - szczególnie w przypadku przesyłania 
        sygnałów analogowych - wszelakiego rodzaju zakłóceń.<img src="artykuly/p2pgcl/rys2-small.jpg" width="400" height="482" align="left" border="0">
        Jednym z możliwych rozwiązań eliminujących te problemy jest przesyłanie 
        sygnałów w postaci przetworzonej do postaci cyfrowej, za pomocą sieci 
        Ethernet. I w takim właśnie momencie pomocną okazuje się implementacja 
        protokołu <b>P2P</b> (Peer To Peer) w modułach serii ADAM-6000, nie wymagająca 
        korzystania z dodatkowego urządzenia master (odpytującego cyklicznie moduły 
        wejściowe i na tej podstawie ustalającego stany wyjść w modułach wyjściowych), 
        umożliwiająca dodatkowo pracę w dwóch trybach: <b>BASIC</b> (One To One) 
        oraz <b>ADVANCED</b> (One To Multi). W trybie BASIC współpracuje ze sobą 
        tylko para modułów: moduł wyposażony w wejścia (analogowe lub cyfrowe) 
        dokonuje cyklicznego ich próbkowania i na podstawie uzyskanych danych 
        autonomicznie, za pośrednictwem połączenia sieciowego, wysyła odpowiednie 
        komendy ustalające stany wyjść do modułu "wyjściowego". W takim 
        przypadku konfiguracja polega na podaniu adresu IP modułu docelowego i 
        wskazania, których kanałów (np. tylko CH0->CH0, CH1->CH1, CH4->Ch4) 
        taka synchronizacja stanów ma dotyczyć. Tryb ADVANCED jest już bardziej 
        rozbudowany: w danym module "wejściowym" oddzielnie dla każdego 
        z wejść ustalić możemy inny adres IP oraz nawet inny numer kanału modułu 
        docelowego ("wyjściowego"). Przykładowe konfiguracje dla obydwu 
        wyżej wymienionych rozwiązań ilustruje Rys.2.<br>
        </p>
      <b>4. Algorytmy GCL </b> 
      <p align=justify>Podstawowym zadaniem stawianym modułom 
        serii ADAM-6000 (podobnie jak w przypadku jej pierwowzoru: serii modułów 
        kontrolno-pomiarowych ADAM-4000 wyposażonych w interfejs szeregowy RS-485) 
        jest umożliwienie budowy rozproszonych systemów automatyki, w których 
        moduły te pełnią jedynie rolę zdalnych modułów I/O, natomiast cały ciężar 
        obsługi algorytmu sterowania spoczywa na jednostce nadrzędnej - najczęściej 
        w postaci sterownika PLC lub komputera z odpowiednim oprogramowaniem. 
        W układzie takim nawet najprostsze fragmenty algorytmu wymagają udziału 
        tejże jednostki, a nawet chwilowa awaria samego systemu nadrzędnego lub 
        tylko łącz komunikacyjnych powodować może nieodwracalne w skutkach zachowania 
        całego układu. Powszechnie stosowanym rozwiązaniem eliminującym takie 
        zagrożenia jest<img src="artykuly/p2pgcl/rys3-small.jpg" width="400" height="222" align="left" border="0">
        decentralizacja układu automatyki, czyli stosowanie odpowiedniej liczby 
        mniejszych lub większych (w zależności od charakteru obiektu) autonomicznych 
        jednostek sterujących, zazwyczaj umieszczonych jak najbliżej samych urządzeń 
        wykonawczych. Dość często okazuje się, że logika takiego zdalnego układu 
        nie musi być wcale bardzo rozbudowana - rozwiązaniem jest oczywiście zastosowanie 
        prostego sterownika PLC, lecz często jest to rozwiązanie zdecydowanie 
        nadmiarowe. I właśnie w takim przypadku pomocną może okazać się kolejna 
        funkcja zaimplementowana w modułach ADAM-6000: obsługa algorytmów <b>GCL</b> 
        (Graphic Condition Logic). Dzięki niej konkretny moduł I/O może nie tylko 
        udostępniać dane obiektowe jednostce nadrzędnej systemu, ale może także 
        niezależnie wykonywać zaprogramowany prosty algorytm sterowania.<br>
        Do graficznego programowania modułu wykorzystujemy ponownie aplikację 
        Adam.NET Utility. W ramach jednego modułu zdefiniować możemy maksymalnie 
        16 reguł (Rule) o strukturze przedstawionej na Rys.3. W każdej z nich 
        do dyspozycji mamy: blok wejściowy (do 3 sygnałów/rejestrów w połączeniu 
        z warunkami logicznymi), bramkę logiczną (AND/OR/NAND/NOR), blok wykonawczy 
        (umożliwiający generowanie opóźnień i kaskadowe łączenie reguł) oraz blok 
        wyjściowy (maksymalnie 3 operacje). <br>
        </p>
      <p align=justify>Do dyspozycji użytkownika, oprócz wszystkich 
        sygnałów we/wy<img src="artykuly/p2pgcl/rys4-small.jpg" width="400" height="195" align="left" border="0">
        (w pełnej funkcjonalności, czyli np. także wejścia cyfrowe w trybie licznikowym 
        lub pomiaru częstotliwości, wyjścia cyfrowe w trybie generatora impulsów), 
        pozostają także dodatkowe rejestry wewnętrzne w postaci liczników, timerów 
        i flag stanu. Flagi stanu (AuxiliaryFlag) - podobnie jak blok wykonawczy 
        - pozwalają np. na budowanie kaskadowych układów reguł realizujących bardziej 
        rozbudowane funkcje logiczne.Blok wyjściowy umożliwia także bezpośrednie 
        odwołanie do zdalnego modułu I/O (identyfikowanego przez adres IP), czego 
        następstwem jest możliwość budowy autonomicznych układów w ramach więcej 
        niż jednego modułu (Rys.4.). W przypadku wejść analogowych pomocną opcją 
        staje się także możliwość liniowego skalowania wartości sygnału (np. w 
        zakresie ±10V) do wartości rzeczywistej mierzonej wielkości fizycznej 
        (np. pomiar ciśnienia).</p>
      <p align=justify><b>5. Podsumowanie</b></p>
      <p align=justify>Przedstawione pokrótce w powyższym artykule 
        nowe funkcje modułów ADAM-6000 w znacznym stopniu poszerzają możliwości 
        ich zastosowań. Najnowsze wersje oprogramowania wewnętrznego modułów, 
        jak i programu narzędziowego Adam.NET Utility, można pobrać z witryny 
        internetowej producenta (http://support.advantech.com.tw) i dzięki temu 
        z funkcji tych (po dokonaniu upgrade'u firmware'ów) korzystać nawet w 
        starszych wersjach modułów - w funkcje te dotychczas nie wyposażonych. 
        Przy czym zaznaczyć należy, iż w ramach jednego modułu nie ma możliwości 
        korzystania zarówno z komunikacji P2P jak i algorytmów GCL - konfiguracja 
        pozwala na włączenie tylko jednej z tych funkcji.<br>
        <br>
	Więcej informacji: <a target=_blank href=http://www.elmark.com.pl/products/advantech/typ.php?typ=44><b>moduły serii ADAM-6000</b></a>.<br>
	Informacje na stronie producenta: <a href=http://www.advantech.com.tw/ia/popcorn/eDM/2008/Remote-IO/ target=_blank><b>http://www.advantech.com.tw/ia/popcorn/eDM/2008/Remote-IO/</b></a>
        </p>
      <p align=justify>Jacek Bonecki / Elmark Automatyka @ IV 2008</p>
    </td>
  </tr>
</table><br><div align=left class="myframe" style="WIDTH:738px;FONT-SIZE:11px;BACKGROUND-COLOR:#EBF3F8;COLOR:#000080;">
<span class="ctop"><span></span></span>
<b>Jeśli masz jakieś uwagi - możesz dodać swój komentarz do tej strony.</b><br>
<font color=#9EC5DE>Możesz go dopisać anonimowo - ale oczywiście lepiej by było, gdyby czytający wiedzieli kto jest jego autorem.
W przypadku wykrycia treści niedozwolonych lub nic konkretnego do tematu nie wnoszących, wpis może być w późniejszym czasie usunięty (ocenzurowany) przez administratora.</font><br>
<br><table cellpadding=2 cellspacing=0 border=0><form name=fn1 method=post>
<input type=hidden name=fv0 value="101">
<input type=hidden name=fv5 value="be67c677ce22b09c499209f789d9bf83">
<tr valign=middle><td class=v width=90><b>Autor:</b></td><td>&nbsp;&nbsp;&nbsp;<input maxlength=30 class=vlrbt type=text name=fv1 value="" style="width:200px;BACKGROUND-COLOR:#FFFFFF;"></td><td rowspan=2>&nbsp;</td><td rowspan=2><img src=img/sesssecimg.php width=140 height=35 style="BORDER-WIDTH:1px;BORDER-STYLE:dotted;BORDER-COLOR:#C0C0C0;"></td></tr>
<tr valign=middle><td class=v><b>Firma:</b></td><td>&nbsp;&nbsp;&nbsp;<input maxlength=30 class=vlrbt type=text name=fv2 value="" style="width:200px;BACKGROUND-COLOR:#FFFFFF;"></td></tr>
<tr valign=middle><td class=v><b>Twój e-mail:</b></td><td>&nbsp;&nbsp;&nbsp;<input maxlength=30 class=vlrbt type=text name=fv3 value="" style="width:200px;BACKGROUND-COLOR:#FFFFFF;"></td><td class=v width=90><b>Kod z obrazka</b>:</td><td><input maxlength=8 class=vlrbt type=text name=fv6 style="width:100px;BACKGROUND-COLOR:#FFFFFF;"></td></tr>
<tr valign=top><td class=v><b>Komentarz:</b></td><td colspan=3>&nbsp;&nbsp;&nbsp;<textarea maxlength=30 class=vlrbt name=fv4 style="width:620px;height:100px;BACKGROUND-COLOR:#FFFFFF;"></textarea></td></tr>
<tr valign=top><td class=v colspan=4><input class=vlrbt type=button onClick="javascript:WriteComment()"value=Wyślij style="WIDTH:70px;"></td></tr>
</form>
</table><span class="cbot"><span></span></span>
</div><table cellpadding=0 cellspacing=0><tr><td><img src=img/blank.gif width=10 height=3 border=0></tr></td></table>
<script language="JavaScript" type="text/javascript">
<!--
function WriteComment()
{
if (document.fn1.fv6.value.length!=8) {alert('Przepisz kod zabezpieczający - w postaci ośmiocyfrowej liczby - z umieszczonego w formularzu obrazka.');return;};
if (isNaN(document.fn1.fv6.value)) {alert('Kod zabezpieczający jest ośmiocyfrową liczbą - więc może się składać tylko z cyfr.');return;};
if (document.fn1.fv6.value<0) {alert('Kod zabezpieczający jest ośmiocyfrową liczbą większą od 0.');return;};
if (document.fn1.fv4.value.length<15) {alert('Jakiś komentarz wpisać musisz - przyjmijmy, że będzie to minimum 15 znaków.');return;};
if (document.fn1.fv4.value.length>1024) {alert('Długość komentarza nie może przekaczać 1024 znaków!');return;};
document.fn1.submit();
}
// -->
</script>
</td>
</tr></table><br><br>
</body>
</html>

