From 6baa1fb3fc9affce2eaa54f1edb52beac94366e6 Mon Sep 17 00:00:00 2001 From: Adam Skotarczak Date: Fri, 29 Aug 2025 12:11:48 +0200 Subject: [PATCH] - 29.08.25 - SQLITE3 Datenbank Backup - OpenOffice Format gespeichert --- .gitignore | 8 ++ final.ods | Bin 0 -> 39559 bytes io.db => machine_1000t.db | Bin 32768 -> 61440 bytes machine_1000t.db.sql | 256 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 264 insertions(+) create mode 100644 .gitignore create mode 100644 final.ods rename io.db => machine_1000t.db (50%) create mode 100644 machine_1000t.db.sql diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d48a7e7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*.bak +*.gho +*.ori +*.orig +*.tmp + +# SQLite3 +*.db-* diff --git a/final.ods b/final.ods new file mode 100644 index 0000000000000000000000000000000000000000..fdf75fdc21fc0732eff2105e7b494c0894525b85 GIT binary patch literal 39559 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 literal 0 HcmV?d00001 diff --git a/io.db b/machine_1000t.db similarity index 50% rename from io.db rename to machine_1000t.db index c2f388c021376778060f97dab670e2f2119e059b..330855dead6f8bc55f71ab87b31a52312ad7a631 100644 GIT binary patch literal 61440 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 0), + "bit" INTEGER NOT NULL CHECK("bit" BETWEEN 0 AND 7), + "mapping" TEXT, + "funktion" TEXT, + "schaltet_betriebsmittel" TEXT COLLATE NOCASE, + "schaltet_gruppe" INTEGER, + "schaltet_klemme" TEXT COLLATE NOCASE, + UNIQUE("schaltet_betriebsmittel" COLLATE NOCASE,"schaltet_gruppe","schaltet_klemme"), + PRIMARY KEY("ID" AUTOINCREMENT), + UNIQUE("gruppe","byte","bit"), + FOREIGN KEY("kennzeichen","gruppe") REFERENCES "betriebsmittel"("kennzeichen","gruppe") ON UPDATE CASCADE ON DELETE RESTRICT, + FOREIGN KEY("schaltet_betriebsmittel","schaltet_gruppe") REFERENCES "betriebsmittel"("kennzeichen","gruppe") ON UPDATE CASCADE ON DELETE RESTRICT, + CHECK(("schaltet_betriebsmittel" IS NULL AND "schaltet_gruppe" IS NULL) OR ("schaltet_betriebsmittel" IS NOT NULL AND "schaltet_gruppe" IS NOT NULL)) +); +DROP TABLE IF EXISTS "orte"; +CREATE TABLE "orte" ( + "ort" TEXT, + "beschreibung" TEXT, + PRIMARY KEY("ort") +); +DROP TABLE IF EXISTS "output"; +CREATE TABLE "output" ( + "ID" INTEGER, + "kennzeichen" TEXT NOT NULL COLLATE NOCASE, + "gruppe" INTEGER NOT NULL, + "byte" INTEGER NOT NULL CHECK("byte" >= 0), + "bit" INTEGER NOT NULL CHECK("bit" BETWEEN 0 AND 7), + "mapping" TEXT, + "funktion" TEXT, + "schaltet_betriebsmittel" TEXT COLLATE NOCASE, + "schaltet_gruppe" INTEGER, + "schaltet_klemme" TEXT COLLATE NOCASE, + UNIQUE("schaltet_betriebsmittel" COLLATE NOCASE,"schaltet_gruppe","schaltet_klemme"), + PRIMARY KEY("ID" AUTOINCREMENT), + UNIQUE("gruppe","byte","bit"), + FOREIGN KEY("kennzeichen","gruppe") REFERENCES "betriebsmittel"("kennzeichen","gruppe") ON UPDATE CASCADE ON DELETE RESTRICT, + FOREIGN KEY("schaltet_betriebsmittel","schaltet_gruppe") REFERENCES "betriebsmittel"("kennzeichen","gruppe") ON UPDATE CASCADE ON DELETE RESTRICT, + CHECK(("schaltet_betriebsmittel" IS NULL AND "schaltet_gruppe" IS NULL) OR ("schaltet_betriebsmittel" IS NOT NULL AND "schaltet_gruppe" IS NOT NULL)) +); +INSERT INTO "betriebsmittel" ("ID","kennzeichen","gruppe","ort","bezeichnung","beschreibung") VALUES (1,'M25',1,'H1','Schaltschranklüfter',NULL), + (2,'A12',3,'H1','Pilz Basisgerät',NULL), + (3,'F26',1,'H1','Blitzschutz Typ3',NULL), + (4,'H24',1,'H1','Leuchte Hauptschalter EIN',NULL), + (5,'L22',1,'H1','Blitzschutz Typ 2',NULL), + (6,'F16',1,'H1','Sicherung Energiemessung',NULL), + (7,'A14',1,'H1','Energiemessung',NULL), + (8,'B12',1,'H1','Stromsummenzähler (CT) L3',NULL), + (9,'B13',1,'H1','Stromsummenzähler (CT) L2',NULL), + (10,'B14',1,'H1','Stromsummenzähler (CT) L1',NULL), + (11,'S11',1,'H1','Hauptschalter',NULL), + (12,'S25',1,'H1','Temperaturregler Schaltschranklüfter',NULL), + (13,'F25',1,'H1','LS Schaltschranklüfter',NULL), + (17,'A11',3,'H1','Pilz Buskoppler Ethercat',NULL), + (18,'A16',3,'H1','Pilz Ausgangsbaugruppe',NULL), + (19,'A17',3,'H1','Pilz Eingangsbaugruppe',NULL), + (20,'A22',3,'H1','Pilz Eingangsbaugruppe',NULL), + (21,'A23',3,'H1','Pilz Ausgangsbaugruppe',NULL), + (22,'A24',3,'H1','Pilz Ausgangsbaugruppe',NULL), + (24,'S32',3,'H1','Pilz Notausschalter',NULL), + (25,'K62',15,'H1','Relais Ventil Y65 (Presse öffnen)',NULL), + (26,'K63',15,'H1','Relais Ventil Y66 (Presse öffnen)',NULL), + (27,'Y65',15,'H1','Ventil Presse öffnen 1',NULL), + (28,'Y66',15,'H1','Ventil Presse öffnen 2',NULL), + (29,'K72',15,'H1','Relais Ventil Y75 (Presse öffnen)',NULL), + (30,'K73',15,'H1','Relais Ventil Y76 (Presse öffnen)',NULL), + (31,'Y75',15,'H1','Ventil Presse öffnen 3',NULL), + (32,'Y76',15,'H1','Ventil Presse öffnen 4',NULL), + (34,'A14',2,'H1','SPS Ausgansbaugruppe',NULL), + (35,'T62',1,'H1','Netzgerät 400V 24VDC',NULL), + (36,'S33',3,'H1','Pilz Notausschalter (oben)',NULL), + (37,'S34',3,'H1','Taster Quittieren Not-Aus',NULL), + (38,'H36',3,'H1','Leuchte Not-Aus Meldung',NULL), + (39,'K37',3,'H1','',NULL), + (40,'K37.1',3,'H1','',NULL), + (41,'S42',3,'H1','Taster Quittieren Störung',NULL), + (42,'A42',3,'H1','PIT m3.2p (Safe Operation Module)',NULL), + (43,'S52',3,'H1','Taster Quittieren Betriebsart',''); +INSERT INTO "gruppen" ("gruppe","beschreibung") VALUES (0,'Projektdaten'), + (1,'Einspeisung'), + (2,'Steuerung'), + (3,'Pilz'), + (11,'Bedienung Elemente'), + (15,'Ventile'), + (17,'Auswerfer'), + (20,'Heizung'), + (25,'Wasserbehälter'), + (30,'Klemmleisten'); +INSERT INTO "input" ("ID","kennzeichen","gruppe","byte","bit","mapping","funktion","schaltet_betriebsmittel","schaltet_gruppe","schaltet_klemme") VALUES (1,'A12',3,2060,4,'I4','Notaus Quittieren','S34',3,'4'), + (2,'A12',3,2061,0,'I8','Quittieren Störung Pilz','S42',3,'4'), + (3,'A12',3,2061,5,'I13','Betriebsart Einzelhub','A42',3,'SOM1'), + (4,'A12',3,2061,6,'I14','Betriebsart Einrichten','A42',3,'SOM2'), + (5,'A12',3,2061,7,'I15','Betriebsart -frei-','A42',3,'SOM3'), + (6,'A12',3,2062,0,'I16','Betriebsart -frei-','A42',3,'SOM4'), + (7,'A12',3,2062,1,'I17','Betriebsart -frei-','A42',3,'SOM5'), + (8,'A12',3,2062,2,NULL,'reserve',NULL,NULL,NULL), + (9,'A12',3,2062,3,NULL,'reserve',NULL,NULL,NULL); +INSERT INTO "orte" ("ort","beschreibung") VALUES ('H1','Schaltschrank 1, groß'), + ('H2','Schaltschrank 2, klein oberhalb H1'), + ('H3','Schaltschrank 3, klein, hinter Ventilgruppe'), + ('H4','mobiles Bedienelement'), + ('H5','Monitorgehäuse, schwenbar'), + ('H6','direkt an Presse montiert'), + (NULL,NULL); +INSERT INTO "output" ("ID","kennzeichen","gruppe","byte","bit","mapping","funktion","schaltet_betriebsmittel","schaltet_gruppe","schaltet_klemme") VALUES (1,'A14',2,2,0,NULL,'Schaltet -K72 und damit Ventil -Y75','K72',15,NULL); +DROP VIEW IF EXISTS "v_input"; +CREATE VIEW "v_input" AS +SELECT + i.ID, + i.kennzeichen, + i.byte, + i.bit, + printf('%d.%d', i.byte, i.bit) AS adresse, + i.gruppe, + i.funktion +FROM input i; +DROP VIEW IF EXISTS "v_output"; +CREATE VIEW "v_output" AS +SELECT + o.ID, + o.kennzeichen, + o.byte, + o.bit, + printf('%d.%d', o.byte, o.bit) AS adresse, + o.gruppe, + o.funktion +FROM output o; +DROP TRIGGER IF EXISTS "bm_upper_ai"; +CREATE TRIGGER bm_upper_ai +AFTER INSERT ON betriebsmittel +FOR EACH ROW +BEGIN + UPDATE betriebsmittel + SET kennzeichen = UPPER(kennzeichen) + WHERE rowid = NEW.rowid + AND kennzeichen <> UPPER(kennzeichen) COLLATE BINARY; +END; +DROP TRIGGER IF EXISTS "bm_upper_au"; +CREATE TRIGGER bm_upper_au +AFTER UPDATE OF kennzeichen ON betriebsmittel +FOR EACH ROW +BEGIN + UPDATE betriebsmittel + SET kennzeichen = UPPER(kennzeichen) + WHERE rowid = NEW.rowid + AND kennzeichen <> UPPER(kennzeichen) COLLATE BINARY; +END; +DROP TRIGGER IF EXISTS "in_upper_ai"; +CREATE TRIGGER in_upper_ai +AFTER INSERT ON input +FOR EACH ROW +BEGIN + UPDATE input + SET kennzeichen = UPPER(kennzeichen), + schaltet_betriebsmittel = CASE + WHEN schaltet_betriebsmittel IS NULL THEN NULL + ELSE UPPER(schaltet_betriebsmittel) + END + WHERE rowid = NEW.rowid + AND (kennzeichen <> UPPER(kennzeichen) COLLATE BINARY + OR (schaltet_betriebsmittel IS NOT NULL + AND schaltet_betriebsmittel <> UPPER(schaltet_betriebsmittel) COLLATE BINARY)); +END; +DROP TRIGGER IF EXISTS "in_upper_au"; +CREATE TRIGGER in_upper_au +AFTER UPDATE OF kennzeichen, schaltet_betriebsmittel ON input +FOR EACH ROW +BEGIN + UPDATE input + SET kennzeichen = UPPER(kennzeichen), + schaltet_betriebsmittel = CASE + WHEN schaltet_betriebsmittel IS NULL THEN NULL + ELSE UPPER(schaltet_betriebsmittel) + END + WHERE rowid = NEW.rowid + AND (kennzeichen <> UPPER(kennzeichen) COLLATE BINARY + OR (schaltet_betriebsmittel IS NOT NULL + AND schaltet_betriebsmittel <> UPPER(schaltet_betriebsmittel) COLLATE BINARY)); +END; +DROP TRIGGER IF EXISTS "orte_upper_ai"; +CREATE TRIGGER orte_upper_ai +AFTER INSERT ON orte +FOR EACH ROW +WHEN NEW.ort <> UPPER(NEW.ort) +BEGIN + UPDATE orte + SET ort = UPPER(NEW.ort) + WHERE rowid = NEW.rowid; +END; +DROP TRIGGER IF EXISTS "orte_upper_au"; +CREATE TRIGGER orte_upper_au +AFTER UPDATE OF ort ON orte +FOR EACH ROW +WHEN NEW.ort <> UPPER(NEW.ort) +BEGIN + UPDATE orte + SET ort = UPPER(NEW.ort) + WHERE rowid = NEW.rowid; +END; +DROP TRIGGER IF EXISTS "out_upper_ai"; +CREATE TRIGGER out_upper_ai +AFTER INSERT ON output +FOR EACH ROW +BEGIN + UPDATE output + SET kennzeichen = UPPER(kennzeichen), + schaltet_betriebsmittel = CASE + WHEN schaltet_betriebsmittel IS NULL THEN NULL + ELSE UPPER(schaltet_betriebsmittel) + END + WHERE rowid = NEW.rowid + AND (kennzeichen <> UPPER(kennzeichen) COLLATE BINARY + OR (schaltet_betriebsmittel IS NOT NULL + AND schaltet_betriebsmittel <> UPPER(schaltet_betriebsmittel) COLLATE BINARY)); +END; +DROP TRIGGER IF EXISTS "out_upper_au"; +CREATE TRIGGER out_upper_au +AFTER UPDATE OF kennzeichen, schaltet_betriebsmittel ON output +FOR EACH ROW +BEGIN + UPDATE output + SET kennzeichen = UPPER(kennzeichen), + schaltet_betriebsmittel = CASE + WHEN schaltet_betriebsmittel IS NULL THEN NULL + ELSE UPPER(schaltet_betriebsmittel) + END + WHERE rowid = NEW.rowid + AND (kennzeichen <> UPPER(kennzeichen) COLLATE BINARY + OR (schaltet_betriebsmittel IS NOT NULL + AND schaltet_betriebsmittel <> UPPER(schaltet_betriebsmittel) COLLATE BINARY)); +END; +COMMIT;