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

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

Thema: DB aus Programm erstellen

  1. #21
    Registriert seit
    07.06.2007
    Beiträge
    93
    Danke
    7
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    ich wollte das Thema CPU-DB aufgreifen.
    Hier in der Firma bin ich neu und stehe vor einem wüsten S7 Programm Haufen! Bei sehr vielen Bausteinen fehlt die Symbolik und auch Merker, Ein- und Ausgänge sind nur teilweise Beschriftet
    Wie finde ich heraus, wo diese CPU-DBs erzeugt werden? Die SFC22 und co sind im Programm nicht verwendet, aber die DBs werden bearbeitet?!

    Viele Grüße
    Eric

  2. #22
    Registriert seit
    18.10.2009
    Beiträge
    220
    Danke
    71
    Erhielt 17 Danke für 16 Beiträge

    Standard

    Hallo,

    ich möchte ebenfalls aus dem Programm heraus mit dem SFC22 DB´s erstellen.

    In den bereits angelegten DB´s ist an der Adresse 0 die Variable "Parametersatz" vom Typ ARRAY[1..9] vom Typ UDT1 angelegt (Insgesamt also 9xUDT1 = 72 Byte).
    Jeder DB, welcher mit dem SFC22 erstellt wird, soll die gleiche Architektur erhalten wie die bereits angelegten DB´s.
    Nun könnte man am Eingangsparameter COUNT ja einfach 72 angeben. Allerdings gehen dann alle Zuordnungen der Adressen in den neuen DB´s verloren.

    Hintergrund ist der, das ich dem Maschinenbetreiber ermöglichen mag, durch Tastendruck seine Datenfamilie um je eine neue Datenbank zu erweitern. Ich finde es unschön hier pauschal x leere Datenbanken vorzuprogrammieren...

    Kann mir hier jemand helfen, eine saubere Lösung zu finden?
    Grüßele vom Bärle

  3. #23
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.520 Danke für 1.282 Beiträge

    Standard

    Du kannst den DB mit jeder beliebigen Nummer, sowie beliebigen Länge erzeugen.
    Innerhalb der jeweiligen CPU-Grenzen natürlich.

    Was du aber unter keinen Umständen kannst, dem erzeugten DB irgend eine Strucktur verpassen.

    Der DB ist in der Online-Sicht immer ein ARRAY OF BYTE.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  4. #24
    Registriert seit
    18.10.2009
    Beiträge
    220
    Danke
    71
    Erhielt 17 Danke für 16 Beiträge

    Standard

    Zitat Zitat von MSB Beitrag anzeigen
    Du kannst den DB mit jeder beliebigen Nummer, sowie beliebigen Länge erzeugen.
    Innerhalb der jeweiligen CPU-Grenzen natürlich.

    Was du aber unter keinen Umständen kannst, dem erzeugten DB irgend eine Strucktur verpassen.

    Der DB ist in der Online-Sicht immer ein ARRAY OF BYTE.

    Mfg
    Manuel
    hmmm.....

    für die SPS spielt das für die Bearbeitung ja keine Rolle, aber wenn jemand online in die Datensätze im DB reinguggt hat er halt keine Zuordnung was was ist.

    Es wäre wirklich prima, dem Datenbaustein eine Struktur zu geben. Und wie ist es wenn man einen DB kopiert? Gibt es vielleicht einen SFC zum DB´s aus dem Programm heraus zu kopieren mit Angabe des Nummernbereichs wie beim SFC22?
    Grüßele vom Bärle

  5. #25
    Registriert seit
    25.01.2011
    Ort
    97980
    Beiträge
    23
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,
    kannst du nicht mit SFC24 testen ob der Baustein da ist ?
    Ret_Val bringt wenn er da ist W#16#80B1
    da konnte man ein jump-Bedingung einfügen
    damit er nicht 2x erstellt wird, ich versuch auch grad sowas
    ähnliches...bin noch am probieren...

  6. #26
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Zitat Zitat von MSB Beitrag anzeigen
    Du kannst den DB mit jeder beliebigen Nummer, sowie beliebigen Länge erzeugen.
    Innerhalb der jeweiligen CPU-Grenzen natürlich.

    Was du aber unter keinen Umständen kannst, dem erzeugten DB irgend eine Strucktur verpassen.

    Der DB ist in der Online-Sicht immer ein ARRAY OF BYTE.
    Was man aber machen könnte um das Zeug zu speichern und dann auch in vernünftiger Struktur zu sichten wäre im Programm einen Blockmove zu machen und zwar auf einen offline erstellten DB dem man die passende Struktur gegeben hat.

    Danach könnte man die im Programm erstellten DBs per Blockmove zum offline erstellten kopieren und könnte die Inhalte vernünftig sichten.

    Irgendwo müsste man dann noch hinterlegen wieviele DBs erstellt wurden damit man auch weiss bis zu welchem DB man daten sichten kann.

  7. #27
    Registriert seit
    25.01.2011
    Ort
    97980
    Beiträge
    23
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Datenbaustein im Ladespeicher erzeugen mit der SFC 82 "CREA_DBL"
    oder
    Einen Datenbaustein erzeugen mit der SFC 85 "CREA_DB"

    oder das:
    Schreiben in einen Datenbaustein im Ladespeicher mit der SFC 84 "WRIT_DBL"
    könnte was sein betrifft sfc22

    hab ich grad gefunden evtl hilft der ?
    Geändert von Heinz2011 (03.02.2011 um 19:42 Uhr)

  8. #28
    Registriert seit
    30.08.2010
    Ort
    Östereich
    Beiträge
    1.458
    Danke
    503
    Erhielt 217 Danke für 192 Beiträge

    Standard

    Und wenn mal einer da ist, kannst du auch offline den mit der Strukrut kopieren so oft du willst (ausser CPU grenzen natürlich), sind dann alle gleich und wenn du sichern lassen willst, brauchst du nur den entsprechenden anzuwählen.
    Elektrotechnik und Elektronik funktioniert mit Rauch (Beweis: Tritt Rauch aus, funktioniert auch das Bauteil nicht mehr)

  9. #29
    Registriert seit
    30.08.2010
    Ort
    Östereich
    Beiträge
    1.458
    Danke
    503
    Erhielt 217 Danke für 192 Beiträge

    Standard

    ist mir gerade eingefallen: DB der in der SPS erzeugt wurdo ohne, kommentar, . . .
    wenn du die details haben willst, dann übertrag den Inhalt in einen DB den du entsprechend kommentiert hast. Das ein bisschen vorbereitet ev in Visu KDaten übertragen anstossen, dann kannst du in dem einen kommentierten super deine Daten betrachten, in der Visu stosst du das mit der entsprechenden DB Auswahl.

    ev hilft dir das weiter.
    Elektrotechnik und Elektronik funktioniert mit Rauch (Beweis: Tritt Rauch aus, funktioniert auch das Bauteil nicht mehr)

  10. #30
    Registriert seit
    18.10.2009
    Beiträge
    220
    Danke
    71
    Erhielt 17 Danke für 16 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, erstmal danke für die rege Hilfe. Ich werde mich gleich morgen wieder im Geschäft dranmachen und weiter probieren.

    Nochmal zum genaueren erklären:
    ich habe eine variable Datenbank. Man kann es sich so vorstellen:

    Pro Teilefamilie einen Datenbaustein (derzeit 3).
    Pro Datenbaustein die Parameter für bis zu 9 Teile aus einem UDT.

    Um dem Kunden eben die Möglichkeit zu geben eine neue Teilefamilie anzulegen möchte ich realisieren, das er durch Tastendruck in der Viso einen neuen DB erstellt.
    Mit dem SFC22 geht das ja prima durch die Eingrenzung der Bausteinnummern in einen Bereich und die automatisch angenommene nächste freie Nummer. Als Anzahl der Bytes kann man ja auch die Summe der Bytes über die 9 UDT´s am SFC22 angeben.
    Soweit funktioniert es ja auch ganz gut.
    Der einzigste Nachteil ist eben, dass ein online erstellte DB keine Kommentare besitzt und somit "nur" eine Byteliste beinhaltet.
    Da das Programm über indirekte Adressierung auf die DB´s zugreift stört sich das Programm ja auch nicht daran, das keine Kommentare im DB sind. Es werden ja nur die Dateninhalte verarbeitet.

    Nur wenn ein Techniker mal ins Programm schauen muss ist es halt für ihn sehr schwer alles nachzuvollziehen. Daher suche ich eben noch die Möglichkeit in den online erstellten Baustein durch reine Programmierung auch die Kommentare in den DB zu bekommen. Das erweitern der Datenbank soll rein online möglich sein.

    Auch ein Kopieren der Inhalte eines anderen DB´s in den online erstellten DB über BLOCKMOVE ist auch keine Lösung, da ja hier auch nur die Dateninhalte kopiert und keinen Einfluss auf die Kommentare nimmt.

    Ein SFC der DB´s kopiert im Stil des SFC22 mit Bereicheinschränkung und Ermittlung der nächsten freien Nummer wäre sozusagen die Eierlegendewollmilchsau.

    Vielleicht fällt noch jemandem was Anderes ein was ich noch ausprobieren kann.
    Die OSCAT-Bibliothek hab ich kurz vor Feierabend auch schon grob überflogen aber nichts passendes gefunden.
    Grüßele vom Bärle

Ähnliche Themen

  1. Programm erstellen (IEC, usw.)
    Von marel im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 22.12.2010, 11:05
  2. Einfaches SPS Programm erstellen
    Von KeinPlan im Forum Programmierstrategien
    Antworten: 9
    Letzter Beitrag: 13.06.2010, 14:07
  3. Programm neu erstellen oder Großputzaktion??
    Von steppenwolf im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 28.08.2008, 00:10
  4. VB Programm erstellen
    Von demmy86 im Forum Hochsprachen - OPC
    Antworten: 10
    Letzter Beitrag: 20.01.2008, 16:29
  5. Antworten: 19
    Letzter Beitrag: 10.01.2006, 15:44

Lesezeichen

Berechtigungen

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