TIA S7-1200/1500 Kommunikation mit SQL Server

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo sps_hubert,

erstmal vielen Dank für das Zusenden des V15.1-Projektes heute morgen und die Erläuterungen dazu.
Leider komme ich auch mit dem zugesendeten Projekt zum gleichen Ergebnis wie mit meinem selbst migrierten Projekt:

Beim jedem zweiten Setzen des Parameters enableLSql auf "true" kommt ein Fehler mit Status 8605 „Error when calling TRCV“ und
dem Fehlercode in "diagnostics.subfunction" 80A1, was laut Hilfe
"Kommunikationsfehler:
- Die angegebene Verbindung wurde noch nicht aufgebaut.
- Die angegebene Verbindung wird gerade beendet. Empfangsauftrag über diese Verbindung ist nicht möglich.
- Die Verbindung wird gerade neu initialisiert."
bedeutet.

Bei jedem weiteren Setzen des Parameters enableLSql auf "true" kommt kein Fehler, .valid und .busy sind "true" und .status ist 7002. Jedoch bekomme ich im Gegensatz zum V16-Projekt auch dann bei "SqlReceive".data.tokenRows[x].data keine Antwort angezeigt.
In diesem Zustand kann ich dann zwar mit .sqlCommands[0] ('insert into PLCDATA_1 values (7,8, 9)') in die Datenbank schreiben, jedoch nicht mit .sqlCommands[3] ('Select Amount from PLCDATA_2 where Fruit = $'Apple$'') lesen. Wireshark sagt mir zwar, dass die Datenbank wie gewünscht den Befehl erhält und auch antwortet, allerdings empfange ich diese Antwort nicht. Ich habe auch mit Wireshark die Länge der ColumnMetaData überprüft sowie die weiteren Datenlängen im Header, aber die stimmen auch mit meinem DB überein.
Es muss in meinen Augen also am trcv-Baustein liegen.

Ein Unterschied zum V16-Projekt, wo alles funktioniert, ist, dass ich bei beiden Projekten eine S7-1500 6ES7515-2FM02-0AB0 mit Firmware 2.8 verwende. Bei dem V15.1-Projekt kann ich diese jedoch nicht projektieren, da gibt es maximal die 6ES7515-2FM01-0AB0 mit Firmware 2.6 im Hardware-Katalog. Das verursacht beim Laden jedoch nur eine Warnmeldung und keinen Fehler.
Kann es trotzdem daran liegen?
Eine weitere Vermutung wäre, dass ich irgendeine Einstellung in der Hardwarekonfig der CPU vornehmen muss, wie z.B. den Haken bei PUT/GET setzen oder Ähnliches?

Kann mir jemand weiterhelfen und hat noch Ideen?

Vielen Dank schonmal!

Grüße, Torben
 
Es liegt wahrscheinlich nicht an der TIA Version. Ich habe TIA V15.1 Update 4.
Die Firmware 2.6 habe ich auch zum Test, allerdings in der S7-PLCSIM Advanced V3.0 verwendet. Im Büro habe ich nur eine V2.8 1511 F-CPU.
PUT/GET braucht man hierfür nicht, da über TCP kommuniziert wird und die SPS die Verbindung mit TCON aufbaut.
Sind die SQL Statements mit HeidiSQL geprüft wurden? Vielleicht kommt doch eine unerwartete Antwort von der DB.
Wenn die Antwort nicht im Wireshark ist, dann gab es evtl. vorher einen Fehler. Mal die Pakete weiter vorne untersuchen.

Die Frage des TCP Fehlers 8605 (Siemens FB LSQL..) und die 80A1 vom TRVC deutet auf einen weiter unten gelagerten Layer hin. Also was sagt der TCON in diesem Fehlerfall?
Mit TCON und TDISCON schauen, ob die Verbindung auf- und abgebaut wird. Wenn ich Zeit finde, muss ich mal den LSQL Baustein durchspielen und schauen, ob Siemens immer die Verbindung neu aufbaut oder dauerhaft connected ist. Evtl. war zuviel Zeit zwischen den Anfragen und die DB hat die Verbindung getrennt. Das kannst Du mit HeidiSQL beobachten. Also immer alle 4 Stati der TCON TDISCON TRCV TSEND beobachten. Die TRCV TSEND bauen auf TCON auf. Daher ist ein Fehler auch im TCON zu suchen. Ohne die vielen Zusatztools habe ich es nicht geschafft alles in Betrieb zu nehmen, obwohl es ein fertiges Siemens-Beispiel ist. Naja einfach kann ja jeder ;-)
Grüße sps_hubert
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe den Fehler beim Beobachten des Instanzdatenbausteins des LSql_Microsoft FBs gefunden:

Im V16-Projekt ist in der Bausteinschnittstelle des LSql_Microsoft FBs in der Instanz des TRCV der Eingang ADHOC mit Startwert true angegeben.
Im V15.1-Projekt ist in der Bausteinschnittstelle des LSql_Microsoft FBs in der Instanz des TRCV der Eingang ADHOC mit Startwert false angegeben.

Nach Änderung des Startwertes auf true funktioniert nun auch das V15.1-Projekt einwandfrei.

Vielen Dank für die Hilfe.
 
Falls das Thema noch relevant ist (danach wird im Forum ja öfter mal gefragt),
ich habe einen Funktionsbaustein für S7-1200/1500 geschrieben der mit einer MySql oder einer MariaDB Datenbank über TCP (Client/Server Protokoll) kommuniziert.

Auf folgender Seite ist eine kleine Beschreibung mit Video:

getestet ist der Baustein mit:
- S7-1200
- S7-1500
- MariaDB Server 5.5.5-10.6.4-MariaDB
- MySql Server 8.0.26

Es muss für den User der am Server einloggen soll das Authentifizierungsplugin richtig eingestellt sein.
Weitere informationen dazu sind aber beschrieben, oder können gefragt werden.
 
Ich habe den Fehler beim Beobachten des Instanzdatenbausteins des LSql_Microsoft FBs gefunden:

Im V16-Projekt ist in der Bausteinschnittstelle des LSql_Microsoft FBs in der Instanz des TRCV der Eingang ADHOC mit Startwert true angegeben.
Im V15.1-Projekt ist in der Bausteinschnittstelle des LSql_Microsoft FBs in der Instanz des TRCV der Eingang ADHOC mit Startwert false angegeben.

Nach Änderung des Startwertes auf true funktioniert nun auch das V15.1-Projekt einwandfrei.

Vielen Dank für die Hilfe.
Da wäre ich nicht so schnell drauf gekommen
Danke für die Info
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
funktioniert das Schreiben auch in eine SQL-Datenbank, wenn der SQL-Server und die SPS nicht im selben Subnetz liegen?
In der Dokumentation auf https://support.industry.siemens.co...1500-cpu-an-eine-sql-datenbank?dti=0&lc=de-DE
steht unter 2.3 Integration ins Anwenderprojekt -> Voraussetzung "S7-1500 und Microsoft SQL-Server befinden sich im gleichen Subnetz"

Kann dies jemand beantworten?

Vielen Dank im Voraus!
 
Hallo zusammen,
funktioniert das Schreiben auch in eine SQL-Datenbank, wenn der SQL-Server und die SPS nicht im selben Subnetz liegen?
In der Dokumentation auf https://support.industry.siemens.co...1500-cpu-an-eine-sql-datenbank?dti=0&lc=de-DE
steht unter 2.3 Integration ins Anwenderprojekt -> Voraussetzung "S7-1500 und Microsoft SQL-Server befinden sich im gleichen Subnetz"

Kann dies jemand beantworten?

Vielen Dank im Voraus!
Hallo boos87,

soweit ich mich erinnern kann hatte ich auch zuerst die Verbindung in Betrieb genommen und die Kommunikation etc getestet wenn der SQL-Server noch im gleichen Subnetz war. Anschließend wurde vom Kunden gefordert den SQL-Server in ein anderes Subnetz zu setzten. Dies war dann auch ohne Probleme möglich, wichtig war lediglich bei der Hardwarekonfiguration der SPS in der Konfiguration der Profinet-Schnittstelle die Gateway IP als Router-Adresse einzutragen und "Router verwenden" zu aktivieren.
 
Zurück
Oben