[Gelöst] Hilfe zur MySQL-Demo // Verbindungsproblem

Begonnen von ak53, 24. Mai 2016, 19:59:02

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

ak53

Hallo liebes Forum,

ich habe aktuell die Aufgabe Daten aus einer Eaton-Steuerung heraus auf eine Datenbank zu schreiben. Dabei kommt CoDeSys 2.3.9 SP6 zum Einsatz und die Daten sollen auf MySQL abgelegt werden. Dazu habe ich mit den "MySQL Community Server 5.7.12" incl. der Gui (Workbench) installiert.

Oscat Lib 3.33 sowie Network Lib 1.30 liegt vor und ist eingebunden. Steuerung sowie eine der beiden Ethernetkarten haben eine feste IP, kein DNS und kein DHCP.

Jetzt habe ich mal die Demo in die Steuerung gespielt und per Visu kann ich das Bit xEna sowie xTRIG_M schalten (zur Testzwecken). Die URL habe ich entsprechend den Angaben in der Lib-Doku angepasst.

Allerdings verbindet sich der Baustein nicht zu meiner Datenbank und ich bekomme immer nach der Timeoutzeit von 10s eine Fehlermeldung:

error_c=4278190080
error_t=2.

ERROR_C nimmt diesen Wert an, da weiter unten in den Aufrufebenen der Wert u.A. aus dem c_status := 255 zusammengesetzt sind und damit die höchten Bits bei dem DWORD alle TRUE sind.

Aber ich kann mir keinen Reim darauf machen, wieso ich den Timeout bekomme. Der SQL-Server läuft und ich komme mit anderen Client-Tools auch von anderen Rechnern im LAN mit fixer IP drauf. Muss ich noch etwas spezielles Beachten? Ich finde da den Fehler aktuell nicht.

Was ich aktuell auch noch beobachte ist der Anmeldeversuch in der Workbench. Hier scheint sich ein anonymer User einzuloggen. Der rot umrandete Eintrag liegt während der 10s Timeoutzeit vor, dann verschwindet er wieder.

Für Infos und Tipps wäre ich euch sehr dankbar!

Viele Grüße,
Alex

[gelöscht durch Administrator]

peewit

error_c=4278190080  = 0xFF000000 = Timeout bei Connect
error_t=2                   = Störung: MYSQL Datenverbindung


mögliche ursachen
1. deine sps ist mit der lib nicht kompatibel
2. es gibt ein problem mit dem netzwerk (ip adresse, subnetmaske etc...)
3. der mysql arbeitet mit einer anderen port nummer
4. der verbindungsaufbau wird von der pc firewall / antivirus etc.. blockiert

lass doch mal auf dem pc das tool wireshark laufen und stelle die aufzeichnung online
dann kann ich nachsehen ob die sps überhaupt etwas richtig mysql pc kommunizert

ak53

Hallo peewit,

danke für deine schnelle Antwort.

Zu den Ursachen:

1. Kann natürlich sein, aber eigentlich kann ich mir das nicht vorstellen. Ich denke, der Compiler würde einen Fehler melden, wenn Sachen in der Lib sind, die nicht auf der SPS ausgeführt werden können, oder?

2. SPS/Panel hat IP 192.168.119.60, Subnetmaske 255.255.0.0. PC mit MySQL hat 192.168.119.152 und auch 255.255.0.0.

3. MySQL hat Port 3306, den habe ich auch so festgesetzt im Lib-Baustein MYSQL_CONTROL gesehen (Zeile 23)

4. Auf dem Windows-Rechner, auf dem MySQL läuft ist die Windows-Firewall komplett abgeschaltet.


Ich hänge mal die Wireshark-Files an, wo der Versuch Fehlschlägt mit SPS/Panel draufzukommen und einmal mit einem anderen PC, wo ich als Client zur Testzwecken das Tool HeidiSQL einsetze.

Vielen Dank vorab.
Gruß,
Alex


[gelöscht durch Administrator]

ak53

#3
Fall erledigt: http://www.oscat.de/community/index.php/topic,1792.msg9507.html#msg9507

In der Bibliothek Network muss die globale Variable SYSLIBSOCKETS_OPTION : BYTE := BYTE#2#0000_0001;
statt SYSLIBSOCKETS_OPTION : BYTE := BYTE#2#0000_0000;
sein.

Dennoch danke für deine Rückmeldung, Peewit.

Gruß,
ak

peewit

hallo

die SYSLIBSOCKETS_OPTION habe ich integriert weil die hersteller es leider nicht schaffen ein einheitliches verhalten der steuerungen zu gewährleisten

auch wenn der compiler nicht mekert heisst das nicht das es funktioniert

den ip_control denn ich erfunden habe dient einzig und allein zur entkopplung der oscat bausteine von hardwareabhängigkeiten.

den ip_control baustein müsste man auf diversen plattformen immer wieder anpassen
das ist bei den vielen codesys ablegern extrem schlimm.....
jeder erfindet das rad neu und implementiert die ethernet schnittstellen etwas anders


in deinem fall reicht die hinterlegte option !

ak53

Danke. Jetzt lief es heute Vormittag eine ganze Weile, dann war ich unterwegs.

Jetzt habe ich (ohne was zu ändern, wirklich nicht ;))

error_c=1265
error_t=3

Hast du eine Vermutung, was das sein kann?

peewit

#6
T=3. Fehler vom SQL Server
Error: 1265 SQLSTATE: 01000 (WARN_DATA_TRUNCATED)

Message: Data truncated for column '%s' at row %ld

Ich vermute das die Anzahl an datenspalten mit der Tabellen  nicht über ein stimmt

Warum das so ist.... ?

Ist das Programm selber gemacht ?
Kannst du mal das originaldemo laufen lassen
Kommen in deinen Daten irgendwelche Sonderzeichen vor ?

ak53

Danke. Nein, das ist 1:1 das Demoprogramm ohne Änderungen. Ich setze das Testprojekt am
Montag nochmal 1:1 neu auf und werde die Demo erneutet probieren. Melde mich dann zurück.

ak53

So, ich habe jetzt ein komplett leeres Projekt genommen und 1:1 da Demoprojekt aus der NETWORK-LIB 1.30 RC1 genommen. Das einzige, was ich geändert habe ist die Variable "url" entsprechend auf meinen notwendigen Login. Leider erscheint immernoch
ERROR_C = 1265
ERROR_T = 3
:(

Hast du noch eine Idee? Danke und Gruß,
ak

peewit



1. wie schaut deine url aus
2. mach doch bitte einen wireshark datenmitschnitt

ist vielleicht , und . bei zahlen vertauscht  mysql konfig (deutsch / englisch )

deutsch 100,34
englisch 100.34

ak53

Ja '.' und ',' bei dem REAL-Wert in der Demo wars ... entsprechend angepasst und es fluppt. Vielen Dank  8)