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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 34

Thema: IBIS LED Anzeige ansteuern

  1. #21
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das ist ganz normales AWL was du auch mit deiner Version verwenden kannst.
    Du kannst den Code über eine AWL-Quelle wieder zu einem Baustein übersetzen.
    Im Simatic-Manager fügst du in deinem Projekt im Ordner "Quellen" eine neue AWL-Quelle ein. Die Quelle öffnest du, und fügst dort den Code aus meinem Anhang ein.

    Dann gehst du in die Symboltabelle, und fügst das Symbol "IBIS_string_erzeugen" (ohne Anführungszeichen) ein, mit der Adresse FC xy. Für xy gibst du eine freie FC-Nummer an.
    Dann kannst du die AWL-Quelle übersetzen (Menü Datei -> Übersetzen), und erhältst dann im Bausteinordner einen FC. Diesen kannst du dann in deinem Programm aufrufen.

  2. #22
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hab gerade in anderem Beitrag gesehen, ist SCL, richtig?

  3. #23
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    sorry,
    erst lesen, dann schreiben Christian

  4. #24
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Bekomme beim übersetzen der Quelle zwei Fehler:
    F Ze 000197 Sp 013: Syntaxfehler bei #str.
    F Ze 000197 Sp 018: Syntaxfehler bei 22.
    Es wird folgende Zeile markiert:
    T #str[22];// Prüfsumme

  5. #25
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hab den Fehler gefunden.
    ; vergessen!!!

  6. #26
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.284
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard

    Zitat Zitat von Sternfahrer463 Beitrag anzeigen
    Es wird folgende Zeile markiert:
    T #str[22];// Prüfsumme
    Hast Du an dem Programmtext was geändert? Diese Zeile kommt in dem Programm von Thomas garnicht vor.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #27
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja, die 0 hinter dem T im Kopf ist die Taktzeit und gehört nicht zum Messwert.

    Das habe ich angepasst und dabei beim XOW eine Zeile davor das ; vergessen.

    Nun habe ich übersetzt und den Baustein übertragen.

    Jetzt möchte das Programm im OB1 das ich folgendes eingebe:

    Wert:= z.B. 85.12

    Len: = ? wieso, ich dachte das betimmt der FC
    str:= ???

  8. #28
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Der Parameter str ist der String.
    Wenn ich das richtig gelesen habe, hast du diesen im DB11 angelegt. Am Besten ist wenn du symbolisch programmierst. Dazu musst du dem DB11 in der Symboltabelle einen symbolischen Namen verpassen, z.B. "DB_Ibis_Daten".
    Wenn dein String in diesem DB dann das Symbol "ibis_string" hat, dann schreibst du an den Aufruf:
    str := "DB_Ibis_Daten".ibis_string

    An den Ausgang len kannst du eine Variable anlegen, die du an den Eingang LEN des Sendebausteins weitergeben kannst. Z.B. ein Merkerwort oder eine temporäre Variable.

    Versuche lieber den Bausteincode zu verstehen und ihn an deine Gegebenheiten anzupassen, anstatt ihn 1:1 einsetzen zu wollen. Es kommen sicher noch mehr Dinge die du gerne anders hättest.

  9. #29
    Sternfahrer463 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.02.2015
    Beiträge
    29
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo mal wieder,
    mir ist beim testen der Weitenmessung aufgefallen, das einige Werte von der LED Anzeige nicht oder falsch angezeigt werden.
    Ich habe den FC von Thomas verwendet.
    Folgendermaßen habe ich getestet:
    den DB in dem der Realwert gespeichert wird und den der FC als "Wert" verwendet, habe ich mit der Brille beobachtet und gleichzeitig mit dem Wert auf der LED Anzeige verglichen.
    das habe ich Impuls für Impuls (bis 3,00 Meter) zwei mal durchgespielt.
    folgendes kam dabei heraus:
    Wert im DB=>Wert auf Anzeige (nur die Werte wo etwas nicht passte, alle anderen Werte sind OK)
    0.53=>0.52
    0.59=>0.58
    1.05=>1.04
    1.06=>1.05
    1.17=>1.16
    1.18=>1.17
    2.09=>2.08
    2.10=>2.09
    2.11=>2.10
    2.12=>2.11
    2.34=>2.33
    2.35=>2.34
    2.36=>2.35
    2.37=>2.36
    ich habe bei den Fehlwerten mehrere Übertragungsimpulse gewartet, doch die Werte blieben falsch.
    hat jemand eine Idee woran das liegen kann?
    Gruß Christian

  10. #30
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das ist ja in der Tat so, habe ich echt nicht mit gerechnet
    Ich kann aber momentan noch nicht detailliert erklären warum das passiert. Ich hätte gedacht, dass es bei deinem Wertebereich und Anzahl der Stellen da noch keine Probleme geben sollte. Das muss ich mir erst genauer zu Gemüte führen.

    Bei meinem Code kannst du das korrigieren indem du am Anfang um 3 Stellen verschiebst und dann wieder eine zurück.
    Code:
    // Dezimalstelle verschieben 100.0 == 10000
          L     #Wert
          L     1.000000e+003               // Kommastelle verschieben
          *R    
          TRUNC                             // Nachkomma abschneiden
          L     L#10
          /D    
          T     #inWertDInt
    Ohne jetzt beweisen zu können dass es für alle Werte von 0.00 bis 999.99 korrekt ist.

    Eigentlich gibt es eine Funktion in der Standardlib welche eine Real-Zahl in einen String wandelt. Diese nutzt ein anderes prinzipiell genaueres Verfahren. Damit musst du den Ergebnisstring aber erst wieder formatieren (wenn du eine feste Anzahl Vorkommastellen mit führenden Nullen haben willst) und Strings zusammenkopieren. Ohne SCL ist das aber sehr unschön handzuhaben, darum habe ich diese manuelle Version in das Beispiel kopiert.

Ähnliche Themen

  1. Großtextanzeige/LED-Anzeige
    Von tomatensaft im Forum PC- und Netzwerktechnik
    Antworten: 2
    Letzter Beitrag: 11.10.2012, 12:56
  2. LED Motivationslaufband-Anzeige
    Von ToBo im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 09.08.2009, 22:48
  3. LED ansteuern OP77
    Von marcelmoonwalker im Forum HMI
    Antworten: 3
    Letzter Beitrag: 30.04.2009, 14:08
  4. LED-Anzeige + Maske
    Von MatthiasH24 im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 08.12.2008, 12:52
  5. LED Anzeige
    Von Dirk LXXVI im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 10.08.2006, 22:01

Lesezeichen

Berechtigungen

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