Eleu Geschrieben 7. Februar 2010 Geschrieben 7. Februar 2010 Hallo, eine Frage. Kann man mit VB6 eine TCP/IP Socket Verbindung programmieren ? Ich habe schon mal mit dem Comm Control (MScomm) eine serielle Verbindung zu einer Textanzeige programmiert. Gibt es für eine TCP/IP Socket Verbindung auch ein Steuerelement ? Hat das schon mal jemand gemacht und kann mir ein paar Tipps geben. Zum Beispiel, um auf die Prozessdaten einer S7 -SPS zuzugreifen. (Handücher / Dokus / Links, Beispielcode etc.) Gruß Eleu Zitieren
VaNaTiC Geschrieben 8. Februar 2010 Geschrieben 8. Februar 2010 Du kannst aus VB6 mit Sicherheit auf die WinAPI der Sockets zugreifen. Dort gibt es: socket() connect() recv() send() recvfrom() sendto() ... Und damit kann man rudimentäre Aufgaben sehr zuverlässig lösen. Ich habe selber mit Delphi das SAIA-Protokoll Ether-S-Net (UDP/IP Port 5050) implementiert und eben keine Komponenten genommen. Das funktioniert so gut, dass die Verzögerung vom Abholen aus der SPS und Rausgeben ins WinCC Netzwerk + max. 5ms liegt und nur mit RDTSC genau messbar ist. Das Protokoll der S7 interessiert mich auch. Also wenn Du da Unterstützung brauchst würd ich Dir gern helfen. Zitieren
grueni Geschrieben 8. Februar 2010 Geschrieben 8. Februar 2010 Wie sieht es mit OPC aus? Bei Siemens hab ich ein Beispiel in VBA gefunden: Siemens - Industry Automation and Drive Technologies - Service& Support - Automation Service, Automation Support, Simatic Service, Simatic Support, Technical Support, Technical Consulting Zitieren
VaNaTiC Geschrieben 8. Februar 2010 Geschrieben 8. Februar 2010 OPC heißt in diesem Fall aber auf einen OPC-Datenserver von SIEMENS zuzugreifen, der seinerseits selber die Daten per Ethernet abholt. Aus eigener und Erfahrung mit anderen Firmen, die diverse OPC-Server eingesetzt haben (SAIA, SIEMENS, WinCC) sind die entweder nicht immer stabil, nicht gut zu parametrieren, nicht besonders performant oder schlicht einfach zu teuer, weil beispielsweise Lizenzierung pro x-Datenpunkte, pro Verbindung oder eine Kombination davon. Einen OPC würd ich nur einsetzen, wenn es a) nicht anders geht oder sich der andere Aufwand nicht lohnt. Zitieren
Eleu Geschrieben 8. Februar 2010 Autor Geschrieben 8. Februar 2010 Hallo, mit dem OPC Server von Siemens (SimaticNET) und VB 6 habe ich schon einmal eine Prozessanbindung zu einer S7 realisiert. Das Ganze ist sehr komfortabel beim Programmieren der VB Anwendung. Man kann über ein DATA Steuerelement direkt auf die Items browsen und diese problemlos (ohne irgendeine Eingabe von Quellcode) z.B. an ein Textfeld binden. Eine weitere Variante, ist zum Beispiel "Prodave MPI/IE" von Siemens oder die freie Library "Libnodave". Es funktioniert in VB 6 ,indem man die entsprechende dll über eine Declare Anweisung im allgemeinen Moduteil aufruft. Der Zugriff auf die API (Vorschlag von VaNaTic) ist im Prinzip das, woran ich interessiert bin. Das Problem ist nur, ich habe kein VB 6 Beisielprojekt mit Quellcode oder eine Doku die mir den Zugriff über eine Windows Socket Verbindung beschreibt. Wie müsste denn die Declare Anweisung aussehen ? Welche dll im Ordner "System32" muss ich einbinden. Ich nehme an die Winsock.dll ? Also ich stelle mir das so vor, dass meine Anwendung beim Start im ersten Schritt die TCP Verbindung als aktiver Kommunikationspartner zur S7 SPS aufbaut. In der S7 SPS wären dann zwei passive TCP-Verbindungen angelegt (Fetch/Write) Wie muss das in der Anwendung aussehen, wenn man dann in einen DB senden und aus einem DB empfangen möchte. Kann mir da jemand helfen ? Gruß Eleu Zitieren
VaNaTiC Geschrieben 8. Februar 2010 Geschrieben 8. Februar 2010 Weil ich mich mit VB nich auskenne, hab ich mal schnell google befragt und bin da auf ein paar interessante Sachen gestoßen: ActiveVB - VB 5/6-Tipp 0228: Dateien via Winsock Laden Winsock in VB (TCP) - Visual Basic - Tutorials @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & Hilfe Introduction to Visual Basic Socket Programming - Most people might think that Visual Basic and the internet are enemies by nature. Well, they're probably right But still, VB coders have the possibility to write client/server-applications within o 15 Seconds : Using the Winsock Control in Client/Server Applications Wenn ich richtig gelesen habe, dann gibt es bereits ein Winsockte-Control in VB6. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.