Post on 06-Apr-2015
transcript
OMRON
1
Meldungen überEthernet
mit FINS/UDP
OMRON
2
Ethernet - Protokolle
ACHTUNG: Ethernet (V2.0) ist nicht mit dem IEEE802.3 kompatibel !!!.
OMRON
3
Einstellungen mit dem CX-Programmer
Gehen Sie Online, in die E/A-Tabelle, markieren die Ethernet-Baugruppe, Rechte Maustaste, Baugruppenkonfiguration.
OMRON
4
Baugruppenkonfiguration
OMRON
5
Einstellungen im PC
Über Systemsteuerung, Netzwerk / Konfiguration/ TCP/IP, KartenbezeichnungEigenschaften eine feste IP-Adresse einstellen und alles andere deaktivieren.
OMRON
6
Kommunikationstest - Ping
Öffnen Sie ein MS-DOS-Fenster und geben sie:>ping und die zu testende IP-Adresse ein.
OMRON
7
Mit CX-P online zur SPS über Ethernet
• In CX-Programmer: SPS markieren• Rechte Maustaste, Ändern,• Netzwerktyp: Ethernet, dann: Einstellungen
• unter Treiber die IP-Adresse der SPS eingeben.
• In CX-Programmer: SPS markieren• Rechte Maustaste, Ändern,• Netzwerktyp: Ethernet, dann: Einstellungen
• unter Treiber die IP-Adresse der SPS eingeben.
OMRON
8
CX-P über Ethernet ausprobieren
• Programm zur SPS übertragen• Programm online überwachen• Datei von der Speicherkarte übertragen
• Programm zur SPS übertragen• Programm online überwachen• Datei von der Speicherkarte übertragen
OMRON
9
Daten von der SPS an einen anderen FINS-Teilnehmer senden
• Benutzen Sie Kommunikationsport 0 um Daten aus dem DM- Bereich an die andere SPS zu senden.
• A202.00 = Merker Kommunikationsport 0 frei.
• Benutzen Sie Kommunikationsport 0 um Daten aus dem DM- Bereich an die andere SPS zu senden.
• A202.00 = Merker Kommunikationsport 0 frei.
OMRON
10
Theorie der Protokolle• Die verschiedenen
Protokollschichten erzeugen einen großen ‘Overhead’, sodass auch bei wenig Informationen, lange Meldungen übertragen werden.
• Die verschiedenen Protokollschichten erzeugen einen großen ‘Overhead’, sodass auch bei wenig Informationen, lange Meldungen übertragen werden.
OMRON
11
Unterschied zwischen Ethernet V2.0 und IEEE802.3
• Geräte, die das jeweils andere Protokoll benutzen, können nicht miteinander kommunizieren
• Geräte, die das jeweils andere Protokoll benutzen, können nicht miteinander kommunizieren
OMRON
12
Vergleich: TCP oder UDP• UDP fügt nur die Portnummer dem Protokoll zu und gibt sonst die Daten einfach
weiter an die Applikation. Es wird für Kommunikation innerhalb eines Netzes verwendet oder wenn weniger als 1446 Byte übertragen werden.
• TCP ist ein verbindungsorientiertes Protokoll (Verbindungen müssen auf- und abgebaut werden). Es macht eigenständig: Fehlererkennung, Sequenzierung, Priorisierung und Optimierung der übertragenen Teile.
– Mehrere Verbindungen zu einem Rechner können gleichzeitig abgearbeitet werden (Multiplexing)
• TCP ist für weiter verzweigte Netze mit Router oder das Internet.
• UDP fügt nur die Portnummer dem Protokoll zu und gibt sonst die Daten einfach weiter an die Applikation. Es wird für Kommunikation innerhalb eines Netzes verwendet oder wenn weniger als 1446 Byte übertragen werden.
• TCP ist ein verbindungsorientiertes Protokoll (Verbindungen müssen auf- und abgebaut werden). Es macht eigenständig: Fehlererkennung, Sequenzierung, Priorisierung und Optimierung der übertragenen Teile.
– Mehrere Verbindungen zu einem Rechner können gleichzeitig abgearbeitet werden (Multiplexing)
• TCP ist für weiter verzweigte Netze mit Router oder das Internet.
UDPTCP
OMRON
13
Socket• Socket: besteht aus: Protokolltyp, IP-Adresse, Port-Nummer ; es ist der
eindeutig bestimmbare Endpunkt einer Kommunikation.
• In der Praxis wird durch den Begriff Socket eine Schnittstelle bezeichnet,
die zwischen zwei Anwendungsprozessen eine Client- Server- Beziehung
herstellt.
• Es werden nach festgelegten Regeln die im Layer 4 zur Verfügung
gestellten Transportdienste genutzt.
• Socket: besteht aus: Protokolltyp, IP-Adresse, Port-Nummer ; es ist der
eindeutig bestimmbare Endpunkt einer Kommunikation.
• In der Praxis wird durch den Begriff Socket eine Schnittstelle bezeichnet,
die zwischen zwei Anwendungsprozessen eine Client- Server- Beziehung
herstellt.
• Es werden nach festgelegten Regeln die im Layer 4 zur Verfügung
gestellten Transportdienste genutzt.
OMRON
14
Port
• Port-Nummer (z.B. FTP = 21, FINS = 9600) identifiziert die Applikation.
• Der Port repräsentiert eine 16 Bit -Adresse,
• die zur Identifikation eines eindeutigen Zugangspunktes dient, den das
TCP- oder UDP- Protokoll benötigt,
• um mit den übergeordneten Anwendungen bzw. Anwendungsprotokollen
(FTP oder Telnet) Daten austauschen zu können.
• Portnummern von 0 bis 1023 sind meist schon fest vergeben durch die
IANA (Internet Assigned Numbers Authority)
• Port-Nummer (z.B. FTP = 21, FINS = 9600) identifiziert die Applikation.
• Der Port repräsentiert eine 16 Bit -Adresse,
• die zur Identifikation eines eindeutigen Zugangspunktes dient, den das
TCP- oder UDP- Protokoll benötigt,
• um mit den übergeordneten Anwendungen bzw. Anwendungsprotokollen
(FTP oder Telnet) Daten austauschen zu können.
• Portnummern von 0 bis 1023 sind meist schon fest vergeben durch die
IANA (Internet Assigned Numbers Authority)
OMRON
15
FINS-Befehl über Ethernet
OMRON
16
FINS-Antwort im Ethernet
OMRON
17
FINS(1), ICF, RSV,GCT
OMRON
18
FINS(2),DNA, DA1, DA2
OMRON
19
FINS(3), SNA, SA1, SA2, SID
OMRON
20
FINS-Befehlscode
OMRON
21
Handbuchbeispiel zum Lesen von Daten
OMRON
22
Ein Programm unter Visual-BasicUDP BasicsCreating a UDP application is even simpler than creating a TCP application because the UDP protocol doesn'trequire an explicit connection. In the TCP application above, one Winsock control must explicitly be set to "listen,"while the other must initiate a connection with the Connect method.In contrast, the UDP protocol doesn't require an explicit connection. To send data between two controls, three stepsmust be completed (on both sides of the connection):
1. Set the RemoteHost property to the name of the other computer.
2. Set the RemotePort property to the LocalPort property of the second control.
3. Invoke the Bind method specifying the LocalPort to be used. (This method is discussed in greater detailbelow.)
Because both computers can be considered "equal" in the relationship, it could be called a peer-to-peer application.To demonstrate this, the code below creates a "chat" application that allows two people to "talk" in real time to eachother:To create a UDP Peer
1. Create a new Standard EXE project.
2. Change the name of the default form to frmPeerA.
3. Change the caption of the form to "Peer A."
4. Draw a Winsock control on the form and name it udpPeerA.
5. On the Properties page, click Protocol and change the protocol to UDPProtocol.
6. Add two TextBox controls to the form. Name the first txtSend, and the second txtOutput.
7. Add the code below to the form.
OMRON
23
VB-Beispiel für Ethernetzugriff
Private Sub Form_Load() ' The control's name is udpPeerA With udpPeerA ' IMPORTANT: be sure to change the RemoteHost ' value to the name of your computer. .RemoteHost= "PeerB" .RemotePort = 1001 ' Port to connect to. .Bind 1002 ' Bind to the local port. End With frmPeerB.Show ' Show the second form.End Sub
Private Sub txtSend_Change() ' Send text as soon as it's typed. udpPeerA.SendData txtSend.TextEnd Sub
Private Sub udpPeerA_DataArrival _(ByVal bytesTotal As Long) Dim strData As String udpPeerA.GetData strData txtOutput.Text = strDataEnd Sub
OMRON
24
VB-Beispiel, Daten senden/ empfangenPublic finshead As StringDim finsheadbytes(9) As BytePublic finscommand As StringDim finscommandbytes(8) As BytePublic counter As Integer
Private Sub Form_Load()With udpPeerA .RemoteHost = "192.168.1.3" .RemotePort = 9600 .Bind 9600, "192.168.1.10"End With
'FINS-Header zusammenstellenfinsheadbytes(1) = &H81 'ICF, no respondsfinsheadbytes(2) = &H0 'RSV, always 0finsheadbytes(3) = &H2 'GCT, always 2finsheadbytes(4) = &H0 'DNA, dest netw. adressfinsheadbytes(5) = &H3 'destination node numberfinsheadbytes(6) = &H0 'dest unitfinsheadbytes(7) = &H0 'source network adressfinsheadbytes(8) = &HA 'source node numberfinsheadbytes(9) = &H0 'source unit number
finshead = ""For i = 1 To 9 finshead = finshead + Chr(finsheadbytes(i))Next
'FINS-Kommando zusammenstellenfinscommandbytes(1) = &H1 'memoryfinscommandbytes(2) = &H2 'writefinscommandbytes(3) = &H82 'data memoryfinscommandbytes(4) = &H0 'finscommandbytes(5) = &H0 'adress 0000finscommandbytes(6) = &H0 'bitnumber not applicable 0finscommandbytes(7) = &H0 'finscommandbytes(8) = &H1 'number of data words
finscommand = ""For i = 1 To 8 finscommand = finscommand + Chr(finscommandbytes(i))Next
OMRON
25
VB-Beispiel, Daten sendenPrivate Sub Command1_Click()Dim strData As StringDim strData2 As StringDim bytedata(50) As ByteDim lang As LongDim i As Integer
On Local Error GoTo Fehler
counter = counter + 2If counter > 250 Then counter = 0
'Die Sendedaten bestehen aus FINS-Header,dem SID-Zählerbyte,dem FINSKommando und 2 Byte DatenstrData = finshead + Chr(counter) + finscommand + Chr(0) + Chr(counter)
'Zur Anzeige werden die Daten wieder in ASCII-Zeichen gewandeltlang = Len(strData)For i = 1 To lang bytedata(i) = Asc(Mid(strData, i, 1))NextstrData2 = ""For i = 1 To lang strData2 = strData2 + " " + Right("0" + (Hex(bytedata(i))), 2)Next
txtOutput2.Text = strData2
udpPeerA.SendData strData
Fehler:If Err.Number = 126 Then Resume Next
OMRON
26
VB-Beispiel, Daten empfangen
Private Sub udpPeerA_DataArrival(ByVal bytesTotal As Long) Dim strData As String Dim strData2 As String Dim bytedata(50) As Byte Dim i As Integer Dim lang As Long Static counter2 As Byte
udpPeerA.GetData strData
'Zur Anzeige werden die empfangenen Daten wieder in ASCII-Zeichen gewandelt lang = Len(strData) For i = 1 To lang bytedata(i) = Asc(Mid(strData, i, 1)) Next strData = "" For i = 1 To lang strData = strData + " " + Right("0" + (Hex(bytedata(i))), 2) Next
txtOutput.Text = strData
OMRON
27
Protokoll-Analyse-Software
OMRON
28
Ende
OMRON
29
Ende