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
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.
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].
5. Naciśnij [ustawienia] i nadaj jak pokazano na poniższym obrazie.
6. Po nadaniu ustawień dla portu COM naciśnij [OK].
7. Naciśnij ponownie [OK], aby zakończyć nadawanie ustawień.
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).
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).
31.5.3. Testowanie programu
Kompiluj projekt, a następnie wgraj do panela HMI 1 i HMI 2.
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.










No comments to display
No comments to display