przez Mateusz Sikorski » Pn, 15 paź 2012, 07:08
Witam Panie Łukaszu,
nie wiem dlaczego próbuje Pan czytać wartość numeru slave, skoro sam Pan je definiuje ( Net #1 w podprogramie dotyczącym odczytu Modbus).
Poniżej przesyłam Panu moją propozycję:
Algorytm:
Net#1 - sprawdzenie czy adres slave nie jest większy niż 114 - jeśli tak to powrót do slave 100
Net#2 - bit MB0 (normalnie wyłączony) powoduje próbę odczytu rejestru 52 ze slave MI99 (domyślnie 100) i zapis do rejestru MI8. W przypadku udanego odczytu następuje przepisanie rejestru MI8 do rejestru MI130 (ponieważ w MI129 wpisana jest wartość 130), zainkrementowanie rejestru MI129 oraz MI99. Na końcu następuje załączenie MB0, który przez 1 skan programu utrzyma wartość 1 a w następnym zresetuje się. Dzięki takiemu zabiegowi, będziemy mieli ciągły odczyt rejestru ze wszystkich slave'ów.
Net#3 - w przypadku nie połączenia się ze slave'm nastąpi zapis wartości 9999 do konkretnego rejestru od MI130-MI144.
Mateusz Sikorski
Elmark Automatyka S.A.