Herunterladen Inhalt Inhalt Diese Seite drucken

Programmierbeispiel - VIPA 200V Handbuch

Vorschau ausblenden Andere Handbücher für 200V:
Inhaltsverzeichnis

Werbung

Teil 8 Ethernet-Koppler

Programmierbeispiel

Schritte der
Programmierung
PC
IP: 172.16.192.50
IP: 172.16.192.11
1.
Socket
System
2.
TCP Socket
3.
TCP Socket
IP: 172.16.192.50
Port: 1200
ModbusTCP Server
4.
TCP Socket
IP: 172.16.192.50
IP: 172.16.192.11
Port: 1200
Port: 502
5.
TCP Socket
IP: 172.16.192.50
Data
Port: 1200
6.
TCP Socket
IP: 172.16.192.50
Port: 1200
8-32
Für den Einsatz des Ethernet-Kopplers an einem PC sollten Sie fundierte
C-Programmiererfahrung besitzen, insbesondere im Bereich der Socket-
Programmierung. In diesem Abschnitt soll Ihnen lediglich eine kurze
Übersicht zur Programmierung gegeben werden.
Slave
zu 1. Microsoft Socket
System starten
zu 2. Socket-Ressourcen für
TCP reservieren
zu 3. Socket an den lokalen
PC anbinden
Bei Aufruf von bind mit den Werten 0 für Port und IP-Adresse, wird dem Socket die
PC-IP-Adresse und der nächste freie Port zugewiesen.
(hier:
zu 4. Verbindung zu externem
Gerät aufbauen
TCP Socket
zu 5. Für schreibenden bzw. lesenden Zugriff sind je nach Protokoll entsprechende
ModbusTCP Server
Telegramme aufzubauen und in sndBuf abzulegen.
TCP Socket
sndBufLen beinhaltet die Anzahl der zu sendenden Bytes.
IP: 172.16.192.11
Port: 502
Lesender Zugriff
sndBuf senden
(Request)
Telegramm in rcvBuf
empfangen
(Response+Daten)
Schreibender Zugriff
sndBuf senden
(Request+Daten)
Telegramm in rcvBuf
empfangen (Response)
zu 6. Socket wieder schließen
Ein einfaches Programmierbeispiel finden Sie auf ftp.vipa.de/support unter
Demo Client: Cx000059.
WSAStartup (wVersionRequested, &wsaData);
m_lsock = socket (AF_INET, SOCK_STREAM, 0):
SockAddr.sin_port = htons( 0 );
SockAddr.sin_addr.S_un.S_addr = inet_addr( "0.0.0.0" );
bind(m_lsock, (LPSOCKADDR) &SockAddr, sizeof(SockAddr));
IP: 172.16.192.50, Port: 1200)
SockAddr.sin_port = htons (m_wPort);
SockAddr.sin_addr.S_un.S_addr = inet_addr(m_szIpAddress);
connect(m_lsock, (LPSOCKADDR) &SockAddr, sizeof(SockAddr));
send(m_lsock, (char *)sndBuf, sndBufLen, 0);
recv(m_lsock, (char *)rcvBuf, sizeof(rcvBuf), 0);
send(m_lsock, (char *)sndBuf, sndBufLen, 0);
recv(m_lsock, (char *)rcvBuf, sizeof(rcvBuf), 0);
closesocket(m_lsock);
Handbuch VIPA System 200V
HB97D - IM - Rev. 12/33

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis