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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: neue frage neues glück =) *KF 16bit-Festpunktzahl erhöhen!

  1. #11
    Registriert seit
    29.01.2007
    Ort
    Sandkrug
    Beiträge
    147
    Danke
    7
    Erhielt 36 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo loewe,
    ich sehe, du bist gerade online. In 5 Minuten bekommst du von mir eine ausführliche Antwort.
    Bis gleich !

  2. #12
    Avatar von loewe
    loewe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.02.2007
    Beiträge
    9
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @eNDE

    danke ja ich bin da freue mich schon

    dank! euch anderen!!
    für die superschnellen netten posts!!

    @volker
    danke für dein intresse
    RAGBIO.zip


    hier die daten
    kann auch wenn benötigt wird eine liste mit dem OP,PB,FB,E,A,M kopieren und schicken. Sind 10 seiten, müsste diese erst einscannen!!

    es geht um den FB 060 wie schon hochgeladen !
    danke !!!!
    Geändert von loewe (17.02.2007 um 18:35 Uhr)

  3. #13
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.268
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    @loewe

    Der Baustein tut doch genau das, er addiert bis 10000 (Low) und bringt dann einen Übertrag in ein zweites DW (High), das die 10000-der zählt. Wenn du diese 2 DW an den Rechner überträgst, kann der doch sofort daraus den Zählwert errechnen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #14
    Registriert seit
    29.01.2007
    Ort
    Sandkrug
    Beiträge
    147
    Danke
    7
    Erhielt 36 Danke für 25 Beiträge

    Standard

    Also gleich nochmal:
    Ich habe mir mal ausführlich deinen S5-Code angesehen und habe im positiven Sinne einige Anmerkungen zu machen.
    1. Gleich der erste Befehl ist eine so genannte "Erstanweisung". In dieser ist es egal, ob du diese mit U(nd) oder O(der) beginnst. Erst die nächste Anweisung legt die Verknüpfung fest. Da es sich um eine ODER-Verknüpfung handelt, sollte man dann auch die Erstanweisung mit O(der) beginnen. Es ist übersichtlicher.
    2. Eine Sprunganweisung hinterlässt in STEP5 im VKE immer eine 1. Eine sofort nachfolgende Sprunganweisung ist deshalb immer erfüllt und wird ausgeführt. Folge: Niemals 2 unmittelbar aufeinander folgende Sprunganweisungen programmieren. Und erst recht nicht, wenn das Sprungziel sowieso die nächste Programmzeile ist.
    3. Der Sprungbefehl SPP hat es richtig in sich und verleitet schnell zu falschen Überlegungen. Er ist mehr gedacht beim abtesten von Rechenergebnissen, denn er prüft das Ergebnis auf positiv. Bei einer Vergleichsfunktion prüft dieser Sprungbefehl, ob der Inhalt von Akku2 größer ist als der Inhalt von Akku1. Ergebnis: Die Funktion deines Programmes erschließt sich erst bei sehr genauer Analyse. Es geht, glaube ich, auch sehr viel einfacher.
    4. Die Hinweise hier im Forum bezüglich der absoluten Adressen in deinem FB sind richtig. Wie sie dir dargestellt werden, halte ich aber nicht sehr hilfreich für dich.
    Deshalb: FB's sollte man immer voll parametrierbar machen. D.h. im Inneren sollten keine Absolutoperanden vorkommen. Stellt sich nun im Laufe der Zeit heraus, dass noch Formaloperanden eingefügt werden müssen, dann kann man das am einfachsten tun, indem man den Baustein noch einmal komplett neu eintippt. Das vermeidet auf jeden Fall nachträgliche (immer negative) Überraschungen. Warum das so ist, würde jetzt hier zu weit führen.
    5. Ich gehe mal davon aus, dass dein Baustein im LOW-Wort bis 10000 zählt und danach das HIGH-Wort um 1 erhöht, gleichzeitig das LOW-Wort wieder löscht (Zählumfang damit 100.000.000). Betätigt man E0.1 ODER E0.6 (Löschtasten) sollen LOW- und HIGH-Wort gelöscht werden. (Das ist bei deinem Code aber nicht so, da zählt das HIGH-Wort mit hoher Geschindigkeit vorwärts!).
    6. Nachfolgend ein Codevorschlag, der nach meiner Meinung übersichtlicher ist (und trotzdem funktioniert) Schau ihn dir mal in Ruhe an.
    Code:
    :U   =  EIN                             pos.Flanke bilden fuer EIN
    :UN  =  MERK                      MERK ist der Flankenmerker
    :=   =  FLAN                          FLAN ist der Zykluswischer
    :U   =  FLAN
    :S   =  MERK
    :UN  =  EIN
    :RB  =  MERK
    :
    :UN  =  FLAN                      Falls keine Flanke,
    :SPB =  M001                       <-- dann springe nach M001
    :
    :L   KF +1                             Zu LOW 1 addieren
    :L   =  LOW
    :+F
    :T   =  LOW
    :
    :L   =  LOW                          Ist LOW kleiner als 10000
    :L   KF +10
    :<F
    :SPB =  M001                       <-- ja, dann springe nach M001
    :
    :L   KF +0                             sonst loesche LOW
    :T   =  LOW
    :L   KF +1                             und addiere zu HiGH 1
    :L   =  HIGH
    :+F
    :T   =  HIGH
    :
    :L   =  HIGH                         Ist HIGH kleiner als 10000
    :L   KF +10
    :<F
    :SPB =  M001                       <-- ja, dann springe nach M001
    :
    :L   KF +0                             sonst loesche HIGH
    :T   =  HIGH
    :
    M001    :UN  E  0.1                            E0.1 UND E0.6  = 0 ?
    :UN  E  0.6
    :SPB =  ENDE                      <-- dann beende das Programm
    :
    :L   KF +0                             sonst loesche LOW und HIGH
    :T   =  LOW
    :T   =  HIGH
    ENDE    :BE
    Falls noch Fragen sind, bitte melden.
    Ansonsten mfG eNDe

  5. #15
    Avatar von loewe
    loewe ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.02.2007
    Beiträge
    9
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ich grüße alle weltbestinnen und weltbesten SPS- Programmierer und
    SPS - Fachkräfte westlich des Urals !!!!!!!


    möchte mich für die vielen Antworten und Lösungsvorschläge bedanken !
    @ Jürgk und Volker


    alt
    Netzwerk 1 von 1 Bib =
    Bez :EIN E/A/D/B/T/Z: E BI/BY/W/D: BI
    Bez :LOW E/A/D/B/T/Z: A BI/BY/W/D: W
    Bez :HIGH E/A/D/B/T/Z: A BI/BY/W/D: W
    Bez :MERK E/A/D/B/T/Z: A BI/BY/W/D: BI
    Bez :FLAN E/A/D/B/T/Z: A BI/BY/W/D: BI
    :U E 0.1
    :O E 0.6
    :SPB =M001
    ...


    neu
    Netzwerk 1 von 1 Bib =
    Bez :EIN E/A/D/B/T/Z: E BI/BY/W/D: BI
    Bez :EIN2 E/A/D/B/T/Z: E BI/BY/W/D: BI
    Bez :EIN3 E/A/D/B/T/Z: E BI/BY/W/D: BI
    Bez :LOW E/A/D/B/T/Z: A BI/BY/W/D: W
    Bez :HIGH E/A/D/B/T/Z: A BI/BY/W/D: W
    Bez :MERK E/A/D/B/T/Z: A BI/BY/W/D: BI
    Bez :FLAN E/A/D/B/T/Z: A BI/BY/W/D: BI
    :U =EIN2
    :O =EIN3
    :SPB =M001
    ...

    die frage ist vielleicht eine dumme , woher weiss U und O das der Eingang E0.1 und E0.6 angesprochen ist ?????



    An eNDe

    seine AWL draue ich mich nicht so ran, weil die Anlage laufen muss,
    auch wenn sie nicht so top läuft!!! und eine CPU 115 habe ich nicht zu Hause !!!!!!

    vieleicht kann man den FB auch auf eine CPU 102 schreiben und prüfen.


    Habe auf siemes service und support unter FAQ :

    Umwandlung einer 16-bit Festpunktzahl in 32-bit Festpunktzahl für
    Standard-Funktionsbausteine im AG 115, AG 95, AG100

    so das ich höher als 32 000 komme über das low signal !!!!!

    versuche gleich noch den link anzuhängen !!!!!


    Macht es sinn oder nicht weil ja wir eine m³ zahl von 1000 bis 2000
    pro tag haben ,die erfasst werden müssen Protokollarisch im Leitrechner.

    hoffe auf Antworten, Danke !


    http://support.automation.siemens.co...ew/de/15199571
    Geändert von loewe (28.02.2007 um 21:52 Uhr)
    Zitieren Zitieren frage!!!( teil 2 ) zu KF 16 bit Festpunktzahl erhöhen  

  6. #16
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.268
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    @Loewe

    Du hast jetzt bei Aufruf des FB zwei Inputs mehr, an die mußt die den E0.1 und den E0.6 schreiben.

    Wo hast du deinen zuerst geposteten Baustein her, aus dem Originalprogramm? Weiß nicht was eNDe uns sagen wollte, dein Baustein müßte so laufen.

    Es gibt für die S5 Bausteine, die auch mit 32-Bit-Zahlen umgehen können, die muß man aber kaufen, soweit ich mich entsinne. Du bekommst dann aber zum Schluß auch nur zwei getrennte 16-Bit-Zahlen, da die Teile nun mal nur mit 16-Bit-Zahlen umgehen können, also kannst du das auch nicht ohne weiteres weiterverwenden. Das ist das was mir dazu noch im Gedächtnis geblieben ist, vielleicht weiß noch jemand näheres dazu.

    Was ist denn nun genau das Problem? Wenn du die 2 16-Bit-Werte aus dem FB an das Leitsystem übermittelst, kann dieses doch problemlos daraus den 32-Bit-Wert berechnen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  7. #17
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.866
    Danke
    78
    Erhielt 806 Danke für 549 Beiträge

    Standard

    Zitat Zitat von loewe Beitrag anzeigen
    die frage ist vielleicht eine dumme , woher weiss U und O das der Eingang E0.1 und E0.6 angesprochen ist ?????
    das ist doch das grundlegende der indirekten adressierung.
    beispiel:
    dem fb übergibts du die variable E0.0 an den parameter EIN2.
    intern im fb arbeitest du mit EIN2. der fb weiss durch die parameterübergabe, dass EIN2 der E0.0 ist und arbeitet auch damit.
    so einfach ist das.

    vieleicht kann man den FB auch auf eine CPU 102 schreiben und prüfen
    .
    ja, sollte gehen.

    ......so das ich höher als 32 000 komme über das low signal !!!!!
    Macht es sinn oder nicht weil ja wir eine m³ zahl von 1000 bis 2000
    pro tag haben ,die erfasst werden müssen Protokollarisch im Leitrechner.
    also ich würde das so umschreiben, das ich mit einer INT-Variablen klarkäme. das erleichtert dir die rechnungen im programm ungemein.
    nimm deinen absoluten maxwert den du haben könntest und scaliere dir den so, das du mit 32768 klar kommst. nimm dann einen geraden faktor, und nicht irgendeine krumme zahl, das lässt sich im prog dann leichter überblicken.
    ich denke nicht, das es hier auf ein paar hundert liter ankommt.

    zur änderung deines fb.
    s5 handhabt das so, das die parameter nicht nach dem 'text' im folgenden programm benannt werden, sondern nach der stelle an der sie in der deklaration stehen.
    beispiel:
    deklaration:
    EIN1: bit //position 1
    EIN3: bit //position 2

    u =ein1
    = m0.1
    u =ein3
    = m0.3

    nun fügst du einen parameter ein.
    deklaration:
    EIN1: bit //position 1
    EIN2: bit //position 2
    EIN3: bit //position 3

    s5 macht nun aus deinem code folgendes:
    u =ein1
    = m0.1
    u =ein2
    = m0.3

    wenn du deine parameter an das ende der deklaration einfügst bleibt der code ok. das sieht zwar nicht so schön aus, ist aber sicher.

    also so:
    EIN1: bit //position 1
    EIN3: bit //position 2
    EIN2: bit //position 3

    so beilbt dieser code bestehen:
    u =ein1
    = m0.1
    u =ein3
    = m0.3
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  8. #18
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard

    Zitat Zitat von loewe Beitrag anzeigen

    vieleicht kann man den FB auch auf eine CPU 102 schreiben und prüfen.
    Eher nicht, denn die CPU102 kennt keine FB-Parameter, die gibt es erst ab 103.

  9. #19
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.866
    Danke
    78
    Erhielt 806 Danke für 549 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von argv_user Beitrag anzeigen
    Eher nicht, denn die CPU102 kennt keine FB-Parameter, die gibt es erst ab 103.
    ohh ja, hast recht. hab ich nicht dran gedacht.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

Ähnliche Themen

  1. Unity Pro - 16bit Integer zerlegen
    Von holgermaik im Forum Sonstige Steuerungen
    Antworten: 7
    Letzter Beitrag: 23.01.2011, 02:32
  2. Hexmuster Drehgeber Profibus zu Festpunktzahl umwandeln?
    Von Bär1971 im Forum Programmierstrategien
    Antworten: 4
    Letzter Beitrag: 06.11.2009, 21:22
  3. Festpunktzahl in Gleitkommazahl umwandeln.
    Von Georgius im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 27.10.2009, 21:44
  4. ASI 16bit Analogmodul
    Von adi68 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 29.09.2006, 13:18
  5. neue Frage über S5
    Von waldy im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 31.10.2003, 08:19

Lesezeichen

Berechtigungen

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