Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Excel-Datei Importieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Excel-Datei Importieren (1293 / mal gelesen)
Prinsco
Mitglied



Sehen Sie sich das Profil von Prinsco an!   Senden Sie eine Private Message an Prinsco  Schreiben Sie einen Gästebucheintrag für Prinsco

Beiträge: 14
Registriert: 22.04.2020

erstellt am: 29. Mai. 2020 19:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich möchte eine Excel-Tabelle in mein Modell über Dateiverknüpfung mit eine Methode ausführen. ich habe die Dateiverknüpfung in dem Modell schon erstellt und weiße ich nicht wie ich diese Excel-Dateiverknüpfung über eine Methode einlesen kann.
bitte kann jemanden mir helfen?

------------------
Vielen Dank im Voraus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nadin1223
Mitglied
Ing.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 29. Mai. 2020 22:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Prinsco 10 Unities + Antwort hilfreich

Hallo Prinsco,

ich vermute mal: Daten aus Excel-Datei in Tabelle zu übertragen.

Eine Dateiverknüpfung ist nichts mehr, als eine Datei-Verknüpfung.
Wobei mit "DateiVerknüpfung.einbetten := true" eine richtige Kopie von dieser Datei in PlantSimulation erzeugt wird. Natürlich werden dann die nachträglichen Änderungen im Original-Datei nicht mehr berücksichtigt.
Mit "DateiVerknüpfung.einbetten := false" wird die Adresse in der Dateiverknüpfung unter  "DateiVerknüpfung.Datename" gespeichert.

Um den Excel Inhalt in Tabelle zu speichern kannst du beispielsweise:

Code:
DeineTabelle.leseExcelDatei(Dateiverknüpfung.Dateiname)

-------
Soll sequenziel die Daten aus Excel gelesen werden, so ist die XMLSchnittstelle günstiger.
Diese besitzt spezielle Methoden zum Zugriff auf Daten.

-------
Generel ist das Lesen und Schreiben in Excel zeitaufwändig. Für größere Datenmengen (insbesondere zum Lesen der Daten während eines Simulationslaufes), ist die SQLite Lösung günstiger.

vG
Nadin

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Prinsco
Mitglied



Sehen Sie sich das Profil von Prinsco an!   Senden Sie eine Private Message an Prinsco  Schreiben Sie einen Gästebucheintrag für Prinsco

Beiträge: 14
Registriert: 22.04.2020

erstellt am: 01. Jun. 2020 15:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Tabelle.JPG

 
Hallo Nadin,

vielen Dank für deine Antwort.
mit der XLM hat es nicht geklappt. Durch diese Code: DeineTabelle.leseExcelDatei(Dateiverknüpfung.Dateiname) habe ich die Daten in Tabelle gelesen. jetzt möchte ich die Daten aus der Tabelle lesen und aus der Simulation zur Verfügung stellen. Also ich möchte mit der Methode Init die Daten aus Tabelle ausführen, weil die Daten aus Tabelle die Initial-werte der Simulation sind. Bitte wie soll ich vorgehen? was soll ich in der Methode schreiben?
Im Anhang ein Bild der Tabelle


Danke!

------------------
Vielen Dank im Voraus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nadin1223
Mitglied
Ing.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 01. Jun. 2020 16:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Prinsco 10 Unities + Antwort hilfreich

Zitat:
Also ich möchte mit der Methode Init die Daten aus Tabelle ausführen

das sieht aus, als dies die Werte sind, welche vor Simulation gesetzt werden sollen...

Erstmal eine kleine Einführung zu Init:
Init wird als erste Methode ausgeführt. Es können viele Init-Methoden existieren. Dann wird mit der Init angefangen, welche in den Untersten Netzwerk eingesetzt ist. Wenn also beispielsweise deine Init-Methode im Unternetzwerk DGM2 das Attribut Abflussrate von der Instanz Dosierofen braucht; wird es nicht den neuen Wert auslesen.
Um dies zu vermeiden - also nicht mehr zu beachten, was die Intit in einzelnen Netzwerken so alles macht - werden Daten über Init in Ereignisverwalter eingelesen. Das ist die Init-Steuerung. (Diese wird tatsächlich als erste Methode ausgeführt.) Im Ereignisverwalter --> Extras --> Steuerungen bearbeiten --> Hier unter Init die Methode eintragen.

Zitat:
was soll ich in der Methode schreiben?

Die Information in der Tabelle folgt einer Logik; es besitzt einen Syntax und Semantik.
Ich vermute mal der Tabellenausschnitt stellt die eingelesenen Daten dar.
In Y-Index ist es die Instanz als String (also das was im Simulationsmodell tatsächlich eingefügt ist).
Die X-Index ist  das Attribut, welcher in dieser Instanz zu setzen ist.
Jetzt hat ein Portionierer kein Attribut Abflussrate. In der Tabelle ist es null, was nicht verhindern, dass dieses Attribut für diese Instanz gesetzt wird.


Du brauchst mindestens eine for-Schleife
Beispiel mit InternalClassName:

For für Y-dim
  --prüfe welches "internalClassName"
  switch  str_to_obj(Tabelle[1,i]).internalClassName
  case "NwDePortioner"
    --setze Abflussrate
        str_to_obj(Tabelle[1,i]).setzeAttribut(Tabelle[2,0],str_to_num(Tabelle[2,i])
    --setze MengeProBE
        ...
  case "..."
    ...
  end
next

-------------


------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Prinsco
Mitglied



Sehen Sie sich das Profil von Prinsco an!   Senden Sie eine Private Message an Prinsco  Schreiben Sie einen Gästebucheintrag für Prinsco

Beiträge: 14
Registriert: 22.04.2020

erstellt am: 01. Jun. 2020 19:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Tabelle.JPG

 
Hallo nadin,

danke noch mal für deine schnelle Antwort. Ich habe die Code geschrieben aber funktioniert nicht. Es sagt: "Der Quellcode enthält Syntaxfehler" und ich finde nicht den Fehler. hier ist die Code:

Tabelledaten.leseExcelDatei(Dateiverknüpfung.Dateiname)

for  local i:=1 to Tabelledaten.ydim loop
--prüfe welches "internalClassName"
switch str_to_obj(Tabelledaten[1,i]).internalClassName
case " Schmelzofen1.Beschickung"
--setze Abflussrate
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[2,1],str_to_num(Tabelledaten[2,i])
--setze MengeProBE
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[3,1],str_to_num(Tabelledaten[3,i])

case "Schmelzofen1.Portionierer"
--setze Abflussrate
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[2,0],str_to_num(Tabelledaten[2,i])
-- setze MengeProBE
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[3,2],str_to_num(Tabelledaten[3,i])

case " Schmelzofen2.Beschickung"
--setze Abflussrate
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[2,3],str_to_num(Tabelledaten[2,i])
-- setze MengeProBE
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[3,3],str_to_num(Tabelledaten[3,i])
case "Schmelzofen2.Portionierer"
--setze Abflussrate
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[2,0],str_to_num(Tabelledaten[2,i])
-- setze MengeProBE
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[3,4],str_to_num(Tabelledaten[3,i])
case "DGM1.Entportionierer"
--setze Abflussrate
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[2,5],str_to_num(Tabelledaten[2,i])
-- setze MengeProBE
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[3,5],str_to_num(Tabelledaten[3,i])
case "DGM1.Dosierofen"
--setze Abflussrate
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[2,6],str_to_num(Tabelledaten[2,i])
-- setze MengeProBE
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[3,0],str_to_num(Tabelledaten[3,i])
case "DGM2.Entportionierer"
--setze Abflussrate
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[2,7],str_to_num(Tabelledaten[2,i])
-- setze MengeProBE
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[3,7],str_to_num(Tabelledaten[3,i])
case "DGM2.Dosierofen"
--setze Abflussrate
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[2,8],str_to_num(Tabelledaten[2,i])
-- setze MengeProBE
str_to_obj(Tabelledaten[1,i]).setzeAttribut(Tabelledaten[3,0],str_to_num(Tabelledaten[3,i])


  end


next


------------------
Vielen Dank im Voraus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz