DLL von PCI-Messwert-/Regelkarte in WinCC-flexible einbinden

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Forumgemeinde,

Ich möchte mich erst nochmal bei Thomas, LowLevelMahn und Larry für die Guten Tipps bedanken. Ich möchte nochmal zusammenfassen wie ich jetzt vorzugehen gedenke:
  1. Einbau der PCI-Karte in den PC, installieren SQS-242-Software mit freigabe Ethernetkommunikation über Port 1001
  2. "Abhorchen" der TCP/IP Verbindung mit Hercules-Tool, alle benötigten Protokolle zu 100% von Hand durchtesten
  3. Bei Sinnvolle Daten, einrichten einer Offenen TCP-Verbindung zur SPS mit SIMATIC-Tool (Open Communication Wizard)
  4. Einbinden der Daten von der Karte in die SPS mit Connect/Send/Receive T-Bausteinen
  5. Daten an die Karte nur schreiben (Send) bei Änderung, kontinuierlices/zyklisches Lesen der Daten (Reseive) von der Karte

Gruß Basti
 
Zuletzt bearbeitet:
Der Vollständigkeit halber, will ich euch mal Mitteilen Was Siemens zu ActiveX, SDK für WinCC-flexibel und ActiveX-Controls in WinCCV12 (TIA-Portal) sagt:

Frage-ActiveX (WinCC flexibel):
ActiveX ist doch auch jetzt noch möglich und wenn ich keine eigenen ActiveX erstellen will, sondern welche verwenden will, welche diese SQS 242 bereitstellt, dann brauche ich das SDK von WinCC-flexibel doch gar nicht?!
WinCC flexible unterstützt nicht wirklich die allgemeine Nutzung von ActiveX Controls. Hier gibt es diverse Einschränkungen die von verschiedenen Faktoren abhängig sind.

Frage SDK (WinCC flexibel):
Und wie jetzt das SDK wird nicht mehr vermarktet? Wieso steht das dann noch so auf der Siemens-Homepage und wieso weist mich dann ihr Kollege von der Fachberatung etc. genau darauf hin?
Das WinCC flexible SDK wurde nur kundenspezifisch vermarktet. Es ist abgekündigt und kann nicht mehr bestellt werden.

Frage DLLs und ActiveX bei WinCC V12:
Was ist denn jetzt diesbezüglich im WinCC-V12 (des TIA-Portals) möglich? Lassen sich dort DLLs und ActiveX-Elemente einbinden?
WinCC V12 unterstützt native nur .net Controls auf PC basierten Systemen natürlich kann man andere Controls wrappen, sodass diese die Interfaces eines .net Controls haben.

Gruß Basti
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
ActiveX ist doch auch jetzt noch möglich und wenn ich keine eigenen ActiveX erstellen will, sondern welche verwenden will, welche diese SQS 242 bereitstellt, dann brauche ich das SDK von WinCC-flexibel doch gar nicht?!
Nur sehr wenige ActiveX Componente die nicht speziel für WinCC Flxible entwickelt sind, funktionieren mit WinCC Flexible. Ich kenne nur 2 davon. Du kannst ja probieren, aber halte deine Erwartungen nieder.
 
Moin liebe Forumgemeinde,

Ich hab mal bei Siemens gefragt, was es da noch so für Tipps gibt die man beachten sollte, wenn man eine offene TCP/IP-Verbindung über den Open-Communication-Wizard nutz:
  1. Natürlich kann man das Beispielprogramm von Siemens zum OCW nur bedingt nutzen, zumidest muss man anpassen, da der kommunikationspartner ja keine S7-400 sondern ein PC ist
  2. Es wird empfohlen einen Managed Switch (SCALANCE X200er-Serie) zu benutzen, da man bei diesem über "Port-Mirroring" den Netzwerkverkehr beobachten kann
  3. Zum beobachten der Datenströme empfielt Siemens WireShark Link: http://www.wireshark.org/download.html
  4. Man sollte auf jeden fall das Protokoll kennen
  5. Da ja Send und Receive benutzt wird gibt es ja auch einen Send- und einen Receive-Puffer, wo die Daten auch abgeholt werden müssen, sonst läuft der über und die TCP-Verbindung bricht ab...
  6. Es könnte sein das im Empfangspuffer (Receivepuffer) zu viele Daten auflaufen welche nicht in den Puffer passen, das muss man auch prüfen
  7. Es kommt eben ganz drauf an wie das Protokoll aussieht, den das entscheidet wie kompliziert die ganze programmiererei in STEP7 wird

Gruß Basti
 
Es wird empfohlen einen Managed Switch (SCALANCE X200er-Serie) zu benutzen, da man bei diesem über "Port-Mirroring" den Netzwerkverkehr beobachten kann
Zum beobachten der Datenströme empfielt Siemens WireShark Link: http://www.wireshark.org/download.html

da du auf der einen Seite eh einen PC hast sollte Wireshark auf dem PC reichen - aber auch nur noetig wenn was nicht funktioniert, ansonsten ist Hercules dein Freund der Wahl

Es kommt eben ganz drauf an wie das Protokoll aussieht, den das entscheidet wie kompliziert die ganze programmiererei in STEP7 wird

Naja das Protokoll sieht ja einfach und sehr "seriell" aus, pur ASCII mit <CR> als Abschluss - also musst du bis zum <CR> lesen und dann verarbeiten - und Strings konvertieren :}
und die bei Ethernet unnötige Checksumme kann man ja durch 00 ersetzen und in der Antwort einfach ignorieren
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Forumgemeinde!

Ich meld mich mal wieder zu diesem Thema! Leider habe ich es erst heute Geschaft die Verbindung zu testen, mit Hercules! Speziell geht die Frage an LowLewelMahn

@LowLevelMahn
Ich habe versucht erstmal mich mit dem RT-PC zu verbinden und schon da scheiterts:
Anhang anzeigen 22017
Der Rechner hat Windows7-32Bit (Wegen dieser SQS242-Karte), auch mein Entwicklungsrechner hat Windows7-32Bit (wegen Siemens, funktioniert ja noch nicht so sehr lange mit 64bit!)
-> also dachte ich mir testest mal mit nem anderen Rechner im Netzwerk mit WindowsXP (192.168.1.94) da funktionierts....
-> Dann hab ich versucht den Port 1001 freizugeben wie in dieser Beschreibung http://www.youtube.com/watch?v=CldM07Ymyn0 ohne Efolg!
-> Dann hab ich die Windows-Firewall ausgeschalten, bringt aber auch nichts
-> Port80 sollte doch eigentlich gehen oder? Selbst der Funktioniert nicht, siehe Screenshoot
-> Was mache ich falsch, we kann mir Helfen??
 
Dein Screenshot bzw. Anhang lässt sich nicht öffnen.

Was hast du denn auf dem XP Rechner getestet, die Kartensoftware oder Hercules?
Um Probleme mit einer Firewall zu auszuschließen, kannst du Hercules auch auf dem gleichen Rechner auf dem auch die Kartensoftware läuft starten. Dann als Ziel die IP-Adresse der Netzwerkkarte oder localhost 127.0.0.1 eingeben.
Port 1001 ist Voreinstellung bei der Kartensoftware, da bringt es nichts irgendwas auf Port 80 zu probieren.
 
Hallo Thomas,

Danke erstmal!

Keine Ahnung warum der Screenshoot nicht funktioniert Hercules.png hatte eigentlich so gemacht wie vom Forum vorgegeben... -> Dieser war natürlich von Hercules...

Also nochmal:
  1. Ich habe versucht mich mit Hercules vom Entwicklungs-PC (Win7-32Bit IP:192.168.1.99) auf den Runtime-PC (Win7-32Bit IP:192.168.1.3) mittels Hercules zu verbinden, es geht garnicht, kommt immer die Meldung "TCP connection timeout" oder "TCP connection 10061" (-> Was 10061 bedeutet hab ich auch noch nicht gefunden, da es beim Hercules keinen Hilfe-Button gibt...)
  2. Also habe ich das Gleiche mal zu einem anderen Rechner im SPS-Netzwerk versuch (dieser hat allerdings WinXP IP:192.168.1.94) , und da kommt eben die Melchung "Connected to 19.168.1.94" also funktioniert...
  3. Den Hercules hab ich natürlich auch auf dem Runtime-PC installiert, dort als IP 192.168.1.99 (Entwicklungs-PC), 192.168.1.94 (WinXP-PC), 19.168.1.3 (Runtime-PC) sowie 127.0.0.1 (localhost) probiert -> Hier funktiniert auch wieder nur 192.168.1.94 (WinXP-PC)!
  4. Es bringt mir ja nichts, wenn ich mich nicht mit dem Runtime-PC vom Netzwerk aus verbinden kann (sondern nur lokal auf dem gelichen Rechner), denn genau das soll ja dann die SPS mittels der SIMATIC T-Bausteinen (TCON, TSEND, TRCV, TDISCON) machen...
    -> Trotzdem war die Idee estmal gut mit localhost (wie muss man das eingeben)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Fehlernummer stammt vom Winsock:
http://msdn.microsoft.com/de-de/library/windows/desktop/ms740668(v=vs.85).aspx

Port 80 halte ich für unwahrscheinlich dass das richtig ist. Dieser ist üblicherweise für HTTP, also einen Webserver reserviert. Wenn das auf deinem XP Rechner funktioniert, wird dort wohl ein Webserver aktiv sein.
Was sagt denn die Dokumentation von deiner Kartensoftware, auf welchem Port der Dienst erreichbar ist? Lowlevelmahn schrieb was von 1001, hab in die Dokumentation nicht reingeschaut. Vielleicht kannst du den Port in der Software ja auch noch einstellen, und musst den Dienst auch erst aktivieren.
Du kannst ja mal schauen ob auf Port 1001 überhaupt ein Programm lauscht. Dazu machst du auf dem Rechner auf dem diese Kartensoftware läuft eine Eingabeaufforderung auf, und gibst dort "netstat -ano" ein.
In der Liste die dann ausgegeben wird, schaust du nach ob es in der Spalte "Lokale Adresse" einen Eintrag mit ":1001" am Ende ist. Ist da ein Eintrag vorhanden, warten ein Programm auf diesem Port auf eingehende Verbindungen. Wenn das dort nicht aufgeführt ist, kannst du dich auch nicht auf Port 1001 verbinden, weil dort überhaupt kein Programm ist was auf deine Anfragen antworten kann (dann gibts Fehler 10061 beim Client).
 
Hallo Thomas,

Ja Port 1001 ist richtig habe ich ja auch probiert (als erstes) als das nicht ging hab ich hat Port 80 eingegeben, denn Irgendeinen Port muss man ja eingeben...
Mir gings erstmal darum mich überhaupt erstmal mit der Netzwerkarte des RT-PC zu verbinden, das andere kommt dann später (Also mit der Kartensoftware verbinden...)

Das mit "net-stat -ano" teste ich... Danke erstmal für den Tip!

-> Ich habe bei "net-stat -ano" geschaut und folgenden eintrag gefunden:

Proto Lokale Adresse Remoteadresse Status PID
TCP 192.168.1.3:1001 192.168.1.1:503027 Hergestellt 3388

Nur zur Info 192.168.1.1 ist die SPS (IM151-8 PN/DP CPU), da ich den "OpenCommunicationWizzard" schonmal ausgefürt habe, und das Beispiel von Siemens ins S7-Programm übernommen haben. Wenn ich da jetzt mal "Disconnect" ausfüre sollte ich das doch im "net-stat -ano" sehen... Dann muss es doch möglich sein mich auch vom ES-PC zum RT-PC zu verbinden? Denn Hercules hatte ich vorm installieren der T-Bausteine probiert (gut die Firewall war noch an...)
 
Zuletzt bearbeitet:
Ja Port 1001 ist richtig habe ich ja auch probiert (als erstes) als das nicht ging hab ich hat Port 80 eingegeben, denn Irgendeinen Port muss man ja eingeben...
Mir gings erstmal darum mich überhaupt erstmal mit der Netzwerkarte des RT-PC zu verbinden, das andere kommt dann später (Also mit der Kartensoftware verbinden...)

nur so als Info - wenn auf dem Rechner nichts läuft das auf Port 80 horcht bekommst du auch keine Verbindung - also ist der Test vielleicht nicht sooo sinnvoll
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Forumgemeinde,

Ich hab jetzt folgendes rausgefunden:
-> Wenn ich in der SPS am T-Baustein "TCON" (Verbindung aufbauen) das Bit "REQ" (Request=Anforderung der Verbindung) auf 1 setze, und dann am RT-PC die Software starte, wird die Verbindung hergestellt
-------> Bedeutet wenn erst die SPS in Run geht, dann der RT-PC und die Software startet, dann steht die Verbindung
-> Wenn ich jetzt die SPS in Stop->Run schalte, die Sowtware aber weiterhin läuft -> Ist die Verbindung bei "netstat -ano" am RT-PC raus
-------> Wenn ich nun in der SPS am T-Baustein "TCON" (Verbindung aufbauen) das Bit "REQ" (Request=Anforderung der Verbindung) auf 1 setze, dann Bleibt "BUSY" anstehen das bedeutet die Verbindung zum am RT-PC wird NICHT wieder hergestellt -> erst wenn ich die Software erneut neu starte -> Das ist doch auch wieder Mist!

-> Wie kann ich das denn jetzt mit Hercules testen? (Ist mir klar das ich die Verbindung zur SPS erst wieder abbauen muss... erst dann mit Hercules probieren, mach ich jetzt mal...

@Thomas und @LowLevelMahn
nur so als Info - wenn auf dem Rechner nichts läuft das auf Port 80 horcht bekommst du auch keine Verbindung - also ist der Test vielleicht nicht sooo sinnvoll
-> Das mit den Ports hab ich jetzt verstanden, wenn ichs mir genau überlege ist das ja eigentlich logisch!

Bin aktuell jetzt mit Hercules "Connected to 192.168.1.3" über Port 1001
-> "netstat -ano" meldet folgendes:
Proto ------- Lokale Adresse ------- Remoteadresse ------- Status ------- PID
TCP -------- 192.168.1.3:1001----- 192.168.1.99:54765 --- Hergestellt -- 3388

-> Also mit Hercules scheint es jetzt zu klappen mit der Verbindung, habe in der Firewall, Port1001 bei eingehenden und ausgehenden Verbindungen als Ausmahme freigegeben!
-> Wenn ich jedoch anschließend "Disconnect" klicke und dann nochmal versuche mich zu verbinden, dann geht das nicht mehr, bricht mit der Meldung "TCP connection timeout" ab...

-> Wie bekomme ich das bei TCON genauso hin, den der wartet ja immer auf Rückmeldung, also das sich die SW genauso erst dann verbindet, also wenn diese gestartet wird....
 
Zuletzt bearbeitet:
Man kann ja in WinCC flexibel ein Programm, in abhängigkeit einer Variable starten, oder?
Kann man dieses aber auch wieder beenden? -> Wie geht das?

Zur not könnte ich ja auch den RT-Rechner neu starten, mit Wincc flex und Kartensoftware im Autostart, sobald sich die SPS mit der Karte verbinden will:

Zum Herunterfahren von Windows... benutzt man:
1. Den Befehl "StoppeRuntime" den Modus "Runtime und Betriebsystem"...

ODER

2. Den Befehl "StarteProgram" Programmname "shutdown" mit anschließendem Befehl "StoppeRuntime" Modus "Runtime"

-> gibt es da auch einen Befehl für "Windows Neu starten" ?? "restart" anstatt "shutdown" als Programmname, habe ich probiert, da tut sich garnix...
 
Die Software der Karte kann nur eine Verbindung zur Zeit annehmen.
Vielleicht erkennt die Software der Karte nicht, wenn eine einmal aufgebaute Verbindung nicht aktiv abgebaut wurde, sondern z.B. durch ziehen eines Netzwerkkabels getrennt wurde.
Evtl. gibt es dort aber doch einen Timeout nachdem die Verbindung zurückgesetzt wird. Zumindest würde ich das als erstes mal probieren, bevor ich da irgendwelche Prozesse abschieße.

Wenn du von der SPS aus keine Verbindung bekommst, einen Verbindungsaufbau z.B. alle 5s erneut versuchen. Sollte nach 1 Minute immer noch keine Verbindung hergestellt werden können, Fehlermeldung aufs WinCC und dann kannst du ggf. versuchen den Prozess / Programm der Karte neuzustarten. Kannst das ja in eine Batch-Datei packen, die du dann von der WinCC Runtime aus aufrufst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
und auch mal den Hersteller fragen wie das mit dem TCP/IP ist (warum kann man nach Disconnect nicht mehr Connectieren) ... bevor man einfach 1000 (möglichweise blöde) Lösungen durchprobiert
 
Gibt es keine Idee für die Fragen:
1. Wie beende ich ein Programm
2. Wie führe ich "Windows neu starten" von der WinCC flexibel Runtime aus?

@Thomas
Habe ich probiert, es ist unmöglich, wenn einmal eine Verbindung zwischen SPS und Software da war, wieder neu zu verbinden (nach Disconnect)
Würde eigentlich gern die Software neu starten... weis nur nicht wie...
-> Hast du schonmal eine Batchdatei ausgeführt? Anders geht das nicht?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank! @LowLevelMahn

Hab ich schon gefunden mit den start und taskkill...
für start gibt es aber schon einen Befehl: "StarteProgramm" in Felxibel -> Bei Programmname = C:\Programme\INFICON\SQS-242\SQS242.exe (also kompletter Pfad)

Für Taskkill -> "StarteProgramm" Programmname = taskkill, Programmparameter = /F /IM SQS242.exe /T

Funktioniert soweit... Bisher gibt es kein Update, muss warscheinlich damit klarkommen...
 
Hallo Liebe Forumgemeinde!
Zu:
und was sagt der Hersteller zu dem Reconnect Problem?
Da sagt der Amerikanische Hersteller:
I'm afraid that the software does not support any notification for ethernet disconnection.

Also die Software erkennt das nicht, also muss ich Sie abschießen wieder neu öffenen...

Noch ein kleines Problemchen hab ich mit dem Hercules-Tool, es zeigt mit in der Antwort (response) kein ACK oder NAK an, was aber eigentlich wichtig wäre um zu erkennen, ob die Software meine Anfrage (query) richtig verstanden hat und die Antworte (response) plausibel ist... Nochdazu kommt, das ich beim Hercules <CR> senden muss, sonst passiert nix...

Hier ein par Beispiele (Vergleich "Hercules" und "SQS-242-Comm Tool"):
Abfrage_Version.jpgUpdate_RelaisRegister.jpgUpdate_StartProcess.jpgAbfrage_RelaisRegister.jpg
 
Zurück
Oben