W wcześniejszym przykładzie pokazałem jak wykorzystywać normalne wejścia/wyjścia w naszym Master. Tym razem pokaże jak skonfigurować port, aby móc połączyć się z koncentratorem sygnałów z interfejsem IO-Link.
Podłączenie:

Master komunikuje się z Slavem po standardzie komunikacji IO-LINK stąd do komunikacji z nim potrzebny jest Master, który skomunikuje się z nim.
Z dokumentacji technicznej należy odnaleźć sposób podłączenia obu urządzeń tak, aby mogły się skomunikować.
Master

Slave

Konfiguracja:
Będę opierał się na wcześniejszym projekcie stąd nie będę powtarzał pewnych rzeczy które wyjaśnione są w https://asterfekt.pl/bni00fw-konfiguracja-wejsc-wyjsc/
Na początku kasujemy w naszym module Standard I/O_1 i w jego miejsce przeciągamy z zakładki IO-Link device modules naszą wersje modułu w moim przypadku jest to moduł BN1 IOL-302-000-K006 dlatego wybieram BNI IOL-302-00X-XXXX (2 Byte Input and 2 Byte Output). Dla pewności można sprawdzić na stronie producenta ile pamięci/danych potrzebuje nasze urządzenie.

Od razu po tej czynności zostanie przydzielona pamięć dla wejść i wyjść w moim przypadku dla wejść jest to adres 68..69 a dla wyjść 64…65
W naszym dodanym module można zmienić funkcje naszych portów w zależności czy chcemy wejście czy wyjście.

Dla celów pokazowych przyjąłem, że port 0 będzie służył jako wyjście.
Programowanie/Sterowanie:
Tak jak we wcześniejszym przykładzie należy stworzyć Tagi w sterowniku i przepisać nasze Adresy w moim przypadku to %IW68 dla wejść i %QW64 dla wyjść. Ważne jest aby typ danych odpowiadał rozmiarowi naszego adresu czyli typ danych typu WORD.
Test wejść:
W tym celu stworzyłem w drabince z użyciem bloczka Move pokazowy program.

Przy nie podłączonym czujniku wartości wskazują wartość 0
Uwaga ! Podłączenie portu takie samo jak w przykładzie wcześniejszym.

Podłączenie czujnika do portu 2 ( W moim przypadku czujnik optyczny odbiciowy) na PIN 2 NO a na Pin 4 NC. Stąd odczyt naszej wartości jest na zerowym BYTE.
W zapisie dziesiętnym jest to wartość 512.

Po wyzwoleniu czujnika Pin 2 jest aktywowany a Pin 4 dezaktywowany. Stąd zapis na pierwszym BYTE.
W zapisie dziesiętnym jest to wartość 2.
Test wyjść:

Port 0 ustawiony jest jako wyjście.

Po wpisaniu wartości 1 aktywuje się PIN 2 i nasze urządzeniu pokazuje stan wysoki na tym pinie.

Po wpisaniu wartości 100 aktywuje się PIN 4 i nasze urządzeniu pokazuje stan wysoki na tym pinie.

Analogicznie jak wpiszemy wartość 101 aktywują się oba wyjścia w naszym module na porcie 0.
Ważne:
Podczas aktywacji naszych wyjść na porcie 0 można zauważyć, że wartość również zmienia się na naszych wejściach dodając wartość z naszych wyjść.
Teoria:
Dzieje się tak, ponieważ nasz moduł działa na pamięci odpowiadającej 2 BYTE. Zaglądając do dokumentacji urządzenia można zweryfikować nasze wartości .

Stworzyłem Plik EXCEL w którym można sprawdzić nasze wartości.
