LV 8 i TCP

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
marte
Posty: 30
Rejestracja: 26 maja 2006 00:00

LV 8 i TCP

Post autor: marte »

Witam!
Przedewszystkim witam wszystkich.
Problem już poruszany był na forum kilkanaście razy, jednak po przeczytaniu wszystkich postów nie udało mi sie poprawnie uruchomić mojej aplikacji. Obecnie jesten na etapie projektowania ukladu regulacji z 3 zbiornikami i 2 regulatorami, które sterują wypływami ze zbiorników. Chciałem połączyć symulator i regulatory z wykorzystnaiem TCP. Jednak mam problemy z przesyłaniem danych z jednego programu do drugiego. Czy ktoś mógłby rzucić okiem na sposób wykonywania połączenia TCP. I ewentualnie powiedzieć co nie działa poprawnie bądź, źle jest zrobione.


Pozdrawiam

P.S.
Sam symulator i regulatory mogą jeszcze działać niepopranie ale bo nie mam jak przetestować tego na tym obiekcie.

Dziekuje za pomoc.
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: LV 8 i TCP

Post autor: PMaj »

Witam

Skoro zassałem te pliki i je otworzyłem, to sie wypowiem:

Ładny interface ... calkiem calkiem - i dobrze, że pokazuje sie jako pierwszy, bo oto zaraz block diagram i ... nawet mi sie nie chciało białej strzałki wcisnąć.
to tyle odnośnie jakości kodu - i tu rada osobista - popraw go przed uruchamianiem, będziesz mial kilka razy mniej pracy. Wiem z doświadczenia.

Nie wiem wiec dlaczego nie dziala ci komunikacjia, ale to co mozesz zrobić i w Twojej sytuacji będzie łatwe to otworzyć przykład z komunikacją TCPIP - ten simple cos tam i rdzeń komunikacji przewalić do odpowiednich twoich programów. Powinno działać. Wówczas dokładasz funkcjonalność - czyli przekazywanie odpowiednich danych.

PS. W LabVIEW nie piszemy - raczej drutujemy. Wówczas kod jest efektywniejszy. To co zrobiłeś byłby ci wygodniej zaimplementować w CVI - czyli budujesz ladny interfejs na panelu i piszesz kod w c

pozdrawiam
pmaj
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: LV 8 i TCP

Post autor: jogurt_owocowy »

Prawda!
Popraw kod, zredukuj do Twojego problemu i coś się poradzi. Tak to nie bardzo widać co się dzieje.
Jutro postaram się o bardziej owocną wypowiedź;)
marte
Posty: 30
Rejestracja: 26 maja 2006 00:00

Re: LV 8 i TCP

Post autor: marte »

Witam!
Z tym, że kod nie jest czytelny zgodze sie, ale szczerze mówiąc nie widze możliwości uproszczenia go.(czytaj to moj pierwszy projekt w lab view) Nie jest to projekt profesjonalny. Moge postarać się ładniej to poukładać i połączyć, ale dla studentów i na uczelni nie liczy sie aby było optymalnie tylko, żeby działało.(z doświadczenia)
Optymalizacja wg mnie powinna zostać wykonana na samym końcu jak juz problem zostanie rozwiązany.
Przyjże się temu przykładowi z połączenia TCP.
Będe bardzo wdzęczny o bardziej owocną wypowiedź. Interesuje mnie tylko TCP bo z resztą sobie poradze.
Nie do końca rozumiem stwierdzenie, że w lab view raczej drutujemy niż piszemy. Wiem, że to jest język graficzny, ale tego co się nauczyłem rownania różcznikowe opisujące obiekt powinny zostać zapisane w formula node. I tam doprowadzamy odpowiednie parametry oraz wyprowadzamy to co nas interesuje. W moim przypadku poziomy H1 i H2 oraz kva i kv2.
Pozdrawiam....

P.S.
Analiza przykładu z LV nie przyniosła żadnego skutku bo wg mnie mam zrobione podobnie.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: LV 8 i TCP

Post autor: Mikrobi »

marte pisze: Moge postarać się ładniej to poukładać i połączyć, ale dla studentów i na uczelni nie liczy sie aby było optymalnie tylko, żeby działało.(z doświadczenia)
Optymalizacja wg mnie powinna zostać wykonana na samym końcu jak juz problem zostanie rozwiązany.
Z doświadczenia powiem że jedno i drugie to bzdura. Na końcu będziesz miał taki stopień komplikacji kodu że nie będzie ci się chciało go porządkować. Powiesz "dobrze że działa" i zostawisz jak jest.
W wyniku tego będziesz miał nieczytelny kod, który nie bedzie nadawał się do dlaszego rozwoju i ewentualnych modyfikacji przez studentów/prowadzących nie wspominając nawet o próbie omówienia go w składny sposób studentom lub rzeczowego zaprezentowania prowadzącemu - nie wiem z której strony jesteś 8).
Czytelny kod jest elementem podejścia inżynierskiego (nie tylko w LabVIEW) a jak rozumiem tego powinna uczyć uczelnia.
marte pisze:
Nie do końca rozumiem stwierdzenie, że w lab view raczej drutujemy niż piszemy. Wiem, że to jest język graficzny, ale tego co się nauczyłem rownania różcznikowe opisujące obiekt powinny zostać zapisane w formula node.
"Powinny"? :) Można z powodzeniem wykorzystać biblioteki z LabVIEW rozwiązujące równania różniczkowe : diagram, paleta Functions>>Mathematics i z impetem w głąb ;).
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
marte
Posty: 30
Rejestracja: 26 maja 2006 00:00

Re: LV 8 i TCP

Post autor: marte »

Jestem studentem.
Projekt jest tylko na zaliczenie i obiekt jest tylko teoretyczny wiec nie zamierzam go udoskonalac.
Czytelnosc kodu jest bardzo dużą zaletą ale mając w semstrze do zrobienia 15 projektów takie rzeczy nie mają znaczenia. Liczy się efekt, czy regulator i obiekt jest dobrze zamodelowany w formula node.
Może to jest tylko wytłumaczenie z mojej strony.
Przez 4 lata studiów nauczyłem się kilku zasad odnośnie programowania i ogólnie przemysłu i jak na razie sie do tego stosuje.
1. Optymalizacją kodu zajmujemy się dopiero po dojściu do zamierzonego celu. tzn zrobieniu tego, żeby program działał (Programowanie obiektowe)
2. W przemyśle stosuje sie najprostrze rozwiązania. A jako automatyk jestem(będe) specjalistą od rozwiązywania równań różniczkowych zamodelowanych obiektów. Formula node jest dla mnie wygodna i umożliwia mi zapis taki jak mi odpowiada.
3. Musze się jeszcze dużo nauczyć....

Zgodze się z tym również, że jeżeli napisze nieczytelny kod to potem mogą wystąpić różne problemy z wykryciem błędów. Ale nie w tak prostym programie. Bynajmniej tak mi się wydaje.
Pozdrawiam
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: LV 8 i TCP

Post autor: Mikrobi »

zatem : 1. Kiedy piszesz program w C lub C++ wrzucasz składnie komend na ekran jak leci a potem dopiero to układasz w wiersze, stosujesz wcięcia itd...? Jakoś nie potrafię w to uwierzyć. 2. Twoje doświadczenia z przemysłu 8). Wygoda formula node jest wygodą Twoją co nie jest tożsame z optymalnością kodu. 3: jak my wszyscy.
Kod powinien być czytelny na początku a w zasadzie na każdym etapie tworzenia. To powinien być nawyk.
A ten nawyk procentuje .
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
marte
Posty: 30
Rejestracja: 26 maja 2006 00:00

Re: LV 8 i TCP

Post autor: marte »

Stosuje wcięcia. Ale w tym przypadku uzałem, że nie ma potrzeby bo program ma 10 linijek:D.
W każdym bądź razie postanowiłem zoptymalizować moje kody.
Doświadcznia z przemysłu nie mam żadnego. Wszystko co umiem wiem z uczelni i książek.
Nie próbowałem stosować innego narzędzia do rozwiązywania równań różniczkowych bo to dla mnie jest idealne. Spotkałem się ze stwierdzeniami, że w LV nie powinno być fomula node ponieważ odbiega od graficznej konwencji języka(albo coś w tym stylu). Ale skoro jest dlaczego tego nie używać?
pzdr
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: LV 8 i TCP

Post autor: jogurt_owocowy »

Mikrobi dobrze gada o kodzie i nie ma co z tym dyskutować, bo to oczywiste choćby było 30 projektów w semestrze.
Przykład prostej komunikacji TCP z symulatorem zbiornika w załączniku. Najpierw uruchom zbiornik potem sterowanie. Mam nadzieję, że coś pomoże.

Pozdrawiam:)
Ostatnio zmieniony 28 maja 2006 22:16 przez jogurt_owocowy, łącznie zmieniany 1 raz.
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: LV 8 i TCP

Post autor: PMaj »

Witam
Tak czysto informacyjnie dla marte: W LabVIEW napisałem juz kilka programików, większych i mniejszych a formula node użyłem tylko raz - aby zobaczyć czy zadziała, poczym usunąłem ją i "przedrutowałem" kod, gdyż tak trzeba w LabVIEW pisać.
Należy pamiętać, że to DATA FLOW determinuje wykoanie programu a nie sekwencyjne czytanie linii kodu - to właśnie siła języka G
pozdrawiam pmaj
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
marte
Posty: 30
Rejestracja: 26 maja 2006 00:00

Re: LV 8 i TCP

Post autor: marte »

Wziąłem pod uwage wszystkie Wasze krytyki i postanowiłem się do nich stosować....
Udało mi się rozwiązać mój problem. ALe chciałem spytać jeszcze o jedną rzecz. Chodzi mi o to czy np element Slide może być jednocześnie elementem typu indicator i control. Chodzi dokładniej o to że jak mam robiona regulacje automatyczna to wyliczane są odpowiednie zmienne i jeżeli przełącze z regulacji automatycznej na ręczną, która będzie realizowana np przez Slide to chciałbym, żeby wartość slide była w chwili przełączenia nastawiona na wartośc tej zmiennej. Za bardzo nie wiem jak to zrealizować. Nie mam pomysłu.
Czekam na jakieś sugesie bądz wskazówki.
Pozdrawiam
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: LV 8 i TCP

Post autor: Mikrobi »

Możesz odczytać Slide i ustawić wartość zmienną lokalną.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: LV 8 i TCP

Post autor: jogurt_owocowy »

To jeszcze dodam, że po zmianie sterowania na automatyczne najlepiej będzie "zamrozić" kontrolkę za pomocą Slide->Property Node->Disabled ustawiając tą wartość na 1(lub 2-help) i będzie działać jak rasowy Indicator.
ODPOWIEDZ