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



Teraz jest 28 mar 2024, o 16:01


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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 ]
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 0 gości


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO