Blad 1073807246 w komunikacji Serial
: 18 sty 2011 12:03
Witam!
Z gory przepraszam za brak polskich liter ale nie znajduja sie one w jezyku systemu operacyjnego jakiego uzywam
Od pewnego czasu zmagam sie z pewnym bledem i wrecz spedza mi on sen z powiek. Mam do stworzenia prosta aplikacje ktora komunikuje sie przez port Serial z urzadzeniem do mierzenia cisnienia.
Moj program zalaczam ponizej. Ogolnie to po pojedynczym odpaleniu program dziala prawidlowo oraz podaje prawidlowe wyniki. Jednakze ta aplikacja do komunikacji bedzie uzywana wielokrotnie (multiple calls) i wtedy okazjonalnie (nie zawsze) pojawia sie slawetny blad a mianowicie:
VISA: (Hex 0xBFFF0072) The resource is valid, but VISA cannot currently access it
Szybki search na forum NI uzmyslowil mi ze w miare duza ilosc osob otrzymuje ten blad jednakze nikt tak naprawde nie udzielil odpowiedzi czemu sie tak dzieje i jak sobie z tym poradzic.
Rozumiem znaczenie bledu to jest ze sesja VISA jest juz zrobiona i nie mozna otworzyc nowej jednakze tak sie wcale nie dzieje. Jezeli spojrzec w programie sesja jest zawsze zamykana na koncu aplikacji. Dodatkowo w ramach testow przed kazdym nowym otwarciem sesji VISY w Serial Initialization.vi dodalem Close VISA.vi. Wtedy zobaczylem paradoksalna sytuacje kiedy Close VISA zwracal Warning mowiacy ze operacja zostala wykonana jednakze nie bylo co zamykac a zaraz po tym Open VISA zwracal Blad ktory pokazalem wyzej . Dodatkowo przy wyszukiwaniu sesji brak ikony mowiacej o aktywnej sesji VISY.
Pare osob sugerowalo ze to moze byc zwiazane z uzywaniem konwerterow USB 2 Serial ktorych uzywalem jednakze pozbylem sie tego i uzylem orginalnego portu plyty glownej i niestety blad nadal sie potwarzal.
Uzywam LV 8.5 oraz Windows XP.
Bardzo bede wdzieczny za jakiekolwiek wskazowki. Czy moze komunikacja przez port Serial uzywajac VISY zostala poprawiona w pozniejszych wersjach LV albo wersja systemu operacyjnego moze miec tu znaczenie? Niestety nie mam mozliwosci przetestowania mojej aplikacji na innym systemie czy wersji LV.
Jezeli ktos bedzie tak dobry i bedzie probowal odpalac moja aplikacje to niech wie, ze:
- w Serial Operation.vi buffer jest przygotowywany w taki sposob ze do komendy dodawana jest reszta tekstu ktory tworzy pelna komende ktora rozumie urzadzenie tj. komenda MD zamieni sie w @254MD?;FF
- termination char powoduje przerwanie VISA read kiedy napotka znak ';' (3B w hexie) i wynik jest obrabiany aby uzyskac odpowiedz od urzadzenia
- aby wywolac blad nalezy uruchomic Serial test.vi ustawic zmienna Loops na liczbe wieksza od 1 i odpalic. Za pierwszym razem program powinnien zadzialac jednakze po uporczywym wciskaniu ctrl+r (ktory ma symulowac wielokrotne uruchamianie ) program w koncu zwroci blad
Aha chcialbym takze nadmienic ze komunikacja dziala bez zarzutu uzywajac takich programow jak Docklight czy Hyperterminal.
Jestem otwarty na jakiekolwiek propozycje i z gory dziekuje
Z gory przepraszam za brak polskich liter ale nie znajduja sie one w jezyku systemu operacyjnego jakiego uzywam
Od pewnego czasu zmagam sie z pewnym bledem i wrecz spedza mi on sen z powiek. Mam do stworzenia prosta aplikacje ktora komunikuje sie przez port Serial z urzadzeniem do mierzenia cisnienia.
Moj program zalaczam ponizej. Ogolnie to po pojedynczym odpaleniu program dziala prawidlowo oraz podaje prawidlowe wyniki. Jednakze ta aplikacja do komunikacji bedzie uzywana wielokrotnie (multiple calls) i wtedy okazjonalnie (nie zawsze) pojawia sie slawetny blad a mianowicie:
VISA: (Hex 0xBFFF0072) The resource is valid, but VISA cannot currently access it
Szybki search na forum NI uzmyslowil mi ze w miare duza ilosc osob otrzymuje ten blad jednakze nikt tak naprawde nie udzielil odpowiedzi czemu sie tak dzieje i jak sobie z tym poradzic.
Rozumiem znaczenie bledu to jest ze sesja VISA jest juz zrobiona i nie mozna otworzyc nowej jednakze tak sie wcale nie dzieje. Jezeli spojrzec w programie sesja jest zawsze zamykana na koncu aplikacji. Dodatkowo w ramach testow przed kazdym nowym otwarciem sesji VISY w Serial Initialization.vi dodalem Close VISA.vi. Wtedy zobaczylem paradoksalna sytuacje kiedy Close VISA zwracal Warning mowiacy ze operacja zostala wykonana jednakze nie bylo co zamykac a zaraz po tym Open VISA zwracal Blad ktory pokazalem wyzej . Dodatkowo przy wyszukiwaniu sesji brak ikony mowiacej o aktywnej sesji VISY.
Pare osob sugerowalo ze to moze byc zwiazane z uzywaniem konwerterow USB 2 Serial ktorych uzywalem jednakze pozbylem sie tego i uzylem orginalnego portu plyty glownej i niestety blad nadal sie potwarzal.
Uzywam LV 8.5 oraz Windows XP.
Bardzo bede wdzieczny za jakiekolwiek wskazowki. Czy moze komunikacja przez port Serial uzywajac VISY zostala poprawiona w pozniejszych wersjach LV albo wersja systemu operacyjnego moze miec tu znaczenie? Niestety nie mam mozliwosci przetestowania mojej aplikacji na innym systemie czy wersji LV.
Jezeli ktos bedzie tak dobry i bedzie probowal odpalac moja aplikacje to niech wie, ze:
- w Serial Operation.vi buffer jest przygotowywany w taki sposob ze do komendy dodawana jest reszta tekstu ktory tworzy pelna komende ktora rozumie urzadzenie tj. komenda MD zamieni sie w @254MD?;FF
- termination char powoduje przerwanie VISA read kiedy napotka znak ';' (3B w hexie) i wynik jest obrabiany aby uzyskac odpowiedz od urzadzenia
- aby wywolac blad nalezy uruchomic Serial test.vi ustawic zmienna Loops na liczbe wieksza od 1 i odpalic. Za pierwszym razem program powinnien zadzialac jednakze po uporczywym wciskaniu ctrl+r (ktory ma symulowac wielokrotne uruchamianie ) program w koncu zwroci blad
Aha chcialbym takze nadmienic ze komunikacja dziala bez zarzutu uzywajac takich programow jak Docklight czy Hyperterminal.
Jestem otwarty na jakiekolwiek propozycje i z gory dziekuje