Wago 750 880 --> MS SQL Server

saaidi

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,
ich muss daten von eine wago steuerung auf sql server übertragen. die daten müssen in 4 Tabellen übertragen. ich habe schon eine tabelle übertragen aber leider weiß nicht wie ich die anderen 3 tabellen gleichzeitig und ohne wiederholungen zu übertragen . Ich will nur einmal auf den sql server einloggen und die daten auf die 4 tabellen übertragen .
danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich bin anfänger im bereich Programmierung könnten sie mir bitte das einfacher erklären . die daten sind(tabelle1 enthält messwerte von spannungen)(tabelle 2 messwerte von Frequenz)(tabelle3 messwerte von strom)(tabelle4 messwerte von cos phi).
danke für die schnelle antwort
 
Nunja, also unsere Philosophie beim Schreiben in DBs in generell die dass nicht in die "echten" Tabellen geschrieben wird. Es wird entweder in eine Transfertabelle geschrieben (in deinem Fall eine die Spalten für Spannungen, Frequenz, Strom und cos(phi) hat) und von dort weiterverteilt, oder es wird eine Prozedur zum Einfügen verwendet. Das ist zwar nicht die Antwort auf deine Frage (wie kann ich 4 inserts konsistent und ohne reconnect in deine DB schreiben) aber in dieser Lösung hast du das Problem nicht.

Zusätzlich hast du noch die DB Struktur von deinem SPS Programm entkoppelt.
 
Eine Transfertabelle ist eine separate Tabelle in der man Inputs entgegen nimmt.

Zum Beispiel erzeugst du mit einem Insert-Statement Einträge in dieser Zwischen-Tabelle und lässt die Datenbank mittels Trigger (der Trigger wird für jeden neu eingefügten Eintrag abgearbeitet) dann die Daten auf die wirklichen Tabellen verteilen.

Vorteil:
A) Du hast eine klare Trennung zwischen deinen Datenquellen und deinen Daten-Tabellen
B) Du kannst auch im Nachhinein besser sehen wann, wer, welche Daten gesendet hat
Vor allem schwierig wenn die Datenquelle irgendwelche Update-Statements ausführen muss.
In dem Fall macht die Datenquelle trotzdem nur ein Insert und der Datenbank-Trigger mach das Update-Statement
C) Du kannst im Trigger-Statement die volle Funktionalität der Datenbank nutzen
Man kann z.B. Prüfungen über die erhaltenen Daten laufen lassen und eventuell das hier verhindern...
XKCD: Exploits of a MOM.

Wenn du eine Datenbank betreibst und dir jemand fremdes was reinschreiben soll, solltest du generell nur so arbeiten.
 
Zuletzt bearbeitet:
2 Anregungen noch:
- in der Transfertabelle würde ich die Felder als nvarchar anlegen und erst nachher casten. Damit hat das Insert von der SPS immer hin und ich markiere in der Transfertabelle Zeilen die einen Fehler geworfen haben. (Gerade bei Real casts kann's mal passieren daß ein "10e-23" oder so rauskommt und das entdecke ich leicht in den strings)
- Wenn die Meßwerte rasch eingetragen werden mach die den Übertrag in die echten Tabellen nicht mit Triggger sondern schon mal mit einem Chronjob alle x min.
 
Zurück
Oben