Witam,
Pomyślałem, że warto byłoby pokazać dodatkową funkcjonalność wyświetlaczy DWIN ze sterownikiem DGUS a mianowicie OS. Do demonstracji został wybrany wyświetlacz DMT80480T070_18WT. Jest to model panelowy o IP65 matrycy 7", rozdzielczości 800x480 i interfejsie RS232/485 (zamiennie).
Określenie Operating System jest pewną przesadą ale producent stosuje takie nazewnictwo. W rzeczywistości jest to kod napisany w asemblerze, który umieszczany jest pod adresem 23 w pamięci wyświetlacza. Asembler jest podobny do 51 więc sporo osób które wcześniej zaczynały przygodę z elektroniką liznęło mniej lub bardziej. No chyba, że ktoś miał wykładowcę z "ambicjami" to jeszcze obecnie może praktykować tę wiedzę na niektórych uczelniach.
Cykl pracy wyświetlacza DGUS można podzielić na kilka etapów:
1. Przetwarzanie zmiennych
2. Wizualizacja
3. Przetwarzanie panelu dotykowego
4. Uruchomienie OS
Czas jednego cyklu można ustawić na 200,160,120 lub 80ms. Po zakończeniu etapów 1-3 wyświetlacz rozpoczyna realizację programu aż do jego zakończenia lub do końca nastawionego cyklu. Jeśli program zostanie przerwany w następnym cyklu uruchomi się od początku. "Okienko czasowe" jakie mamy do dyspozycji zależy od rozdzielczości wyświetlacza i złożoności projektu. Np dla wyświetlaczy HD nie zaleca się stosowania cyklu 80ms.
To tyle teorii. Projekt ma za zadanie stworzenie prostego układu Master-Slave w systemie MODBUS. Jako interface został zastosowany moduł ADAM 4051 który dysponuje szesnastoma wejściami binarnymi. Komunikacja ustawiona na 38400 8N1 z adresem 9.
Podstawowa ramka komunikacyjna wyświetlaczy DGUS nie jest kompatybilna z MODBUS dlatego trzeba posłużyć się wspomnianym OS. Program jest dość zwięzły:
Jak widać kod wcale nie jest długi.
Teraz wizualizacja danych. Całość tworzymy w SDK.
Ponieważ dane z modułu ADAM otrzymamy w formie szesnastu bitów do wizualizacji poszczególnych stanów posłużymy się obiektem "Bit Variable Icon". W którym określamy dla danego bitu jaka ma być ikona w stanie 0 a jaka w stanie 1. Jeśli byśmy mieli wejścia analogowe można je prezentować obiektem "Data Variable" jako liczbę albo "Icon rotation" jako wychylenie wskazówki.
Oczywiście nie jesteśmy ograniczeni do wizualizacji wejść. Równie dobrze można odczytać status panelu dotykowego, a tak naprawdę skojarzonych z nim obiektów i wysłać dane do odpowiedniego modułu systemu MODBUS.
Działający układ można zobaczyć tu:
Jak widać wyświetlacze DGUS w wielu przypadkach mogą pełnić funkcję paneli HMI współpracując ze standardowymi urządzeniami wejść/wyjść, czy też sterownikami PLC.
Koszt tego konkretnego wyświetlacza to ok 640zł ale jak wspomniałem można zastosować inne tańsze w zależności od potrzeb z panelem rezystancyjnym, pojemnościowym lub zupełnie bez dotyku.
Załączam projekt w SDK całej wizualizacji wraz z kodem ASM.

Pomyślałem, że warto byłoby pokazać dodatkową funkcjonalność wyświetlaczy DWIN ze sterownikiem DGUS a mianowicie OS. Do demonstracji został wybrany wyświetlacz DMT80480T070_18WT. Jest to model panelowy o IP65 matrycy 7", rozdzielczości 800x480 i interfejsie RS232/485 (zamiennie).
Określenie Operating System jest pewną przesadą ale producent stosuje takie nazewnictwo. W rzeczywistości jest to kod napisany w asemblerze, który umieszczany jest pod adresem 23 w pamięci wyświetlacza. Asembler jest podobny do 51 więc sporo osób które wcześniej zaczynały przygodę z elektroniką liznęło mniej lub bardziej. No chyba, że ktoś miał wykładowcę z "ambicjami" to jeszcze obecnie może praktykować tę wiedzę na niektórych uczelniach.
Cykl pracy wyświetlacza DGUS można podzielić na kilka etapów:
1. Przetwarzanie zmiennych
2. Wizualizacja
3. Przetwarzanie panelu dotykowego
4. Uruchomienie OS
Czas jednego cyklu można ustawić na 200,160,120 lub 80ms. Po zakończeniu etapów 1-3 wyświetlacz rozpoczyna realizację programu aż do jego zakończenia lub do końca nastawionego cyklu. Jeśli program zostanie przerwany w następnym cyklu uruchomi się od początku. "Okienko czasowe" jakie mamy do dyspozycji zależy od rozdzielczości wyświetlacza i złożoności projektu. Np dla wyświetlaczy HD nie zaleca się stosowania cyklu 80ms.
To tyle teorii. Projekt ma za zadanie stworzenie prostego układu Master-Slave w systemie MODBUS. Jako interface został zastosowany moduł ADAM 4051 który dysponuje szesnastoma wejściami binarnymi. Komunikacja ustawiona na 38400 8N1 z adresem 9.
Podstawowa ramka komunikacyjna wyświetlaczy DGUS nie jest kompatybilna z MODBUS dlatego trzeba posłużyć się wspomnianym OS. Program jest dość zwięzły:
Code:
LDBR R0,1,1 ;
LDWR R0,0005H ; Adres przechowywany w VP =0x0005
MOVXR R127,1,1 ;odczytaj ADR
IJNE R128,0,ADROK ; Sprawdzenie czy ADR<>0
LDBR R128,9,1 ;Jeśli adr=0 zmień na 9
MOVXR R127,0,1 ;wyślij zmienioną wartośc do DGUS
ADROK:
LDWR R129,0102H ; Spodziewana odpowiedz komenda i ilosc danych
RMODBUS R128,R131,R130 ;Odbierz dane MODBUS
IJNE R130,0FFH,RCVNUL;Sprawdzenie czy odebrane dane są poprawne
LDWR R0,09H ;Odebrane dane zapisz pod VP=0x0009
MOV R131,R101,1 ;Zamiana bajtów w slowie
MOV R132,R100,1 ;
MOVXR R100,0,1 ;Wyslij odebrane dane MODBUS do DGUS
RCVNUL:
LDWR R130,0000H ; Zapytanie od rejestru 0
LDWR R132,0010H ; do rejestro 0x10
LDBR R8,6,1 ; CRC bedzie liczone z 6 bajtow
CRCA R128,R134,R8 ; Obliczyc CRC
COMTXI 0,R128,8 ; Wyslac ramke MODBUS
END
Jak widać kod wcale nie jest długi.
Teraz wizualizacja danych. Całość tworzymy w SDK.


Ponieważ dane z modułu ADAM otrzymamy w formie szesnastu bitów do wizualizacji poszczególnych stanów posłużymy się obiektem "Bit Variable Icon". W którym określamy dla danego bitu jaka ma być ikona w stanie 0 a jaka w stanie 1. Jeśli byśmy mieli wejścia analogowe można je prezentować obiektem "Data Variable" jako liczbę albo "Icon rotation" jako wychylenie wskazówki.
Oczywiście nie jesteśmy ograniczeni do wizualizacji wejść. Równie dobrze można odczytać status panelu dotykowego, a tak naprawdę skojarzonych z nim obiektów i wysłać dane do odpowiedniego modułu systemu MODBUS.
Działający układ można zobaczyć tu:
Jak widać wyświetlacze DGUS w wielu przypadkach mogą pełnić funkcję paneli HMI współpracując ze standardowymi urządzeniami wejść/wyjść, czy też sterownikami PLC.
Koszt tego konkretnego wyświetlacza to ok 640zł ale jak wspomniałem można zastosować inne tańsze w zależności od potrzeb z panelem rezystancyjnym, pojemnościowym lub zupełnie bez dotyku.
Załączam projekt w SDK całej wizualizacji wraz z kodem ASM.
Cool? Ranking DIY