Skip to main content

31. Protokół komunikacyjny Memory Map

W tym rozdziale wyjaśniono ustawienia związane z protokołem Memory Map.

31.1.    Wprowadzenie

Protokół komunikacyjny Memory Map jest podobny do protokołu IBM 3764R i jest używany, gdy dane pamięci są przesyłane rzadko między dwoma urządzeniami. Podczas definicji dwóch urządzeń, jedno jest ustawiony, jako Master, a drugi, jako Slave. Ogólnie rzecz biorąc, Master i Slave nie komunikują się, chyba, że dane w wybranym adresie uległy zmianie. Po zsynchronizowaniu danych komunikacja zostanie zatrzymana. Celem korzystania z protokołu Memory Map jest zachowanie spójności przypisanej części danych między dwoma urządzeniami (Master i Slave).

Odpowiednie adresy urządzeń Master i Slave powinny mieć tę samą właściwość, co typ adresu MW (MB). Wielkość pamięci MW (MB) w HMI wynosi 10.000 słów.

MB i MW odnoszą się do tego samego obszaru pamięci, na przykład MB0 ~ MBf odpowiada bitom MW0, MB10 ~ MB1f odpowiada MW1, jak pokazano w poniższej tabeli:

Typ zmiennej Format Zakres
MB DDDDh DDDD:0~4095 h:0~f(hex)
MW DDDD DDDD:0~9999

31.2. Ustawienia komunikacji (piny)

Podczas korzystania z protokołu komunikacyjnego Memory Map, Master i Slave muszą mieć ustawione te same parametry komunikacyjne. Schemat połączenia urządzeń pokazano w poniższej tabeli:
(liczba # będzie różna w zależności od typu sterownika PLC lub kontrolera.)

Port COM RS-232
Urządzenie Master Slave
Numer pinu TX(#) RX(#)

RX(#) TX(#)

GND(#) GND(#)
Port COM RS-485 (4W)
Urządzenie Master Slave
Numer pinu TX+(#) RX+(#)

TX-(#) RX-(#)

RX+(#) TX+(#)

RX-(#) TX-(#)

GND(#) GND(#)

31.3.    Schemat blokowy komunikacji

image.png

image.png

image.pngUwaga

n   Schemat blokowy komunikacji 2 odnosi się do urządzenia Slave, ale nie Master.

n   STX: Początek tekstu, ACK: potwierdzenie, NAK: odpowiedź negatywna

 

31.4.    Typy adresów

Istnieją dwa typy adresów: MB i MW.'

Format poleceń sterujących zmienną MB jest wymieniony w poniższej tabeli.

MB komenda

Przesunięcie(bajt) Format Opis
0 0x02 Znak operacyjny dla MB
1 0x## Adres (Młodszy bajt)
2 0x##

Adres (Starszy bajt)

Przykład: MB-18 = 1*16 + 2 = 18 = 0x12 i 0x00

3

0x00

(or 0x01)

Dane w adresie MB

(Typ: bit, musi mieć wartość 0 lub 1)

4,5 0x10, 0x03 Znak stopu
6 0x## Suma kontrolna. Oblicza wartość logiczną XOR z przesunięcia od 0 do 5.

Format poleceń sterujących zmienną MW jest wymieniony w poniższej tabeli:

MW komenda

Przesunięcie(bajt) Format Opis
0 0x01 Znak operacyjny dla MW
1 0x## Adres (Młodszy bajt)
2 0x##

Adres bitowy (Starszy bajt)

Jeśli adres zawiera format 0x10, wstawia kolejne 0x10, a wszystkie przesunięcia po tym zostaną zwiększone o 1.

Przykład: 0x10, 0x04 stanie się 0x10,0x10,0x04
3 0x## Liczba wysyłanych bajtów (Aby kontrolować słowo, liczba bajtów musi być parzysta). Jeśli liczba bajtów wynosi 0x10, wstawia kolejne 0x10, a wszystkie przesunięcia po tym zostaną zwiększone o 1
4 to 4+n-1

0x##(L),0x##(H)

0x##(L),0x##(H)

...

Adres, który odpowiadają pierwszemu i drugiemu bajtowi, jest adresem początkowym. "N" to liczba bajtów. Jeśli dane zawierają 0x10, wstawia kolejne 0x10, a "Liczba bajtów wysyłających" (przesunięcie 3) pozostaje takie samo, ale n = n + 1. To samo dotyczy innych danych 0x10

4+n,

4+n+1

0x10

0x03

Znak końca
4+n+2 0x## Suma kontrolna. Oblicza wartość logiczną XOR z wszystkich powyższych

31.4.1. Przykład komunikacji

Przykład 1

Jeśli Master ustawi dane w zmiennej MW-3 na 0x0a, Master nawiąże komunikację z urządzeniem Slave natychmiast ze względu na zmianę danych, więc Slave zaktualizuje swoją zmienną MW-3 do 0x0a, procedura jest następująca:

1.        Master wysyła STX(0x02h).

2.        Slave otrzymuje STX(0x02h) z urządzenia Master, i wysyła ACK(0x06h) do urządzenia Master.

3.        Master otrzymuje ACK(0x06h) z urządzenia Slave.

4.        Master wysyła 0x01,0x03,0x00,0x02,0x0a,0x00,0x10,0x03,0x19, jak pokazano w poniższej tabeli:

Przesunięcie(bajt) Format Opis
0 0x01 Znak operacyjny dla MW
1

0x03

Adres (Młodszy bajt)
2 0x00 Adres bitowy (Starszy bajt)
3 0x02 Liczba wysyłanych bajtów (MW-3= dwa bajty).
4,5 0x0a, 0x00 Wartość w MW-3 to 0x0a i 0x00
6,7 0x10, 0x03 Znak końca
8 0x19

Suma kontrolna

0x01^0x03^0x00^0x02^0x0a^0x00^0x10^0x03=0x19

5.        Slave odbiera dane od urządzenia Master, a następnie wysyła ACK(0x06h).

6.        Master otrzymuje ACK(0x06h) z urządzenia Slave.

Po zakończeniu komunikacji Master wysyła zaktualizowane dane z MW do urządzenia Slave, a Slave zsynchronizuje swoje dane MW z urządzeniem Master.

Przykład 2

Jeśli dane zawierają 0x10; proszę zauważyć, że nastąpi zmiana formatu danych.

Jeśli MW-10 w urządzeniu Slave jest ustawione na 0x10, Slave natychmiast nawiążę komunikację z urządzeniem Master, a Master zaktualizuje jej zmienną MW-10 do 0x10, procedura jest następująca:

1.        Slave wysyła STX(0x02h)

2.        Master otrzymuje STX(0x02h) z urządzenia Slave, i wysyła ACK(0x06h) do urządzania Slave.

3.        Slave otrzymuje ACK(0x06h) z urządzenia Master

4.        Slave wysyła 0x01,0x10,0x10,0x00,0x02,0x10,0x10,0x00,0x10,0x03,0x10 , jak pokazano w poniższej tabeli:

Przesunięcie(bajt) Format Opis
0 0x01 Znak operacyjny dla MW

1

2

3

0x10

0x10

0x00

Adres (Młodszy bajt)

Wstawia 0x10

Adres bitowy (Starszy bajt)
4 0x02 Liczba wysyłanych bajtów (MW-10= dwa bajty)

5

6

7

0x10

0x10

0x00

Adres (Młodszy bajt)

Wstawia 0x10

Adres bitowy (Starszy bajt)

8

9

0x10

0x03

Znak końca
10 0x10

Suma kontrolna

0x01^0x10^0x10^0x00^0x02^0x10^0x

10^0x00^0x10^0x03=0x10

5.        Master otrzymuje dane z urządzenia Slave i wysyła ACK(0x06h) do urządzenia slave.

6.        Slave otrzymuje ACK(0x06h) z urządzenia Master.

Slave przesyła zaktualizowane dane z zmiennej MW w urządzeniu Master, a Master synchronizuje swoje dane MW z urządzeniem Slave.

 

31.5.            Ustawienia

Poniżej wyjaśniono, jak podłączyć dwa HMI za pomocą protokołu Memory Map.

 

image.pngUwaga

n   Jeśli model dwóch paneli HMI jest inny, proszę utworzyć dwa różne pliki projektu lub, po ustawieniu pierwszego panela, bezpośrednio zmienić typ drugiego panela HMI w zakładce w menu narzędziowym [Edycja] »[Ustawienia systemowe]» [Model], a następnie skompilować i wgrać projekt do drugiego HMI.

 

31.5.1. Kroki do zdefiniowania komunikacji Memory Map

1.        Uruchom EasyBuilder Pro, naciśnij [Nowy projekt], i wybierz model panelu HMI.

2.        Z paska narzędzi wybierz zakładkę [Edycja] » [Ustawienia systemowe], a następnie wybierz zakładkę [urządzenia] i naciśnij [Nowe], aby dodać nowe urządzenie.

3.        W polu [Nazwa] wprowadź “Memory Map”, a następnie wybierz [Sterownik] i ustaw typ połączenia, jako to [lokalny].

4.        Ustaw [Typ sterownika], jako [Memory Map] i [interfejs panela], jako [RS-232].

image.png

5.        Naciśnij [ustawienia] i nadaj jak pokazano na poniższym obrazie.

 

image.png

 

6.        Po nadaniu ustawień dla portu COM naciśnij [OK].

7.        Naciśnij ponownie [OK], aby zakończyć nadawanie ustawień.

image.pngUwaga

n   Memory Map w serii MT500 jest podzielona na [Memory Map_Master] i [MemoryMap_Slave]; proszę zapoznać się z odpowiednią instrukcją.

n   W przypadku serii eMT3000 i MT8000 można wybrać [Memory Map] z lity typów sterownika.

n   [Bity danych] musza być ustawienie, jako 8 bitów.

n   Wszystkie ustawienia obu paneli HMI muszą być takie same.

 

31.5.2. Ustawienia obiektów

Dodaj dwa obiekty przełącznik i przełącznik multi-stanowy na oknie numer. 10,

Utwórz obiekt przełącznik, zgodnie z poniżej opisanymi krokami.

1.        Ustaw [PLC] jako Memory Map.

2.        Ustaw [Adres] jako MB-0.

3.        Ustaw [sposób przełączeń] jako [Przełacz]. (Można również ustawić obraz i etykietę obiektu).

 

image.png

 

Utwórz obiekt przełącznik multi-stanowy, zgodnie z poniżej opisanymi krokami.

1.        Ustaw [PLC] jako Memory Map.

2.        Ustaw [Adres] jako MW-1.

3.        W polu [Cykliczny] wybierz opcję [załącz]. (Można również ustawić obraz i etykietę obiektu).

 

 

image.png

31.5.3. Testowanie programu

Kompiluj projekt, a następnie wgraj do panela HMI 1 i HMI 2.

image.png

Po naciśnięciu przycisku na jednym z HMI zmieni się również jego status na drugim.
Sposób podłączenia HMI do kontrolera jest podobny do powyższego przykładu. Dane w tych samych adresach obu urządzeń są identyczne.