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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: DI nach ASCI-Wandeln

  1. #1
    Registriert seit
    01.10.2010
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich versuche schon 1 Tag lang den Baustein FC5 (DI_STRING)
    zu verwenden,
    aber ich krieg das einfach nicht hin mit dem Ausgangsparameter.
    Ich habs jetzt auf einer Temp-Variable, aber wie bekomme ich das
    aus dem Baustein raus in z.B. einen Datenbaustein.
    I/O-Variablen meckert er immer an.
    Besten Dank im Voraus.
    Zitieren Zitieren DI nach ASCI-Wandeln  

  2. #2
    Registriert seit
    29.08.2009
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Probier es mal so!!
    Angehängte Grafiken Angehängte Grafiken

  3. #3
    simaticfan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.10.2010
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von ridel Beitrag anzeigen
    Probier es mal so!!
    Danke erstmal für den schnellen Tip!
    Aber sollte das auch mit Datenbaustein als Endziel gehen?

    Bei mir geht die CPU(319-3 PN/DP) in Stop,
    wenn ich ein DBD als Ziel angebe!?
    (s.Anhang)
    Der DB ist in der CPU vorhanden.

    Oder hab ich da was falsch verstanden?
    Angehängte Grafiken Angehängte Grafiken

  4. #4
    Registriert seit
    29.08.2009
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wie sieht denn dein DB85 aus? Ist der lang genug??

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.793
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    deinen TEMP1 solltest du als STRING deklariert haben. Außerdem empfiehlt es sich bei der Verwendung von Siemens-Bausteinen zur String-Behandlung ganz grundsätzlich den übergebenen String zu initialisieren - dass heißt in den Header-Bytes desselben die deklarierte Länge und die tatsächliche Länge eintragen.
    Dann sollte alles zu deiner Zufriedenheit funktionieren ...

    Gruß
    Larry

  6. #6
    simaticfan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.10.2010
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von ridel Beitrag anzeigen
    Wie sieht denn dein DB85 aus? Ist der lang genug??
    Wie lang muss der denn mindestens sein?
    Ich hatte erstmal 100 Bytes lang eingerichtet.
    Müssen das eventuell > 256 sein?

  7. #7
    Registriert seit
    17.01.2010
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    schreibs mal auf das DBD2

    gruss andreas

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.793
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Hallo,
    dein String kann ja maximal so lang werden, wie die Ursprungszahl + Vorzeichen + 2 Headerbytes. Da sollte 100 schon genügen.

    Aber by the way ... warum legst du den String, wenn du ihn in einen DB haben willst, nicht auch gleich dort an und läßt den SFC dahin schreiben ?
    Ganz besonders gut geht das dann auch noch über einen symbolischen Zugriff ...

    Gruß
    Larry

  9. #9
    simaticfan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    01.10.2010
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    dein String kann ja maximal so lang werden, wie die Ursprungszahl + Vorzeichen + 2 Headerbytes. Da sollte 100 schon genügen.

    Aber by the way ... warum legst du den String, wenn du ihn in einen DB haben willst, nicht auch gleich dort an und läßt den SFC dahin schreiben ?
    Ganz besonders gut geht das dann auch noch über einen symbolischen Zugriff ...

    Gruß
    Larry
    Danke Larry, aber ich hatte ja schon lange versucht direkt aus dem FC5 in
    meinen Ziel-DB zu schreiben, nur habe ich das nie hinbekommen.
    Kannst du mir kurz mitteilen, was ich da an Parametern einzugeben hätte?

  10. #10
    Registriert seit
    17.01.2010
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Da sollte 100 schon genügen
    man sollte den string aber vorher initialisieren da er sonst schon 256 bytes lang wird.

    deswegen wird ihm auch die CPU auf Stop gehen da der DB zu kurz ist.

    probiers mal so..... Ich kanns zwar nicht testen aber sollte gehen.

    LAR1 P##test
    L 4 // STRING-Länge
    T LB [AR1,P#0.0] // im MAX Len Byte des Strings eintragen
    L 4 // tatsächliche Länge des Strings
    T LB [AR1,P#1.0]

    CALL "DI_STRNG"
    I :=ED4
    RET_VAL:=#test

    CALL "BLKMOV"
    SRCBLK :=#test
    RET_VAL:=#retval_sfc20
    DSTBLK :=DB100.DBD0

Ähnliche Themen

  1. Int Werte Analogwerte von S7 nach S5 wandeln
    Von Katrin1982 im Forum Simatic
    Antworten: 36
    Letzter Beitrag: 29.10.2010, 16:27
  2. Int nach TIME wandeln
    Von merlin im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 15.03.2006, 10:11
  3. Wandeln von DINT nach INT
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 12.01.2006, 11:20
  4. von Real nach Integer wandeln
    Von tuppes38 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 27.09.2005, 18:41
  5. Real nach Integer wandeln
    Von paula23 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 14.06.2005, 22:53

Lesezeichen

Berechtigungen

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