Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

sergiofer

Usar Porta Ethernet

Recommended Posts

sergiofer

Boa tarde a todos

Estou a fazer testes com comunicação por porta ethernet, mas não estou a conseguir nada.

Alguém tem um pequeno exemplo de como configurar e abrir a porta ethernet, para que eu possa explorar.

Obrigado a todos

Sérgio

Share this post


Link to post
Share on other sites
fLaSh_PT

Explora por TCP-IP VB.NET

O conceito é o mesmo que Internet, só que funciona como rede local.. (por IPs internos)


Making the impossible possible and pwing the world on db at a time.

Share this post


Link to post
Share on other sites
sergiofer

isso é o que eu pretendo, ligar o meu pc a um dispositivo atraves da rede local.

Vou explorar. Obrigado

Sérgio

Share this post


Link to post
Share on other sites
softklin

Tens de trabalhar com sockets TCP/IP, que basicamente pedes ao SO para te facultar um porto (muito designado também por porta), no qual vais receber/enviar os teus dados.

Pesquisa também por 'vb.net sockets', encontras muitos exemplos práticos de clientes e servidores a comunicar entre si.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
sergiofer

Olá

Thenho estado a pesquisar, e a testar a comunicação pela porta ethernet, mas sem sucesso.

O que eu pretendo é enviar um comando do protocolo Fins, da omron, para um PLC, e ler a resposta que este envia.

Eu consigo enviar o comando, e verifico isso atraves de um sniffer, o meu problema é que não consigo receber nada do plc. O comando funciona, porque atraves de um programa de testes do protocolo, eu consigo verificar a resposta.

Para receber comandos do ip 192.168.250.1, com o numero de porta 9600, eu estou a usar a seguinte função que retirei de um exemplo:

Protected Shared Function UDPDataTransmit( _
          ByVal sBuff() As Byte, ByRef rBuff() As Byte, _
          ByVal IP As String, ByVal Port As Integer) As Integer 'Returns # bytes received
       Dim retstat As Integer
       Dim Sck As Sockets.Socket
       Dim Due As DateTime
       Dim Encrp As IPEndPoint
       Try
           Sck = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
           Sck.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 10000)
           Sck.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 10000)

           Encrp = New IPEndPoint(IPAddress.Parse(IP), Port)
           retstat = Sck.SendTo(sBuff, 0, sBuff.Length, SocketFlags.None, Encrp)
           If retstat > 0 Then
               Due = Now.AddMilliseconds(10000) '10 second time-out
               Do While Sck.Available = 0 AndAlso Now < Due
               Loop
               If Sck.Available = 0 Then
                   'timed-out
                   retstat = -3
                   Return retstat
               End If
               ReDim rBuff(Sck.Available - 1)
               retstat = Sck.ReceiveFrom(rBuff, 0, Sck.Available, SocketFlags.None, CType(Encrp, EndPoint))
           Else
               retstat = -1 ' fail on send
           End If
       Catch ex As Exception
           'General Exception received--add code here to analyze the exception. A messagebox would be one idea.
           retstat = -2
       Finally
           Sck.Close() 'Always close the socket when done.
       End Try
       Return retstat
   End Function

Alguem me pode ajudar a tentar perceber o que estou a fazer mal

Obrigado

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other sites
nokPT

Já vistes estes exemplo: Marcoratti

Com esse exemplo consegui fazer uma comunicação com um Siemens S7-1200, mas o protocolo era TCP/IP standard. O protocolo FINS da Omron é proprietário, não o que pretendes fazer, mas se fosse a ti comprava um OPC Server, tem a desvantagem do custo, tem a vantagem de funcionar na hora.


Ricardo Timóteo

Share this post


Link to post
Share on other sites
sergiofer

Já consegui, era "apenas" uma má configuração do comando enviado

Obrigado a todos pela ajuda.

Sérgio

Share this post


Link to post
Share on other sites
paulo silva

Já agora posta a solução correcta para futuras duvidas nas matéria.

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other sites
jmpiecco

Boas

Tenho uma dúvida idêntica.

Tenho um programa que comunica via porta série com um controlador de antena RFID. A aplicação funciona perfeitamente, mas agora tenho um novo modelo de antena, que comunica via porta Ethernet.

Já tentei por várias maneiras estabelecer comunicação via sockts mas não estou a ter resultados.

Alguem já teve alguma experiência idêntica? se me podem dar uma ajudinha agradeço

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.