Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

[VB 2010] pobranie infomacji ze sterownika S7-1200



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Visual Studio: C#, VB, VC++, …
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Arcady



Dołączył: 07 Lis 2018
Posty: 6

PostWysłany: Wto Wrz 29, 2020 1:37 pm  OP    Temat postu: [VB 2010] pobranie infomacji ze sterownika S7-1200 Odpowiedz z cytatem Pisownia

Witam serdecznie.
Aktualnie zmierzam si? z pewnym problemem, a mianowicie odczytanie informacji ze sterownika Siemens S7-1200.
Sterownik ma podpi?te dwa czujniki zbli?eniowe i w danej sytuacji odczytuje sygna? z jednego czujnika (na sterowniku za?wieca si? zielona dioda na kontrolce 0 a w innej sytuacji odczytuje z drugiego czujnika (?wieci si? dioda przy kontrolce 1).
Pisz? a raczej próbuje napisa? system w Visual Basic, który b?dzie potrafi? odczyta? ten sygna? ze sterownika. (zdj?cie sterownika w za??czniku)
Je?eli ?wieci 0 - odczyt z pierwszego czujnika zbli?eniowego to np x=1 le?eli ?wieci 1 - odczyt z drugiego czujnika zbli?eniowego to np x=2 inaczej x=0.

Próbuje po??czy? si? po TCP/IP i to mi si? ju? uda?o. Mam przypisany adres IP i u?ywam portu 102 - tylko na nim udaje mi si? uzyska? po??czenie (nie wszystkie sprawdza?em)

Client = New TcpClient(Form1.TextBox1.Text, CInt(Form1.TextBox2.Text))
If Client.Client.Connected Then
MsgBox("Connected")
end if
System wy?wietla mi komunikat "Connected"
natomiast w kolejnym kroku nie mog? odczyta? informacji jak? przesy?a ten sterownik (o ile przesy?a Ci?gle).



Kod:
                Dim Rcvstream As System.Net.Sockets.NetworkStream
                       Rcvstream = Client.GetStream

                Dim RcvBytes() As Byte

                Dim RcvBytes(Client.ReceiveBufferSize) As Byte
                MsgBox(Client.ReceiveBufferSize)

' Tutaj otrzymuje odpowiedz 8192 - czyli rozumiem ?e co? odczytuje.

                stream.Read(RcvBytes, 0, CInt(Client.ReceiveBufferSize))
                Dim Dane As String = Encoding.ASCII.GetString(RcvBytes)
                MsgBox(Dane )



' na tym system si? zawiesza i nie mog? odczyta? ?adnej warto?ci.

Nigdy nie próbowa?em si? po??czy? z ?adnym sterownikiem. Zajmowa?em si? raczej baz? danych, ale do pewnego systemu potrzebuj? odczyta? dane ze sterownika.
Bardzo prosz? o pomoc lub nakierowanie. By? mo?e musz? najpierw wys?a? jakie? zapytanie do tego sterownika, lub czego? jeszcze brakuje?



sim1.jpg
 Opis:
zdj?cie sterownika

Pobierz
 Nazwa pliku:  sim1.jpg
 Wielkość pliku:  121.82 KB
 Pobierano:  99 raz(y)


_________________
HobbyVB
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Arcady



Dołączył: 07 Lis 2018
Posty: 6

PostWysłany: Czw Paź 01, 2020 9:45 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Podobno przy u?yciu LIBNODAVE jest mo?liwo?? ?atwej komunikacji z tym sterownikiem.
Ja na t? chwil? mam problem z zaci?gni?ciem bilbioteki LBNODAVE albo mam zbyt starego VB 2010. albo jet jaki? inny problem. Pisze mi ?e libnodave.dll could not be added.

_________________
HobbyVB
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
samolot



Dołączył: 26 Sty 2006
Posty: 8376
Skąd: Toru?

PostWysłany: Pią Paź 02, 2020 5:32 pm      Temat postu: Odpowiedz z cytatem Pisownia

Cytat:
...odczytanie informacji ze sterownika Siemens S7-1200

My?l?, ?e powiniene? si?gn?? do instrukcji obs?ugi sterownika, je?eli do takiej masz dost?p. Swego czasu przygl?da?em si? rozruchowi zainstalowanej aparatury rentgenowskiej firmy Siemens. Panowie serwisanci od skonfigurowania tego sprz?tu na miejscu wbudowania pos?ugiwali si? grubymi tomami instrukcji, przygotowanych przez autorów oprogramowania tych urz?dze? i ich jego sterowników. Tak?e cienko to widz?.

Cytat:
Ja na t? chwil? mam problem z zaci?gni?ciem bilbioteki LBNODAVE albo mam zbyt starego VB 2010. albo jet jaki? inny problem. Pisze mi ?e libnodave.dll could not be added.

Bibliotek zewn?trznej, spoza Windowsa, zwykle nie da si? tak po prostu u?y? w Windowsie. Na przeszkodzie stoj? ograniczenia licencyjne producenta bibliotek i Windowsa. Je?eli jednak ju? masz t? bibliotek? na komputerze i same sprawy licencji nie s? tu przeszkod?, to:

1. Po uruchomieniu ?rodowiska VB 2010 nale?y w ustawieniach projektu najpierw doda? referencje do tej biblioteki.
2. Po tym powiniene? mie? mo?liwo?? w kodzie programu wpisania instrukcji Imports z nazw? odpowiedniej przestrzeni nazw tej biblioteki. Je?li na pocz?tku klasy formatki wpiszesz s?owo Imports to funkcja Intelisense powinna zacz?? podpowiada? przestrzenie nazw - wówczas wybierz t?, która b?dzie pochodzi?a z tej biblioteki.

Cytat:
Pisze mi ?e libnodave.dll could not be added.

To jest typowy komunikat, gdy program (z jakiego? powodu) nie ma dost?pu do biblioteki, czyli u ciebie braku dodanych referencji, bo z twojego posta wynika, ?e jest ona na komputerze, lecz projekt VB 2010 nie ma ustawionych do niej referencji.

_________________
Nie zadawaj bezcelowych pyta? / Windows 8.1 / Windows 10 / VB2008 / VB 2010 / VB 2012 / Pisz poprawnie
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Arcady



Dołączył: 07 Lis 2018
Posty: 6

PostWysłany: Sro Paź 07, 2020 10:35 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Witam
Uda?o mi si? po??czy? z bibliotek? LIBNODAVE.
Uda?o mi si? tak?e odczyta? sygna?. Ale chyba nie do ko?ca to ma tak wygl?da?.
Sterownik posiada "gniazda" od 0 do 7.
interesuje mnie informacja np. gniazdo 0 ?wieci.
Informacj? jako uda?o mi si? uzyska? to:
jak ?wieci gniazdo 0 mam wynik 256
jak ?wieci gniazdo 1 mam wynik 512
jak ?wieci gniazdo 0 i 1 mam wynik 768

teoretycznie wystarcza mi by odró?ni? wygna?y i wiedzie? co i jak.
Problem jest ?e planujemy rozbudow? sterownika i b?d? odczytywa? kolejne gniazda.
co za tym idzie b?dzie znacznie wi?cej kombinacji.

bardziej by mnie interesowa?o co? tego typu: gniazdo 0 = true or false; gniazdo 1= true or false
w sensie w p?tli bym sprawdza? gniazda i bym wiedzia?, które s? true a które false.

res = dc.readBytes(libnodave.daveFlags, 68, 8, 4, buf)
Dim result Integer = 0
If res = 0 Then
result = dc.getU32
end if

powy?szy sposób wyrzuca mi warto?ci: 256, 512, 768.
Jak uzyska? czy na 0 jest true czy false?

_________________
HobbyVB
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
samolot



Dołączył: 26 Sty 2006
Posty: 8376
Skąd: Toru?

PostWysłany: Sro Paź 07, 2020 11:19 am      Temat postu: Odpowiedz z cytatem Pisownia

Skoro:
Cytat:
Informacj? jako uda?o mi si? uzyska? to:
jak ?wieci gniazdo 0 mam wynik 256
jak ?wieci gniazdo 1 mam wynik 512
jak ?wieci gniazdo 0 i 1 mam wynik 768
Cytat:
powy?szy sposób wyrzuca mi warto?ci: 256, 512, 768.
Cytat:
bardziej by mnie interesowa?o co? tego typu: gniazdo 0 = true or false; gniazdo 1= true or false

a pytasz:
Cytat:
Jak uzyska? czy na 0 jest true czy false?
, to przecie? mo?na to odpowiednio oprogramowa? i b?dziesz otrzymywa? True czy False
_________________
Nie zadawaj bezcelowych pyta? / Windows 8.1 / Windows 10 / VB2008 / VB 2010 / VB 2012 / Pisz poprawnie
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Visual Studio: C#, VB, VC++, … Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.21444 sekund, zapytan = 13
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |