V130 odczyt parametrów po MODBUS

Pytania i odpowiedzi dotyczące sprzętu Unitronics

Moderatorzy: Marek Sikora, Mateusz Sikorski

V130 odczyt parametrów po MODBUS

Postprzez Braddock » Pt, 10 sty 2020, 12:03

Na wstępie zaznaczę że dopiero uczę się programowania PLC i właśnie napotkałem pierwszy problem. Potrzebuje odczytać kilka wartości przy użyciu MODBUS RTU (485). W załączniku kawałek programy, a pod tym linkiem DTR do przepływomierza http://wrzucplik.pl/pokaz/1903212---jgzn.html.
Moje pierwsze odpytanie o przepływ chwilowy który wg. DTR jest na rejestrze 1116 powinno mi zapisać wartość w komórce MF1 i faktycznie tak się dzieje, ale dodatkowo zapisuje mi jeszcze wiele innych wartości na pobliskich MF dlatego reszta wartości które chce odczytać się nie wyświetlają. Jest mi ktoś w stanie pokazać jak prawidłowo powinienem odpytywać przepływomierz o wartości które potrzebuje i później przepisać je z MF na ML
Załączniki
modbus.zip
(94.24 KiB) Pobrane 567 razy
Braddock
 
Posty: 6
Dołączył(a): Pt, 10 sty 2020, 11:49

Re: V130 odczyt parametrów po MODBUS

Postprzez Mateusz Sikorski » Pt, 10 sty 2020, 12:55

Witam,
Zmodyfikowałem trochę pański program. Niezbędne jest użycie styku normalnie zamkniętego MB 0 przed każdym blokiem do wywołującej funkcję Modbus. Inkrementowanie należy uzależnić od zbocza opadającego MB 0 (net #7).
Proszę sprawdzić teraz program i dać znać, czy każda wartość od DW 1 do DW 8 rosną w tym samym tempie? Czy rejestry od MI1000 do MI1003 są zawsze "0"?
"... zapisuje mi jeszcze wiele innych wartości ..." - tzn. ile?
Wartości przepływomierzy odczytuje pan jako Float (prawidłowy typ danych, tak?) i jeżeli chce pan je zapisać do ML (oddzielnie część przed przecinkiem i oddzielnie część po przecinku) to należy użyć bloku INV (A+B/n) z Math -> Float -> Convert.
Załączniki
modbusFIX.rar
(100.17 KiB) Pobrane 551 razy
Mateusz Sikorski
Elmark Automatyka S.A.
Mateusz Sikorski
 
Posty: 564
Dołączył(a): Śr, 13 lip 2011, 08:08

Re: V130 odczyt parametrów po MODBUS

Postprzez Braddock » Pt, 10 sty 2020, 13:13

Wielkie dzięki w poniedziałek będę miał możliwość sprawić ten program. Zapisuje więcej wartości na zasadzie że ja pytam np. o rejestr 1116 i w całym programie mam tylko to jedno zapytanie i chce tą wartość zapisać na MF1 to na dalszych MF na inne parametry typu przepływ sumaryczny ujemy itp. i nie są to jakieś pozostałości bo to dane też na bieżąco się zmieniają tak samo jak wartość MF1 z każdym odczytem.
Wydaje mi się że float to dobry typ danych tak wywnioskowałem z tej tabeli która jest w załączniku.
Załączniki
Float.jpg
(200.58 KiB) Pobrane 514 razy
Braddock
 
Posty: 6
Dołączył(a): Pt, 10 sty 2020, 11:49

Re: V130 odczyt parametrów po MODBUS

Postprzez Mateusz Sikorski » Pt, 10 sty 2020, 13:38

OK, w takim razie czekam na informacje.
Jeśli nadal będzie pobierał więcej niż jeden MF to proszę wpisać długość wektora w każdym zapytaniu = "1" zamiast "2".
Mateusz Sikorski
Elmark Automatyka S.A.
Mateusz Sikorski
 
Posty: 564
Dołączył(a): Śr, 13 lip 2011, 08:08

Re: V130 odczyt parametrów po MODBUS

Postprzez Braddock » Pn, 13 sty 2020, 10:26

Po wgraniu tego programu wartości szaleją tzn. liczba która jest w MF2 to jest odczyt z rejestru 1132 która powinna być zapisana na MF3, a jest na 2. MF3 i 4 są puste na MF1 i 2 wartości się zmieniają jednocześnie czyli gdy program pyta o wartość którą ma zapisać na MF1 zmienia się też wartość na MF2 i odwrotnie. Gdy w programie zostawię tylko jedna pytanie to nie ma problemu mogę odpytać o każdy rejestr i mam poprawna wartość :/ Wartości DW rosną równo.
Dodam że wartości VF2A i VF2B powinny być 0.
Załączniki
MF.jpg
(219.19 KiB) Pobrane 499 razy
Braddock
 
Posty: 6
Dołączył(a): Pt, 10 sty 2020, 11:49

Re: V130 odczyt parametrów po MODBUS

Postprzez Mateusz Sikorski » Pn, 13 sty 2020, 11:03

Proszę wydłużyć czas odpytywania z 0,02s na np. 0,05s. Czy nadal wskazuje błędnie? Jeśli tak to w załączniku przesyłam ten sam program, ale przestawiłem kolejność wykonywania drabinek.
Załączniki
modbusFIX2.rar
(101.2 KiB) Pobrane 551 razy
Mateusz Sikorski
Elmark Automatyka S.A.
Mateusz Sikorski
 
Posty: 564
Dołączył(a): Śr, 13 lip 2011, 08:08

Re: V130 odczyt parametrów po MODBUS

Postprzez Braddock » Pn, 13 sty 2020, 14:02

Wgrałem ten program i wydłużyłem czas, nic to nie zmienia. Zmieniłem też wartość czytanej długości z 2 na 1 to otrzymałem komunikat błędu 2.
Zrobiłem taki myk że zapisuje dane z zapytań w większych odstępach od siebie na MF i już się nie nadpisują, ale zauważyłem że działa tylko pierwsze zapytanie reszta zawraca "0" (gdy pytam o te rejestry z osobna to mam prawidłowe wartości) natomiast to pierwsze owszem zwraca mi oczekiwana liczbę na MF1 plus zapisuję jakaś dodatkową wartość na MF0 bez mojej zgody, (zaznaczyłem ja na screenie) ta liczba na MF0 zmienia się z każdym odczytam tak samo jak MF1. Powoli kończa mi się pomysły :D może trzeba coś inaczej skonfigurować, albo w jakiś inny sposób odpytać ten przepływomierz :D
Załączniki
wartosc.jpg
(170.28 KiB) Pobrane 521 razy
Braddock
 
Posty: 6
Dołączył(a): Pt, 10 sty 2020, 11:49

Re: V130 odczyt parametrów po MODBUS

Postprzez Mateusz Sikorski » Pn, 13 sty 2020, 14:41

Czyli nie to jest problemem. Wydaję mi się, że to problem prezentacji zmiennej 32bitowej - w pańskim Slave jest Little-Endian, natomiast Unitronics zczytuje, jako Big-Endian. Inaczej - dwie 16 bitowe wartości w zmiennej są zamienione miejscami. Żeby temu zaradzić należy wykonać SWAP BYTES (nie można wykonywać na Float tylko na innej 32bitowej zmiennej - np. XL) a następnie skopiować pamięć danego XL do MF. W załączniku przykład - powinien działać.
Załączniki
modbusFIX3.rar
(107.23 KiB) Pobrane 555 razy
Mateusz Sikorski
Elmark Automatyka S.A.
Mateusz Sikorski
 
Posty: 564
Dołączył(a): Śr, 13 lip 2011, 08:08

Re: V130 odczyt parametrów po MODBUS

Postprzez Braddock » Cz, 16 sty 2020, 12:28

Wielkie dzięki, wszystko działa jak należy :)
Braddock
 
Posty: 6
Dołączył(a): Pt, 10 sty 2020, 11:49


Powrót do Unitronics



Kto przegląda forum

Użytkownicy przeglądający to forum: Google [Bot] i 12 gości

cron