Pomoc w pisaniu programu z wykorzystaniem MODBUS
Pomoc w pisaniu programu z wykorzystaniem MODBUS
Wartość 2 zapisz do rejestru o adresie 25 przy użyciu polecenia Preset Single Register (kod 6, może dla VI z biblioteki to polecenie ma inną nazwę np. Write Single Register?). Poza tym, jeśli chcesz w jednej ramce struktury wykonać dwa polecenia to VI-je połącz szeregowo, a nie tak, jak na diagramie blokowym zamieszczonym w poprzedniej wiadomości. Zlecasz tam też wykonanie polecenia Read Coils (w terminologii Modbusowej Read Coil Status, kod 1), a regulator go nie wykonuje, dlatego dostajesz błąd 6002.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Pomoc w pisaniu programu z wykorzystaniem MODBUS
Witaj.
Cos ci sie pomieszalo, nie dotykaj coilscow, bo z nimi niemasz nic do czynienia. Z tego co pamietam z dokumentacji twojego urzadzenia to masz do dyspozycji tylko rejestry.
Czyli zapisujesz tylko do Write Multiple Registers.
Niewiemy jak co masz podlaczone Fizycznie do twojego Kontrolera.
Odczytujac register 6 - powinienes otrzymac info o statusie wszystkich outpotow. ON/OFF (1/0)
Register 7 podaje wartosci voltowe na wyjsciu...
Ale zalozmy za masz grzalke podlaczona do 2.
Aktywujesz ja podajac wartosc 1 na register 29
Grzanie odbywa sie automatycznie poprzez wprowadzenie wartosci PID- Mozesz to zrobic z wyswietlacza badz z poziomu labview.
Wszystko jest napisane w tym linku
http://www.apar.pl/images/oldprodukt/um_ar6x0_eng.pdf ostatnia tabelka..
Pierwsza kolumna to numery registrow, druga to dopuszczalne wartosic, opis, mozliwe akcje R/WR...
Cos ci sie pomieszalo, nie dotykaj coilscow, bo z nimi niemasz nic do czynienia. Z tego co pamietam z dokumentacji twojego urzadzenia to masz do dyspozycji tylko rejestry.
Czyli zapisujesz tylko do Write Multiple Registers.
Niewiemy jak co masz podlaczone Fizycznie do twojego Kontrolera.
Odczytujac register 6 - powinienes otrzymac info o statusie wszystkich outpotow. ON/OFF (1/0)
Register 7 podaje wartosci voltowe na wyjsciu...
Ale zalozmy za masz grzalke podlaczona do 2.
Aktywujesz ja podajac wartosc 1 na register 29
Grzanie odbywa sie automatycznie poprzez wprowadzenie wartosci PID- Mozesz to zrobic z wyswietlacza badz z poziomu labview.
Wszystko jest napisane w tym linku
http://www.apar.pl/images/oldprodukt/um_ar6x0_eng.pdf ostatnia tabelka..
Pierwsza kolumna to numery registrow, druga to dopuszczalne wartosic, opis, mozliwe akcje R/WR...
Re: Pomoc w pisaniu programu z wykorzystaniem MODBUS
Nie można użyć polecenia Write Multiple Registers (w terminologii Modbusowej Preset Multiple Registers, kod 16, http://web.eecs.umich.edu/~modbus/docum ... US_300.pdf, strony 46-47), gdyż jest ono przez regulator nie obsługiwane - w http://www.apar.pl/images/oldprodukt/inst_ar6x0.pdf na stronie 20 jest napisane ,,Dostępne funkcje : READ - 3 lub 4, WRITE - 6".
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Pomoc w pisaniu programu z wykorzystaniem MODBUS
Czyli musi zapisywac je pojedynczo... nie studiowalem calego manuala. Tym powinien sie zajac zainteresowany.
-
- Posty: 9
- Rejestracja: 04 mar 2015 14:30
- Wersja środowiska: LabVIEW 2013
Re: Pomoc w pisaniu programu z wykorzystaniem MODBUS
Witam wszystkich!
Udało mi się napisać działający program. Bardzo dziękuje za wszystkie wskazówki, które zostały mi udzielone. Jesteście wielcy
Jak skończę poprawianie drobnostek (ustawianie parametrów PID) to podeślę parę screenów żeby się pochwalić. Jeszcze raz DZIĘKI
Udało mi się napisać działający program. Bardzo dziękuje za wszystkie wskazówki, które zostały mi udzielone. Jesteście wielcy

-
- Posty: 9
- Rejestracja: 04 mar 2015 14:30
- Wersja środowiska: LabVIEW 2013
Re: Pomoc w pisaniu programu z wykorzystaniem MODBUS
Witam. Mam jeszcze jedno pytanie. Chciałem aby użytkownik z poziomu Labview ustawiał zadaną temperaturę i zrobiłem coś takiego jak na fotografii. W rejestrze 26 zapisuję wartość podana przez użytkownika. Nie dość, że na wyświetlaczu pojawiają się przypadkowe liczby to aby program działał trzeba co chwilę klikać continue na komunikacji (na fotografii). Próbowałem podbiąć całość pod różne porty USB bez skutku. Mielibyście dla mnie jakieś inne rady.
EDIT: Juz poprawiłem wyświetlanie danych na wyświetlaczu, jest o.k. ale ten komunikat wciąż i wciąż wraca (tak co 1 minutę).
EDIT: Juz poprawiłem wyświetlanie danych na wyświetlaczu, jest o.k. ale ten komunikat wciąż i wciąż wraca (tak co 1 minutę).
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Pomoc w pisaniu programu z wykorzystaniem MODBUS
Modbus jest prostym protokolem i ma swoje humorki. Problem z czasem jest czesto pojawiajacym sie bledem. Tzn jak ocos go zapytasz, to musisz czekac na odpowiedz. Jezeli w czasie pomiedzy pytaniem a odpowiedzia chcesz wykonac inne czynnosci/zapytania czesto wywala blad. Czas jest uzalezniony od wielu czynnikow, zarowno fizycznych jak i softwerowych. Dlugosc kabla, jego srednica, szybkosc transmisji, ilosc daneych do przeslania itd.
Pobaw sie opoznieniami, lub zrob kolejki...
Pobaw sie opoznieniami, lub zrob kolejki...
Ostatnio zmieniony 13 mar 2015 09:06 przez Jamal79, łącznie zmieniany 1 raz.
-
- Posty: 9
- Rejestracja: 04 mar 2015 14:30
- Wersja środowiska: LabVIEW 2013
Re: Pomoc w pisaniu programu z wykorzystaniem MODBUS
Dzięki za radę. Zrobiłem opóźnienie i faktycznie to pomogło.