Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 28 von 28

Thema: DB nach Werten durchsuchen und Adresse des Eintrags herausfinden

  1. #21
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von martin1988 Beitrag anzeigen
    Wie wärs wenn du dir den Zeiger im Programm einfach anhand der vorgaben am übergeordneten baustein zusammen baust?
    Paar sprünge, paar multiplikatoren, fertig! ...
    sicher, ist so einfach...

    Zitat Zitat von martin1988 Beitrag anzeigen
    Ihr habt alle zu viel speicher in euren SPS'n ...

    War am Wochenende schon kurz davor nen universalbaustein zu basteln, einfach weils mir in den fingern juckte!
    Ist bisschen tricky aber auch in awl realisierbar ... hätte ich lust drauf.

    Könnte dir anbieten dir da was zu schreiben bis ende nächster woche (bin jetzt erstmal viel unterwegs).

    Schreib dann aber bitte noch mal detailiert WAS du suchen willst oder ob du einen baustein haben willst der alles suchen kann (INT/WORD/REAL/CHAR/STRING).
    Wobei ich immernoch net raffe wieso man auf die idee kommt nen string oder char's in ner sps zu speichern ...
    na, dann raff´ dich mal auf bis ende nächster Woche, aber tricky-mässig !


    Zitat Zitat von martin1988 Beitrag anzeigen
    Nach was willst du alles suchen? Liegen da Strings/Chars zwischen?

    Wenn ich weiß wonach du alles suchen können willst (scheiss deutsch ...) kann ich da, wie vorher schon gesagt, bis ende nächster woche was
    Nach deinen Äusserungen zu urteilen, kannst du ja richtig was (ohne jede Wertung)


    Bist du auf der Suche nach Aufträgen?

    Gern kannst du dann deine Fertigkeiten in unserem Thread "Suche und Biete" feilbieten
    kind regards
    SoftMachine

  2. #22
    Registriert seit
    05.11.2011
    Beiträge
    75
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also erstmal Danke Leute, ich habe wie gesagt noch nicht die Zeit gehabt eure Codeschnipsel zu testen bzw. richtig durch zu gehen - habe Urlaub und da will ich den S7-Kram nicht anpacken ^^

    Ich bin nicht so Erfahren, dass ich solche Dinge in AWL selbst code - fertigen Code kann ich aber durchaus verstehen und anpassen. SCL kann ich quasi gar nicht. Daher suche ich wie gesagt einen fertigen Baustein wie den TBL_Find. Bevor ich falsch verstanden werde - ich rede hier von (für mich) kompliziertem AWL-Kram und eben SCL - nicht generell SPS. Immerhin fang ich an, mich an die Pointer- und Adressregistersachen zu gewöhnen ^^



    Die Sache mit dem ANY-Pointer (Typ ANY nicht TYP Pointer) ist deswegen nötig, weil die Funktion universell werden soll. Ich weiß nicht, ob dieser univserselle Baustein mit einem festen DB funktionieren "darf" oder dieser eben frei wählbar sein soll. Daher möchte ich der "Suchfunktion" (wie TBL_Find) gerne einen frei wählbaren DB übergeben. Ein fester DB ist kein Problem - in dem Fall reicht die TBL_Find vollkommen aus.

    Sofern es keine weiteren Ideen/Codeschnipsel oder Hinweise auf fertige Funktionen von Siemens oÄ gibt, reicht mir das erstmal aus. Ich werde dann nochmal Posten, wenn die Codeschnipsel getestet sind




    EDIT:
    Nochmal für die Interessierten die Aufgabe

    Ausgangssituation: in einem DB befinden sich Materaldaten. hierzu wird wohl ein UDT verwendet, welcher vermutlich wie folgt aufgebaut sein wird

    > Ident-Code - String
    >> Position_1 - INT
    >> Position_2 - INT
    >> Position_3 - INT
    >> Position_n - INT

    Dieser UDT wird in einem DB so oft platziert, wie es Teile geben soll. Der DB wiederum wird von einem Leitsystem beschrieben. Weil es aber zeitkritische Vorgänge zu steuern gibt, müssen hier Aufgaben von der SPS bzw. von dezentralen Steuerungen erledigt werden.
    Das Handling erfolgt über das Leitsystem - hier wird also sichergestellt, dass im DB keine Ident-Codes doppelt vorkommen werden. Ebenso wird das Leitsystem alte Einträge löschen bzw. überschreiben und neue rechtzeitig übertragen.

    Die INT-Nummern der Positionen lassen sich dann im SPS-Programm verschiedenen Aktionen zuordnen.



    Die gesuchte (Grund)Funktion soll nun diesen idealerweise frei wählbaren DB durchsuchen. Der Rückgabewert soll die DB-Adresse des gesuchten Eintrages oder einen anderen Wert liefern, über welchen auf diese Adresse geschlossen werden kann (die Funktion TBL_Find liefert die Listenposition als INT-Wert).
    Diese (Grund)Funktion wird dann in einen überlagerten FC/FB eingebaut, welcher zum Einen den idealerweise variabel wählbaren DB sowie den zu suchenden String an die Grundfunktion übergibt und zum Anderen das restliche Handling erleidgt (=was an den einzelnen Positionen passieren soll).

    Später soll die Funktion dann nicht mehr verändert werden. Über die vorzusehenden Eingänge der überlagerten Funktion wird diese an verschiedene Szenarien angepasst.
    Es wird also Eingänge geben, um den gewünschten DB mit den Daten zu wählen, den zu suchenden String, die Zahl der vorhandenen Positionen usw...
    Geändert von saarlaender (20.06.2012 um 09:55 Uhr)

  3. #23
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von saarlaender Beitrag anzeigen
    Also erstmal Danke Leute, ich habe wie gesagt noch nicht die Zeit gehabt eure Codeschnipsel zu testen bzw. richtig durch zu gehen - habe Urlaub und da will ich den S7-Kram nicht anpacken ^^

    Ich bin nicht so Erfahren, dass ich solche Dinge in AWL selbst code - fertigen Code kann ich aber durchaus verstehen und anpassen. SCL kann ich quasi gar nicht. Daher suche ich wie gesagt einen fertigen Baustein wie den TBL_Find. Bevor ich falsch verstanden werde - ich rede hier von (für mich) kompliziertem AWL-Kram und eben SCL - nicht generell SPS. Immerhin fang ich an, mich an die Pointer- und Adressregistersachen zu gewöhnen ^^



    Die Sache mit dem ANY-Pointer (Typ ANY nicht TYP Pointer) ist deswegen nötig, weil die Funktion universell werden soll. Ich weiß nicht, ob dieser univserselle Baustein mit einem festen DB funktionieren "darf" oder dieser eben frei wählbar sein soll. Daher möchte ich der "Suchfunktion" (wie TBL_Find) gerne einen frei wählbaren DB übergeben. Ein fester DB ist kein Problem - in dem Fall reicht die TBL_Find vollkommen aus.

    Sofern es keine weiteren Ideen/Codeschnipsel oder Hinweise auf fertige Funktionen von Siemens oÄ gibt, reicht mir das erstmal aus. Ich werde dann nochmal Posten, wenn die Codeschnipsel getestet sind




    EDIT:
    Nochmal für die Interessierten die Aufgabe

    Ausgangssituation: in einem DB befinden sich Materaldaten. hierzu wird wohl ein UDT verwendet, welcher vermutlich wie folgt aufgebaut sein wird

    > Ident-Code - String
    >> Position_1 - INT
    >> Position_2 - INT
    >> Position_3 - INT
    >> Position_n - INT

    Dieser UDT wird in einem DB so oft platziert, wie es Teile geben soll. Der DB wiederum wird von einem Leitsystem beschrieben. Weil es aber zeitkritische Vorgänge zu steuern gibt, müssen hier Aufgaben von der SPS bzw. von dezentralen Steuerungen erledigt werden.
    Das Handling erfolgt über das Leitsystem - hier wird also sichergestellt, dass im DB keine Ident-Codes doppelt vorkommen werden. Ebenso wird das Leitsystem alte Einträge löschen bzw. überschreiben und neue rechtzeitig übertragen.

    Die INT-Nummern der Positionen lassen sich dann im SPS-Programm verschiedenen Aktionen zuordnen.



    Die gesuchte (Grund)Funktion soll nun diesen idealerweise frei wählbaren DB durchsuchen. Der Rückgabewert soll die DB-Adresse des gesuchten Eintrages oder einen anderen Wert liefern, über welchen auf diese Adresse geschlossen werden kann (die Funktion TBL_Find liefert die Listenposition als INT-Wert).
    Diese (Grund)Funktion wird dann in einen überlagerten FC/FB eingebaut, welcher zum Einen den idealerweise variabel wählbaren DB sowie den zu suchenden String an die Grundfunktion übergibt und zum Anderen das restliche Handling erleidgt (=was an den einzelnen Positionen passieren soll).

    Später soll die Funktion dann nicht mehr verändert werden. Über die vorzusehenden Eingänge der überlagerten Funktion wird diese an verschiedene Szenarien angepasst.
    Es wird also Eingänge geben, um den gewünschten DB mit den Daten zu wählen, den zu suchenden String, die Zahl der vorhandenen Positionen usw...
    Genau das sollte der Fc machen den Ich hier gepostet habe...

    Du gibts auf den Parameter "
    VERGLEICHS_ANY" einen ANY auf den zu suchnden Text, auf "DB_VERGLEICH" die Nummer des DBs, auf "GROESE_STRUCT_VERGLEICH" die größe deines UDTs, auf "ANZAHL_VERGLEICH" die Anzahl wie oft der UDT im DB vorkommt und auf "START_VERGLEICH" den Versatz, den dein feld im UDT hat (bei dir wahrscheinlich 0).

    Dann sollte mein Fc bei einer Übereinstimmung eine Nummer >0 ausgeben!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  4. #24
    Registriert seit
    02.02.2012
    Ort
    Kaarst
    Beiträge
    126
    Danke
    10
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Zitat Zitat von SoftMachine Beitrag anzeigen
    sicher, ist so einfach...

    na, dann raff´ dich mal auf bis ende nächster Woche, aber tricky-mässig !

    Nach deinen Äusserungen zu urteilen, kannst du ja richtig was (ohne jede Wertung)

    Bist du auf der Suche nach Aufträgen?

    Gern kannst du dann deine Fertigkeiten in unserem Thread "Suche und Biete" feilbieten
    Nen Zeiger zusammen bauen aus nen paar Info's ist ja wohl kein Problem, auch ohne ANY!
    Werds mir trickymäßig zusammenstricken, hoffe nur das mir die Zeitplanung nicht zerhauen wird!

    Und naja was heisst können ... hab halt schon einiges geschrieben und denke ich bin für meine paar Jahre die ich den Job jetzt mache verdammt fit .. abgsehen davon bin ich halt sehr ehrgeizig bei so tricky-aufgaben!

    Überlege zZ echt ob ich nen Kleingewerbe anmelde von daher ist noch nix mit groß anbieten, es sei denn es ist anders regelbar ^^"

    @saarlaender
    Mit nem UDT wirds ja noch einfacher!

    Wenn ich nachher zu hause bin fang ich mal an zu basteln.

  5. #25
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    Zitat Zitat von martin1988 Beitrag anzeigen
    ...

    Und naja was heisst können ... hab halt schon einiges geschrieben und denke ich bin für meine paar Jahre die ich den Job jetzt mache verdammt fit ..
    ...
    Überlege zZ echt ob ich nen Kleingewerbe anmelde von daher ist noch nix mit groß anbieten, es sei denn es ist anders regelbar ^^"
    Naja, geht wohl erstmal auch nebenberuflich ohne Gewerbeanmeldung

    aber wie gesagt, hier könnten deine Fertigkeiten auf fruchtbaren Boden fallen: http://www.sps-forum.de/forumdisplay.php/19-Suche-Biete
    kind regards
    SoftMachine

  6. #26
    Registriert seit
    02.02.2012
    Ort
    Kaarst
    Beiträge
    126
    Danke
    10
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Zitat Zitat von SoftMachine Beitrag anzeigen
    Naja, geht wohl erstmal auch nebenberuflich ohne Gewerbeanmeldung

    aber wie gesagt, hier könnten deine Fertigkeiten auf fruchtbaren Boden fallen: http://www.sps-forum.de/forumdisplay.php/19-Suche-Biete
    Problem ist halt das ich ohne Kleingewerbeschein schlecht ne Rechnung stellen kann?!
    Oder hab ich da was übersehen?

  7. #27
    Registriert seit
    05.11.2011
    Beiträge
    75
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das is Off-Topic, aber nen Gewerbeschein für 40€ wird man sich wohl noch schnell organisieren können oder?

  8. #28
    Registriert seit
    02.02.2012
    Ort
    Kaarst
    Beiträge
    126
    Danke
    10
    Erhielt 7 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich werd mal nachhören wie schnell dat geht!

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 03.12.2011, 01:05
  2. DB nach Werten durchsuchen - SCL ?
    Von karsten.schmidt im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 26.03.2011, 13:15
  3. DINT nach INT bei positiven und ganzzahligen Werten (Frequenzmessung)
    Von poppycock im Forum Programmierstrategien
    Antworten: 9
    Letzter Beitrag: 23.07.2009, 21:28
  4. Antworten: 5
    Letzter Beitrag: 02.07.2007, 23:07
  5. Adresse herausfinden
    Von Knoll im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 07.09.2006, 10:02

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •