ATNEL tech-forum
https://forum.atnel.pl/

BASCOM MODBUS RTU
https://forum.atnel.pl/topic9143.html
Strona 1 z 1

Autor:  endurasek [ 8 lis 2014, o 10:46 ]
Tytuł:  BASCOM MODBUS RTU

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.

Autor:  endurasek [ 9 lis 2014, o 09:55 ]
Tytuł:  Re: BASCOM MODBUS RTU

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.

Autor:  endurasek [ 9 lis 2014, o 14:13 ]
Tytuł:  Re: BASCOM MODBUS RTU

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ć???

Autor:  endurasek [ 9 lis 2014, o 19:54 ]
Tytuł:  Re: BASCOM MODBUS RTU

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.

Autor:  endurasek [ 9 lis 2014, o 20:40 ]
Tytuł:  Re: BASCOM MODBUS RTU

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.

Autor:  endurasek [ 9 lis 2014, o 21:17 ]
Tytuł:  Re: BASCOM MODBUS RTU

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.

Autor:  endurasek [ 9 lis 2014, o 21:51 ]
Tytuł:  Re: BASCOM MODBUS RTU

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.

Autor:  endurasek [ 9 lis 2014, o 22:35 ]
Tytuł:  Re: BASCOM MODBUS RTU

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.

Autor:  endurasek [ 9 lis 2014, o 23:01 ]
Tytuł:  Re: BASCOM MODBUS RTU

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

Autor:  endurasek [ 9 lis 2014, o 23:07 ]
Tytuł:  Re: BASCOM MODBUS RTU

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.

Autor:  endurasek [ 9 lis 2014, o 23:32 ]
Tytuł:  Re: BASCOM MODBUS RTU

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.

Autor:  endurasek [ 9 lis 2014, o 23:40 ]
Tytuł:  Re: BASCOM MODBUS RTU

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.

Autor:  endurasek [ 10 lis 2014, o 13:28 ]
Tytuł:  Re: BASCOM MODBUS RTU

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

Autor:  endurasek [ 10 lis 2014, o 15:38 ]
Tytuł:  Re: BASCOM MODBUS RTU

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.

Autor:  endurasek [ 10 lis 2014, o 16:17 ]
Tytuł:  Re: BASCOM MODBUS RTU

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

Autor:  endurasek [ 10 lis 2014, o 17:09 ]
Tytuł:  Re: BASCOM MODBUS RTU

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

Autor:  endurasek [ 10 lis 2014, o 19:20 ]
Tytuł:  Re: BASCOM MODBUS RTU

Oki jutro sprawdze bo na razie nie mam sterownika

Autor:  endurasek [ 11 lis 2014, o 15:09 ]
Tytuł:  Re: BASCOM MODBUS RTU

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.

Autor:  endurasek [ 11 lis 2014, o 18:35 ]
Tytuł:  Re: BASCOM MODBUS RTU

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

Autor:  endurasek [ 11 lis 2014, o 19:19 ]
Tytuł:  Re: BASCOM MODBUS RTU

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

Autor:  endurasek [ 12 lis 2014, o 06:12 ]
Tytuł:  Re: BASCOM MODBUS RTU

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

Autor:  grabek_radek [ 6 lis 2017, o 15:12 ]
Tytuł:  Re: BASCOM MODBUS RTU

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ł

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/