Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 30 kwi 2025, o 05:52


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ] 
    Autor Wiadomość
    PostNapisane: 8 lis 2014, o 10:46 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    Witam
    poszukuje pomocy w napisaniu kodu w celu odczytu informacji z PLC po modbus RTU

    PLC jako SLAVE
    predkosc 9600
    mode - RTU
    COM - 1
    DATA BITS - 8
    STOP BITS - 1
    PARITY - NONE
    SLAVE ID - 1
    FUCTION CODE - 3
    16 BIT REGISTER

    Zapytanie jakie musze wysłać to:

    01 03 10 01 00 01 D1 0A dla 4098

    a oczekuje odpowiedzi takiej

    01 03 02 07 BF FB C4 - chce odczytać wartość "1983"

    I tą wartość chcę wyświetlać na wyświetlaczu

    schemat plytki
    Obrazek

    No i sam program za którego nie wiem się jak zabrać

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lis 2014, o 09:55 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    On już jest przystosowany do moich potrzeb ale chyba cos zle robie bo nadal nie dziala

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lis 2014, o 14:13 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    Pozmienialem wg. uwag jedynie nie umiem wykluczyc otwierania portu bo jak to robie to wywala kompilator blad
    Znalazlem tez inny przyklad w niecie ktory sam odpytuje co 3s
    No ale nadal nie dziala
    Testuje tez innym programem to co przychodzi z plc i odpytywanie dziala i tak to wyglada:
    Obrazek
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    ------------------------ [ Dodano po: 42 minutach ]

    Sprawdzilem scanerem co nadaje sterownik i juz jest dobrze znaczy wysyla zapytanie:Rx:01 03 10 01 00 01 D1 0A i wzamian ja programem mu odsyłam Tx:01 03 02 07 BF FB C4
    ale na wyswietlaczu mam same 0000

    teraz to wyglada tak
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Obrazek

    Może ma ktoś jakiś pomysł jak to naprawić???



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lis 2014, o 19:54 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    UUUU Teraz to się już zakręciłem totalnie nie wiem jak to wykorzystać. POMOCY!!!

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lis 2014, o 20:40 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    W odpowiedzi dostałem wartosc 196 lub hex C4 a to jest ostatni znak w calej ramce CRC
    Caly wynik jaki powinnien odebrac to 01 03 02 07 bf fb c4 z czego mnie interesuje 07 BF bo to tu jest zawarta wartosc

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Ostatnio edytowano 9 lis 2014, o 20:49 przez endurasek, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lis 2014, o 21:17 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    Aż mi głupio :oops:
    Już jest mega postęp!!!!! PLC komunikuje sie ze sterownikiem i na wyświetlaczu mam juz caly adres 00 01 03 02 07 FB C4
    No to teraz jak wyciągnąć z tego to 07 FB ??



    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lis 2014, o 21:51 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    Ale jak chce wyswietli sama wartość "1983" to juz sa bledy na wyswietlaniu. Bo tak samą wartość pokazuje dobrze tylko musialem zmienic zakres. CHyba cza by oba slowa ze soba skleic i dopiero wyswietlic?

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lis 2014, o 22:35 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    wszytko bylo by fajnie jak bym wiedzial jak przypisac 07 do jednej zmiennej a BF do innej i wtedy bym to polaczyl chyba tak
    Składnia: [ Pobierz ] [ Ukryj ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lis 2014, o 23:01 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    samo laczenie jest oki ale w programie juz nie dziala wyswietlaja sie dziwne lidzby



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lis 2014, o 23:07 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    dalej to samo na wyswietlaczu 16944 sie pojawia dla 5 i 6 5 i 7 sprawdzalem i tez nie dziala

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lis 2014, o 23:32 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    bez zmian a moze ja zle bajty zmieniam bo kabinuje z ta 5 i 6 zmieniajac na 5 i 7 itp

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 9 lis 2014, o 23:40 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    nie no wypisuje FB 07

    01 03 02 07 BF FB C4 a tak wyglada cala ramka wiec odczytuje zle bity


    a teraz wyswietla 07BF
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    A tu jest chyba prawidlowy kod zaraz jeszcze posprawdzam

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    A tu jeszcze dodalem ze wymazuje to co niepotrzebne z wyswietlacza jak sterownik wylaczam
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Wydaje się że jest wszystko OKI wiec wielki dzieki za poświęcony mi czas Niveasoft, jeszcze jutro posprawdzam z innymi zmienymi.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 lis 2014, o 13:28 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    Jak na razie wszystko smiga tylko jedna rzecz mnie zasmuciła bo przeczytalem helpa i znalazlem tylko to
    · 03 : read register(s)

    · 06 : write single register

    · 16 : write multiple registers


    A nie ma read discret input lub read coil ;(

    Jeszcze mam takie pytanko w jaki sposob mam skonfigurowac plc i wyswietlacz ze bym mogl miec jeden sterownik PLC i kilka wyświetlaczy??? na ktorych bedzie zawsze wyswietlane to samo



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 lis 2014, o 15:38 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    No czytałem i niestety w bascomie nie ma pełnej biblioteki modbus rtu ale za to w arduino juz jest. Jeszcze jak znajde chile to musze ten program trochę przerobić bo teraz mamy tylko jedna zmienna a przy dwóch to już jest zmiana bo wtedy to chyba wygląda tak 01 03 04 07 BF 07bf i suma kontrolna i teraz program musi Rozróżnić czy są dwa lub cztery baty danych i odpowiednio zareagowac.

    Moment mam przykla:
    dla rejestru PLC rejestr D1= 4098 mam przypisana wartosc 1983 -> hex 07 BF
    dla rejestru PLC rejestr D2= 4099 mam przypisana wartosc 2014 -> hex 07 DE

    zapytanie wiec wyglada tak 01 03 10 01 00 02 91 0B
    a odpowiedz powinna tak wygladac 01 03 04 07 BF 07 DE 48 CB

    czyli musze rozpoznac wartosc 04 bo tu jest zawarta ilosc bajtow przesylanych w tym przypadku 4
    no i dalej jesli lidzba_bitów=2 to wykonaj jeden warunek np.wyswietl wartosc locate 1,1 lcd"jedna wartosc do odczytania"
    no a jesli liczba_bitow=4 to wykonaj drugi warunek gdzie wynik pierwszy_bit locate 1,1 lcd"pierwsza wartosc"
    drugi_bit locate 2,1 lcd"druga wartosc"

    I jeszcze jedno zaoważyłem ze jesli zatrzymam sterownik to wyswietli wartosc 0 ale jesli odepne komunikacje to zostaje poprzednia wartosc na ekranie. Myslalem wsadzeniem CLS ale po tym pewnie dziwnie zacznie ekran mrugac albo musze sprawdzic jak wyglada ramka gdy panel nie dostanie odpowiedzi.

    Zastanawiam się czy przypadkiem w PLC nie umiem przypisac jakiegość wejscia INPUT X1 przypisac do jakiegoś rejestru D.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 lis 2014, o 16:17 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    Z tym Preamplifier to musialm sie udac do wujka Google bo nie umialem zaskoczyc co to jest. :oops:

    Tym locate 4,1 to tak nie bardzo bo zamazuje wynik. Gdzies widzialem ramke ktora mowi ze po wyslaniu zapytania nie uzyskal odpowiedzi...to wynik...

    dziwnym trafem po tej operacji che nagle wyswietlac wartosc FB C4 a sam wynik po chwili znika z wyswietlacza tak ze chyba nie tedy droga



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 lis 2014, o 17:09 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    Nie nadal nic tylko reaguje na wyl PLC jak odpinam kabel to wartosc zostaje

    If Ischarwaiting(#1) > 0 Then a to zwraca wartosc jesli jest odpowiedz to moze by tu bylo szybciej



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 lis 2014, o 19:20 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    Oki jutro sprawdze bo na razie nie mam sterownika



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 lis 2014, o 15:09 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    To co mi przesłałeś nie działąło dalej ale troche to przerobiłem i juz zaskoczylo jak ma

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 lis 2014, o 18:35 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    I to wszystko w bascomie napisane nie pozostaje mi nic innego jak pogratulowac weny twórczej. A co tam po I2C masz?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 lis 2014, o 19:19 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    Może za nim pojade dalej z tym koksem to dla potomnych opisze co zrobilem.
    Konfiguracja dotyczy sterownika DELTA SS2 + Atmega8 po linie RS485 RTU
    Sterownik delta jest skonfigurowany następująco:
    *******PLC jako slave*******

    M1143- TRYB TRANSMISJI
    RTU - SET <--- ten nas interesue
    ASCII - RESET

    16#0081 - USTAWIENIE PREDKOŚCI NA 9600

    M1120 - ZAŁĄCZENIE COM2 ( TO TAKIE MALE ZIELONA WTYCZKA POD STEROWNIKIEM PLC PISZE BO MA JESZCZE JEDNO OD GORY ALE TYLKO JAKO RS232 MOZNA USTAWIC)

    D1121 - NR SLAVE u nas jest to 1

    M1002 - jest to impuls jaki sterownik wystawia po wejsciu w tryb RUN

    M1000 - jest to sygnał wysoki jaki sterownik wystawia po wejsciu w tryb RUN

    Instrukcja MOV "przesuwa" wartość 1983 do rejestru D1 to jest rejestr 4098

    We wyniku czego uzyskujemy ustawienia komunikacyjne
    RTU,9600,N,8,1
    gdzie N - parity jest domyslnie wył
    8 - tez jest domyslne ale dla rtu musi byc 8

    Dla zobrazowania
    Obrazek

    *******atmega8 jako master**************
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Gdzie nie wiem czemu wartość 4097 musi być wpisana że by odczytac rejestr sterownika PLC 4098 ( nie wiem czemu)

    Sterownik w trybie RUN
    Obrazek
    Sterownik w trybie STOP
    Obrazek
    Sterownik z odpiętą komunikacja
    Obrazek

    Jak znajdę chwile to postaram się to troche rozbudowac o wiecej funkcji



    Ostatnio edytowano 15 lis 2014, o 08:52 przez endurasek, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 lis 2014, o 06:12 
    Offline
    Użytkownik

    Dołączył(a): 29 cze 2013
    Posty: 209
    Lokalizacja: Tarnowskie Góry
    Pomógł: 0

    A no dalej odczyt wiekrzej ilosci danych po MODBUS-rtu,rozpoznawanie ramki, na innym poscie juz kabinuje jak odczytac temperature z przetwornika PT100, a na koncu wyladuje to u mnie w domu ;) to sterowania solarem,piecem,zelektrozaworami itd....
    Tylko na razie musze sie uporac z odczytem temp z takiego malego ustrojstwa topic9175.html



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 lis 2017, o 15:12 
    Offline
    Nowy

    Dołączył(a): 06 lis 2017
    Posty: 7
    Pomógł: 0

    witam poszukuję jakiegoś przykładu gdzie atmega będzie slavem i będzie odczytywał dane gdy master zapisze w danym rejestrze w slave oraz możliwośc odczytu z danych rejestrów ze slave'a
    może ktoś z kolegów już takie coś stworzył



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO