Strona 1 z 1

Hamownia w LV

: 26 lip 2010 20:35
autor: machoney
Witam,
mam kartę Advantecha USB-4711A, przetwornik masy (30kg) i czujnik impulsów. Chcę zrobić małą hamownię. W chwili obecnej mam doprowadony sygnał z przetwornika w postaci naięcia. Potrzebuję teraz zrobić kalibrację odważnikiem i zapisać ją tak, żeby przy polejnym uruchomieniu VI nie trzeba znów kalibrować. Zapewne dla większości z Was to banał dlatego proszę o poradę jak to zrobić żeby było proste i skuteczne. Dla przykładu pokazuję moją VI której hamownia ma być częścią. Jeżeli zobaczycie coś co nie jest "zgodnie ze sztuką", proszę o krytykę i porady. pzd

Hamownia w LV

: 26 lip 2010 23:35
autor: Pitol
Widzę, że coś ruszyło z tą kartą u Ciebie ;)
Późno jest, a ja już po paru drinkach więc się będę streszczał: o zapisie kalibracji napiszę Ci jutro rano, jak będę w pracy a teraz tylko będę krytykował :D :D :D :D
1. Druty prowadzimy od lewej do prawej, a nie na odwrót (jak to ma miejsce w środkowej części Twego kodu). Jak się nie mieści to zrób tak, żeby się mieściło.
2. Jak już podpinasz drut błędu to go podepnij do wszystkich bloczków tak, żeby tworzyło to ciąg jakiś. Bo w tym momencie to tak nijak jest popodpinane.
Na więcej nie mam siły dzisiaj...

Hamownia w LV

: 27 lip 2010 02:08
autor: bogdani
Witaj

Ja oprócz tego co już Pitol napisał podam jeszcze tyle czerwona kropka przy kontrolce oznacza, iż środowisko realizuje w tym miejscu dopasowanie danych (konwersję) przez co jest dodatkowa kopia danych tworzona w pamięci - masz kilka takich kropek, co niekorzystanie wpływa na wykorzystanie pamięci.

Co do jakości przewodów to nie będę się wypowiadał, bo ja bym się wstydził pokazać coś takiego - nie widać gdzie przewód ma początek i koniec, puszczasz przewody pod kontrolkami i funkcjami, itd. Sam sobie utrudniasz życie tworząc taki kod i potem jest on trudniejszy w debugowaniu.

Co do twojego pytania, to możesz to zrealizować w ten sposób, że w czasie kalibracji nieodczytywana jest wartość z czujnika i następnie jest ona zapisywana do pliku. Przy starcie aplikacji, wystarczy tylko odczytać wartość z pliku i już nie musisz ponownie robić kalibracji.

Zanim pokażesz znowu jakiś fragment kodu, to go posprzątaj, łatwiej nam będzie ci odpowiedzieć i tobie zrozumieć jak to działa.
bogdani

Re: Hamownia w LV

: 27 lip 2010 06:21
autor: machoney
Oczywiście zastosuje się do wszystkich uwag. Pitol, generowanie zliczonej liczby pulsów do silnika krokowego zrobiłem na atmedzie bo niestety na karcie ADV nie wyszło. Pierwszy tor analoga własnie do tego służy - ważę zbiornik (tu wystarczy mi samo napięcie żeby zadać wartość zadaną), jeśli napięcie jest niższe od zadanej, podaj impuls na wyjście DO0 do którego podpięta jest atmega. Tam już realizowany jest przeskok o 120' na silniku (dozowanie do zbiornika). Jak już pisałem, drugi tor analoga to hamownia. Ponieważ impulsy też liczy mi atmega (na przerwaniach) chcę impulsy odbierać przez RS232 i przeliczać z moc i moment obrotowy na podst. tych dwóch danych. Zapis do pliku mam zrobiony (choć nie wiem czy to tak do końca prawidłowo) tak, że tworzy mi kolumnę porządkową (1, 2, 3, itd) oraz dwie kolumny z wartościami AI0 i AI1. Jeżeli ten sam sposób będzie dobry do zapisu tablicy kalibracyjnej to mam krok do przodu. pzd

Hamownia w LV

: 27 lip 2010 10:11
autor: Pitol
To pokaż nam Twój zapis do pliku to Ci powiemy czy trzeba coś w nim poprawić

Re: Hamownia w LV

: 27 lip 2010 11:52
autor: machoney
sorki, ale nie zwróciłem uwagi, że nie widać na screenie. już dołączam. W pierwszej opcji myślałem, żeby zrobić kalibrację na EVENT ale nie wiem czy to dobra droga.

EDIT:
odnośnie czerwonych kropek: jak mam ich unikać? Mam dwa bloczki i żeby je polączyć musiałem dać konwersję. Jeżeli jest inna możliwość to ja jej nie znam i będę wdzięczny za optymalizację pracy mojej VI

Re: Hamownia w LV

: 27 lip 2010 12:46
autor: Pitol
Nie wchodząc w szczegóły to możesz zrobić to tak:
CAL.PNG

Re: Hamownia w LV

: 27 lip 2010 21:13
autor: machoney
Oto moja kolejna odsłona VI. Obecnie mam zrobione tworzenie pliku z kalibracją i mam nadzieję, że troszkę lepiej poukładane. Ustawiam przełącznik na kalibrację zera, włączam kalibrację i robi mi sią pojedynczy wpis do pliku w postaci [napięcie_0, 0] i wyłącza się kalibracja. Następnie ustawiam przełącznik na pozycję zakres i wpisuję w Edita wartość jaką kładę na wagę (np 30kg). Ponownie łączam kalibrację i robi mi się drugi wiersz w pliku [napięcie_zakres, 30] i wyłącza się automatycznie kalibracja. Jeszcze nie wiem jak u mnie zrobić kalibrację na podstawie np 10 pomiarów ale czy to będzie konieczne to będzie zależało czy wskazanie będzie pływać.

Ponieważ pomiar wagi jest na mostku tensometrycznym może zastosowanie Convert Strain Gauge Reading VI rozwiązaloby problem jakichkolwiek przeliczeń?

Hamownia w LV

: 28 lip 2010 09:48
autor: Pitol
kalibrację na podstawie np. 10 pomiarów łatwo możesz zrobić wstawiając odczyt z karty w pętlę a wyniki uśrednić i dopiero wtedy zapisać.

Re: Hamownia w LV

: 28 lip 2010 11:17
autor: machoney
Jasne że tak, większym problemem dla mnie jest gdzie to wsadzić w połączeniach. Obecnie mam taki plan, żeby drugi tor analoga powtórzyć w bloku od kalibracji i tam zapętlić te 10 pomiarow. Druga możliwość to obecny tor wsadzić w case i albo przepuścić analoga raz, albo jeśli kalibracja jest TRUE to analog będzie w pętli. Które rozwiązanie jest bardziej poprawne?

Re: Hamownia w LV

: 28 lip 2010 11:59
autor: Pitol
hmm... A może lepiej byłoby przemyśleć architekturę i stworzyć ją od nowa? Ciężko mi jest osądzić po kawałkach kodu, które wkleiłeś, ale może lepszym rozwiązaniem byłaby maszyna stanów. Mógłbyś wtedy spokojnie wykorzystać ten sam kawałek kodu do kalibracji jak i zwykłego pomiaru. Jeśli nie wiesz jak się do tego zabrać albo będziesz miał z tym problemy to napisz to Ci pomożemy ;)

Re: Hamownia w LV

: 28 lip 2010 14:02
autor: machoney
Zobacz jak wygląda moje VI w tej chwili. Jako efekt końcowy VI ma realizować następujące zadania:
tor dla pierwszego AI:
- czytam AI0. Jeżeli wartość jest mniejsza od zadanej wystaw impuls na DO0 (do atmegi. chciałbym zrobić sterowanie elektrozaworami w LV ale nie umiem realizować zadań w czasie rzeczywistym więc robi mi to atmega. Powinno być tak, że otwieram zawór co zajmuje ok 300ms, daje impuls do atmegi aby przestawiła silnik o 120', czekam 100ms i zamykam zawór czyli kolejne 100ms - chciałbym wszystko mieć w LV)
- knob "opoznienie' pozwala regulować odstęp pomiędzy kolejnymi impulsami dla atmegi
- AI0 może być kalibrowane na kg ale zadawanie SP jako napięcie też jest do zaakceptowania

Dla drugiego AI niestety muszę zrobić kalibrację. Ilość impulsów chcę odczytywać z RS232 bo znów nie wiem jak w czasie rzeczywistm zliczać impulsy na karcie 4711A wykonując inne zadania np dla toru AI0 nie gubiąc impulsów. Z atmegi dostanę bajt z liczbą impulsów w jednostce czasu (np imp/sek). Wskazanie z czujnika muszę przeskalować tak, żeby hamownia przeliczyła mi moment obrotowy i moc.

Pitol, jeżeli możesz mi pomóc, proszę napisz na PW (nawet z ceną) a opiszę dokładnie o co mi chodzi bo jak wiesz już trochę czasu nad tym siedzę i ciągle kicha. Jak coś mi ruszy to utknę w innym miejscu :(

Re: Hamownia w LV

: 30 lip 2010 23:21
autor: machoney
Cześć,
Pitol, czy doszła do Ciebie na PW moja wiadomość z dziś? ciągle ma "do wysłania" i nie wiem czy to wyszło odemnie. pzd

Hamownia w LV

: 31 lip 2010 00:56
autor: Pitol
Do wysłania znaczy, że wysłałeś, tylko ja jeszcze nie odebrałem ;) jak odbiorę (czyli właśnie teraz) to przeniesie się do folderu wysłane. Lekko porąbany system trochę. W FAQ jest to wyjaśnione ale kto tam zagląda? :D