Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - was bedeutet dieser Stamm-Error?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • NilsS
    antwortet
    Hi

    wenn du auch komplexe Dinge mit den Logiken machen willst und in Echtzeit debuggen willst, oder auch ohne HS-Neustart den Code ändern willst solltest du mal einen Blick hier rauf werfen https://knx-user-forum.de/77774-post24.html

    Damit hab ich auch hsfusion entwickelt. Wenn Interesse besteht, bitte dort weiter posten. Ich kann das Template dort dann auch mal aktualisieren.

    Einen Kommentar schreiben:


  • Tokamak
    antwortet
    Zitat von TRex Beitrag anzeigen
    echt übersichtlich...
    aber ich gebe gerne zu, meine Vermutung war falsch.
    Anbei die Anmerkungen aus dem Modulchecker...
    Da ich aktuell wie ein Hamster Logikbausteine schreibe, stoße ich immer wieder an die Grenzen der Entwicklerschnittstelle - die nicht allzu weit draußen liegen. Will sagen, das Debugging gestaltet sich schwierig.

    Auf der Suche nach einer Debugmöglichkeit bin ich auf obige Zeilen gestoßen. Was der Modulchecker ist, kann ich daraus lesen, aber wo finde ich ihn?

    BTW: Mangels fehlendem Wissen erzeuge ich in einem Logikbaustein am eine Exception durch

    Code:
    5012|1|""|"0/0"|""|0|0|0|0
    um zumindest einen Hinweis zu erhalten, dass was falsch ist. Aussagekräftig ist das im Debug-Log allerdings nicht. Gibt es eine "elegantere" Lösung?

    Einen Kommentar schreiben:


  • Höhlenbär
    antwortet
    So hat sich geklärt, ich habe heute im Projekt ein paar Grafiken gelöscht die nicht mehr verwendet wurden. Danach war alles wieder iO. Warum das so ist kann ich nicht sagen.

    Danke noch mal für die Hilfe

    Einen Kommentar schreiben:


  • Höhlenbär
    antwortet
    Danke,

    das war´s, hätte ich auch selbst drauf kommen können. Hast du noch eine Erklärung der 2 Meldung da fehlt jeder Ansatz.

    Einen Kommentar schreiben:


  • MarcNaroska
    antwortet
    Ich vermute mal, dass der HS nichts mit der Datei "Thumbs.db" anfangen kann, die im Verzeichnis hsav/img liegt...

    Einfach mal löschen bzw. aus den "HS"-Verzeichnissen verschieben...

    Einen Kommentar schreiben:


  • Höhlenbär
    antwortet
    Hi,

    kann mir vielleicht jemand diese Meldung erklären ??
    Ich weiss damit nichts anzufangen

    Danke
    Stamm-Error

    CExtDatItem Daten : [8001L, 'opt/hsav/img/Thumbs.db', 'hsav/img/Thumbs.db', 'application/octet-stream'] CExtDatItem Daten :
    [8001L, 'opt/hsav/img/Thumbs.db', 'hsav/img/Thumbs.db', 'application/octet-stream']

    und diese unter Exeptions

    File "/hs/compile/hs_remanent.py", line 1554, in writeSich
    error: required argument is not a float

    Einen Kommentar schreiben:


  • MarcNaroska
    antwortet
    Ja, das sagt der Modulchecker immer.
    Aber wenn man den Timer mit "0" beendet, muss man nicht unbedingt eine Formel eintragen...

    Trotzdem Danke für deine Benmühungen...

    Einen Kommentar schreiben:


  • TRex
    antwortet
    echt übersichtlich...
    aber ich gebe gerne zu, meine Vermutung war falsch.
    Anbei die Anmerkungen aus dem Modulchecker...


    5012|0|"OC[1]"|"0"|""|0|2|4|0 # Timer 2 beenden und Referenzfahrtzähler zurücksetzen
    In dieser Zeile muss das Feld 'Zeitformel' eine Formel enthalten

    5012|0|"OC[4]"|"0"|""|0|2|4|0 # beende Timer 2 und setze Referenzfahrtzähler zurück
    In dieser Zeile muss das Feld 'Zeitformel' eine Formel enthalten

    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"0"|""|0|1|0|0 # beende Timer 1
    In dieser Zeile muss das Feld 'Zeitformel' eine Formel enthalten

    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"0"|""|0|3|0|0 # beende Timer 3
    In dieser Zeile muss das Feld 'Zeitformel' eine Formel enthalten

    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"0"|""|0|2|0|0 # beende Timer 2
    In dieser Zeile muss das Feld 'Zeitformel' eine Formel enthalten

    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"0"|""|4|4|3|0 # beende Timer 4
    In dieser Zeile muss das Feld 'Zeitformel' eine Formel enthalten

    Einen Kommentar schreiben:


  • MarcNaroska
    antwortet
    Ich hatte Recht!!!

    Hallo TRex!

    Ich hatte mit meiner Vermutung Recht...

    Das sollte Dacom bei der nächsten Version mal bereinigen...

    Einen Kommentar schreiben:


  • MarcNaroska
    antwortet
    meine Vermutung...

    Hallo TRex!

    Hier ist mal meine Vermutung:

    Ich habe den Baustein um 2 Eingänge (E9 und E10) erweitert und den bestehenden Baustein damit ersetzt. Dann habe ich den Default-Wert von E10 im Grafischen Logikeditor geändert.
    Danach habe ich festgestellt, dass da noch ne Macke im Baustein war und habe ihn wieder durch die alte Version (ohne E9 und E10) ersetzt.
    Ich glaube, dass seitdem diese Stamm-Fehler auftauchen... (evtl. heißt das ja, dass er versucht, den Default-Wert von E10 des Bausteins zu ändern, dieser ist ja aber nicht mehr da...

    Einen Kommentar schreiben:


  • MarcNaroska
    antwortet
    Hier ist der Baustein...

    Ist aber ein wenig komplexer...

    Was ist denn deine Vermutung?

    Bitteschön:
    ### Rolladensteuerung mit Angabe der Position in % ###
    ################################################## ##################################
    ################################################## ##################################
    # (C) 2008 Marc Naroska (V2.2) #
    ################################################## ##################################
    # V2.2: Weiterleitung von Lang- und Kurzzeit ausschaltbar #
    ################################################## ##################################
    #5000|"Text"|Remanent(1/0)|Anz.Eingänge|.n.|Anzahl Ausgänge|.n.|.n.
    5000|"Naroska\Rolladen mit Pos (V2.2)"|1|10|"Langzeit"|"Kurzzeit"|"gemessene Fahrzeit in sek"|"Schlupf beim Hochfahren in sek"|"Anzahl Fahrten bis Referenzfahrt"|"SetPos in %"|"Ausgabe Pos während Fahrt"|"Pause bei Richtungswechsel in sek"|"Weiterleitung"|"Stopp bei 0% und 100%"|6|"Position in %"|"Langzeit"|"Kurzzeit"|"Sperre bei Referenzfahrt"|"laufende Position in %"|"debug"
    #5001|Anzahl Eingänge|Ausgänge|Offset|Speicher|Berechnung bei Start
    5001|10|6|5|13|1 # 10 Eingänge, 6 Ausgänge, 5 Timer, 13 Speicher, Berechnung bei Initialisierung
    #5002|Index Eingang|Default Wert|0=numerisch 1=alphanummerisch
    5002|1|0|0 # Eingang 1, Langzeit
    5002|2|0|0 # Eingang 2, Kurzzeit
    5002|3|0|0 # Eingang 3, gemessene Fahrzeit
    5002|4|0|0 # Eingang 4, Schlupf beim Hochfahren
    5002|5|10|0 # Eingang 5, Anzahl Positionsfahrten, nach der eine Rekalibrierung erfolgt
    5002|6|0|0 # Eingang 6, Positionierung Vorgabewert in %
    5002|7|0|0 # Eingang 7, Position während der Fahrt ausgeben
    5002|8|1|0 # Eingang 8, Pause bei Richtungswechsel in sek
    5002|9|1|0 # Eingang 9, Weiterleitung von Lang- und Kurzzeitbefehlen
    5002|10|1|0 # Eingang 10, bei 0% und 100% Kurzzeit senden?
    #5003|Speicher|Initwert|Remanent
    5003|1|0|1 # Speicher 1, aktuelle Position
    5003|2|-1|1 # Speicher 2, Positionsvorgabe
    5003|3|0|1 # Speicher 3, Sperre bei Referenzfahrt
    5003|4|1|1 # Speicher 4, Zähler für Anzahl Fahrten seit letzter Referenzfahrt
    5003|5|-1|1 # Speicher 5, Start-Position
    5003|6|-1|1 # Speicher 6, Start-Zeit
    5003|7|-1|1 # Speicher 7, Ende-Zeit
    5003|8|-1|1 # Speicher 8, Richtung bei Langzeitbefehl
    5003|9|0|1 # Speicher 9, gemessene Fahrzeit
    5003|10|0|1 # Speicher 10, Schlupf
    5003|11|-1|0 # Speicher 11, zwischengesp. gem. FahrzeitSchlupf
    5003|12|-1|0 # Speicher 12, zwischengesp. Schlupf
    5003|13|0|0 # Speicher 13, Sperre bei Pause wegen Richtungswechsel
    #5004|ausgang|Initwert|runden binär (0/1)|typ (1-send/2-sbc)|0=numerisch 1=alphanummerisch
    5004|1|0|0|1|0 # Ausgang 1, aktuelle Position in %
    5004|2|0|0|1|0 # Ausgang 2, Langzeit
    5004|3|0|0|1|0 # Ausgang 3, Kurzzeit
    5004|4|0|0|2|0 # Ausgang 4, Sperre bei Referenzfahrt
    5004|5|0|0|1|0 # Ausgang 5, laufende Position in %
    5004|6|""|0|1|1 # Ausgang 6, Debug
    # Timer OC[1] = Fahrzeit abgelaufen wenn kein Kurzzeit Befehl kommt
    # Timer OC[2] = Timer für Positionsausgabe während einer Fahrt
    # Timer OC[3] = Positionierung der Rollade
    # Timer OC[4] = Timer für Referenzfahrt
    # Timer OC[5] = Timer für Pause bei Richtungswechsel
    ############################# Definition der Funktion #################################
    #5012|abbruch bei bed. (0/1)|bedingung|formel|zeitformel|pin-ausgang|pin-timer|pin-speicher|pin-neg.ausgang
    #5012|0|"EN[7]==0"|"-1"|""|5|0|0|0 # A5 zurücksetzen wenn E7=0
    #5012|0|""|"str(EN[6])+'!'+str(EC[6])+'!'+str(OC[1])+'!'+str(OC[2])+'!'+str(OC[3])+'!'+str(OC[4])+'!'+str(OC[5])"|""|6|0|0|0
    ### bei Initialisierung
    5012|0|"EI"|"0"|""|4|0|3|0 # Sperre zurücksetzen
    5012|0|"EI"|"-1"|""|0|0|2|0 # Positionsvorgabe zurücksetzen
    5012|0|"EI"|"-1"|""|0|0|6|0 # Start-Zeit zurücksetzen
    5012|0|"EI"|"-1"|""|0|0|7|0 # Ende-Zeit zurücksetzen
    5012|0|"EI"|"-1"|""|0|0|11|0 # zwischengespeicherte Fahrzeit zurücksetzen
    5012|0|"EI"|"-1"|""|0|0|12|0 # zwischengespeicherter Schlupf zurücksetzen
    5012|0|"EI"|"round(SN[1],0)"|""|1|0|0|0 # akt. Pos senden
    5012|1|"EI"|"round(SN[1],0)"|""|5|0|0|0 # akt. Pos senden
    #5012|0|""|"'INIT.'+str(OC[1])+'!'+str(OC[2])+'!'+str(OC[3])+'!'+str(OC[4])+'!'+str(OC[5])+'=='+str(SN[1])+'!'+str(SN[2])+'!'+str(SN[3])+'!'+str(SN[4])+'!'+str(SN[5])+'!'+str(SN[6])+'!'+str(SN[7])+'!'+str(SN[8])+'!'+str(SN[9])+'!'+str(SN[10])+'!'+str(SN[11])+'!'+str(SN[12])+'!'"|""|6|0|0|0
    ### Während einer Fahrt Änderungen an Fahrzeit oder Schlupf zwischenspeichern
    5012|0|"(SN[6]==-1) and (EN[3]>=0)"|"EN[3]"|""|0|0|9|0 # neue Fahrzeit übernehmen
    5012|0|"(SN[6]==-1) and (EN[4]>=0)"|"EN[4]"|""|0|0|10|0 # neuen Schlupf übernehmen
    5012|0|"(SN[6]==-1) and (SN[11]!=-1)"|"SN[11]"|""|0|0|9|0 # zwischengespeicherte Fahrzeit übernehmen
    5012|0|"(SN[6]==-1) and (SN[12]!=-1)"|"SN[12]"|""|0|0|10|0 # zwischengespeicherten Schlupf übernehmen
    5012|0|"(SN[6]==-1) and (SN[11]!=-1)"|"-1"|""|0|0|11|0 # zwischengespeicherte Fahrzeit zurücksetzen
    5012|0|"(SN[6]==-1) and (SN[12]!=-1)"|"-1"|""|0|0|12|0 # zwischengespeicherten Schlupf zurücksetzen
    5012|0|"(SN[6]>-1) and EC[3] and (EN[3]>=0)"|"EN[3]"|""|0|0|11|0 # neue Fahrzeit zwischenspeichern
    5012|0|"(SN[6]>-1) and EC[4] and (EN[4]>=0)"|"EN[4]"|""|0|0|12|0 # neuen Schlupf zwischenspeichern
    5012|1|"EC[3] or EC[4]"|""|""|0|0|0|0 # ENDE wenn neue Fahrzeit oder neuer Schlupf
    ### Timer 1: Laufzeit ganz hoch/runter bei Langzeitbefehl
    5012|0|"OC[1]"|"0"|""|0|2|4|0 # Timer 2 beenden und Referenzfahrtzähler zurücksetzen
    5012|0|"OC[1]"|"-1"|""|0|0|6|0 # Start-Zeit zurücksetzen
    5012|0|"OC[1]"|"-1"|""|0|0|7|0 # Ende-Zeit zurücksetzen
    5012|0|"OC[1]"|"-1"|""|0|0|8|0 # Richtung zurücksetzen
    5012|0|"OC[1]"|"ON[1]*100"|""|5|0|0|0 # setze laufende Position oben/unten
    5012|1|"OC[1]"|"ON[1]*100"|""|1|0|1|0 # setze Speicher/akt. Pos. oben/unten und beende die Berechnung
    ### Timer 2: Positionsausgabe während Positionsfahrt
    5012|1|"OC[2] and EN[7] and (OC[3]==0) and (OC[4]==0) and ((SN[8]==1) or ((SN[2]-SN[1])>0)) and ((float(ON[2])+(float(100)/float(SN[9])))<SN[2])"|"float(ON[2])+(float(100)/float(SN[9]))"|"1"|5|2|1|0 # addiere um 1 mit Ausgabe akt.Pos
    5012|1|"OC[2] and EN[7] and (OC[3]==0) and (OC[4]==0) and ((SN[8]==1) or ((SN[2]-SN[1])>0)) and ((float(ON[2])+(float(100)/float(SN[9])))>=SN[2])"|"round(SN[2],0)"|""|5|0|1|0 # Ausgabe letzter Schritt
    5012|1|"OC[2] and EN[7] and (OC[3]==0) and (OC[4]==0) and ((SN[8]==0) or ((SN[2]-SN[1])<0)) and ((float(ON[2])-(float(100)/float(SN[9]+SN[10])))>SN[2])"|"float(ON[2])-(float(100)/float(SN[9]+SN[10]))"|"1"|5|2|1|0 # subtrahiere um 1 mit Ausgabe akt.Pos
    5012|1|"OC[2] and EN[7] and (OC[3]==0) and (OC[4]==0) and ((SN[8]==0) or ((SN[2]-SN[1])<0)) and ((float(ON[2])-(float(100)/float(SN[9]+SN[10])))<=SN[2])"|"round(SN[2],0)"|""|5|0|1|0 # Ausgabe letzter Schritt
    5012|1|"OC[2] and (OC[3]==0)"|""|""|0|0|0|0 # ENDE wenn nur Timer 2 aktiv
    ### Timer 4: Verhalten bei Referenzfahrt
    5012|0|"OC[4]"|"0"|""|0|2|4|0 # beende Timer 2 und setze Referenzfahrtzähler zurück
    5012|0|"OC[4]"|"((((SN[1]>=50)==(SN[2]>=50)) and (SN[1]>=50)) or ((SN[1]>=50) and ((SN[1]>=50)==(abs(SN[1]-50)>abs(SN[2]-50)))))*100"|""|0|0|1|0 # akt. Pos auf 0% oder 100% setzen
    5012|0|"OC[4] or OC[5]"|"-1"|""|0|0|2|0 # Zielposition auf -1 setzen
    5012|0|"OC[4] or OC[5]"|"EN[6]"|""|0|0|2|0 # Zielposition auf ursprünglichen Wert setzen
    ### ENDE, wenn keine Referenzfahrt, keine Positionsfahrt und (keine Änderung an E1, E2, und E6 oder Änderung (E6 und (0>E6>100 oder Referenzfahrt aktiv))
    5012|1|"(OC[5]==0) and (OC[4]==0) and (OC[3]==0) and ((EC[1]==0 and EC[2]==0 and EC[6]==0) or (EC[6] and ((EN[6]<0) or (EN[6]>100) or (SN[3]==1))))"|""|""|0|0|0|0
    ### neue Position berechnen wenn Kurzzeit oder Langzeit in andere Richtung oder neue Position oder Positionierung beendet
    5012|0|"(OC[4]==0) and (OC[5]==0) and (EC[2] and EN[9])"|"EN[2]"|""|3|0|0|0 # manuell Kurzzeit weiterleiten wenn E9 = 1
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and (EC[2]==0) and ((EC[1] and (EN[1]!=SN[8])) or EC[6] or (OC[3] and ((((EN[1]==0) or (EN[1]==100)) and EN[10]) or ((EN[1]>0) and (EN[1]<100)))))"|"1"|""|3|0|0|0 # Kurzzeit setzen (bei 0% oder 100% nur, wenn E10 = 1)
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"float(__import__('time').time())"|""|0|0|7| 0 # Ende-Zeit in Sek in S7 schreiben
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"0"|""|0|1|0|0 # beende Timer 1
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"0"|""|0|3|0|0 # beende Timer 3
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"0"|""|0|2|0|0 # beende Timer 2
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"0"|""|4|4|3|0 # beende Timer 4
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"(SN[4]+1)"|""|0|0|4|0 # Referenzfahrtzähler um 1 erhöhen
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and (((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3]) and (SN[6]<SN[7]))"|"float(SN[5])+(float(2*SN[8]-1)*float(SN[7]-SN[6])*(float(100)/float(SN[9]+(1-SN[8])*SN[10])))"|""|0|0|1|0 # berechne akt. Position anhand der Zeiten und schreibe auf S1
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and (((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3]) and (SN[1]>=100))"|"100"|""|0|0|1|0 # wenn S1>100 dann auf 100 setzen
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and (((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3]) and (SN[1]<=0))"|"0"|""|0|0|1|0 # wenn S1<0 dann auf 0 setzen
    5012|0|"(OC[4]==0) and (OC[5]==0) and OC[3] and ((SN[1]==0) or (SN[1]==100))"|"1"|""|0|0|4|0 # Referenzfahrtzähler zurücksetzen, wenn Positionsfahrt auf 0% oder 100%
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"round(SN[1],0)"|""|1|0|0|0 # akt. Pos S1 an A1 senden
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"round(SN[1],0)"|""|5|0|0|0 # akt. Pos S1 an A5 senden
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"-1"|""|0|0|7|0 # Ende-Zeit zurücksetzen
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[6] or OC[3])"|"1"|"(EN[8]<=0)+(EN[8]>0)*EN[8]"|0|5|13|0 # starte Timer 5 mit E8 Sekunden und setze Sperre bei Richtungswechsel=1
    5012|0|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SN[8])) or EC[2] or EC[6] or OC[3])"|"-1"|""|0|0|8|0 # Richtung zurücksetzen
    5012|1|"(OC[4]==0) and (OC[5]==0) and (SN[6]!=-1) and ((EC[1] and (EN[1]!=SA[8])) or EC[2] or EC[6] or OC[3])"|"-1"|""|0|0|6|0 # Start-Zeit zurücksetzen
    5012|1|"(OC[4]==0) and (OC[5]==0) and EC[2]"|""|""|0|0|0|0 # ENDE, wenn Kurzzeit
    ### Verhalten bei Langzeitbefehl
    5012|0|"(OC[4]==0) and (OC[5]==0) and (EC[1] and EN[9])"|"EN[1]"|""|2|0|0|0 # Langzeit weiterleiten wenn Weiterleitung = 1
    5012|1|"(OC[4]==0) and (OC[5]==0) and EC[1] and (EN[1]==SN[8])"|""|""|0|0|0|0 # ENDE, wenn Langzeit = aktuelle Richtung
    5012|0|"(OC[4]==0) and (OC[5]==0) and EC[1]"|"float(__import__('time').time())"|""|0|0|6| 0 # Start-Zeit in Sek in S6 schreiben
    5012|0|"(OC[4]==0) and (OC[5]==0) and EC[1]"|"EN[1]"|"SN[9]+((1-EN[1])*SN[10])+3"|0|1|8|0 # Richtung in S8 schreiben und Timer 1 starten mit gem. Fahrzeit+3 Sekunden+(Schlupf wenn hoch)
    5012|0|"(OC[4]==0) and (OC[5]==0) and EC[1] and (EN[7]==1)"|"SN[1]"|"1"|0|2|0|0 # starte Timer 2 mit 1 sek und akt. Pos. als Parameter
    5012|0|"(OC[4]==0) and (OC[5]==0) and EC[1]"|"SN[8]*100"|""|0|0|2|0 # Ziel-Position 0% oder 100%
    5012|1|"(OC[4]==0) and (OC[5]==0) and EC[1]"|"SN[1]"|""|0|0|5|0 # akt. Pos --> S5 und ENDE
    ### Verhalten bei Positionstelegramm
    ## Positionsfahrt vorbereiten
    5012|0|"(OC[4]==0) and (OC[5]==0) and EC[6]"|"round(EN[6],0)"|""|0|0|2|0 # setze Speicher 2 auf Vorgabe
    5012|1|"SN[2]==round(SN[1],0)"|""|""|0|0|0|0 # wenn neue Pos = Akt. Pos. dann und ENDE
    5012|0|"OC[4]"|"0"|""|4|0|3|0 # Sperre bei Referenzfahrt aufheben
    5012|0|"OC[5]"|"0"|""|0|0|13|0 # Sperre bei Pause aufheben
    ## Referenzfahrt nur aufrufen, wenn Anzahl Fahrten seit letzter Referenzfahrt >= EN[5] und Baustein nicht durch Referenzfahrt-Timer 4 aufgerufen
    5012|0|"(SN[4]>=EN[5]) and (OC[4]==0)"|"1"|""|4|0|3|0 # Sperre=1 bei Referenzfahrt
    5012|0|"(SN[4]>=EN[5]) and (OC[4]==0)"|"(((SN[1]>=50)==(SN[2]>=50)) and (SN[1]>=50)) or ((SN[1]>=50) and ((SN[1]>=50)==(abs(SN[1]-50)>abs(SN[2]-50))))"|""|2|0|8|0 # Rollo ganz hoch/runter
    5012|0|"(SN[4]>=EN[5]) and (OC[4]==0)"|"float(__import__('time').time())"|""|0|0|6| 0 # Start-Zeit in Sek in S6 schreiben
    5012|0|"(SN[4]>=EN[5]) and (OC[4]==0)"|"SN[2]"|"SN[9]+((1-AN[2])*SN[10])+4"|0|4|0|0 # Timer 4 starten, gesamte Fahrzeit (danach wird die normale Positionsfahrt gestartet)
    5012|0|"(SN[4]>=EN[5]) and (OC[4]==0) and (EN[7]==1)"|"SN[1]"|"1"|0|2|0|0 # wenn laufende Positionsausgabe, dann Timer 2 mit 1 Sekunde starten
    5012|0|"(SN[4]>=EN[5]) and (OC[4]==0)"|"SN[1]"|""|0|0|5|0 # akt. Pos --> S5
    5012|1|"(SN[4]>=EN[5]) and (OC[4]==0)"|"AN[2]*100"|""|0|0|2|0 # Ziel auf 0% oder 100% und ENDE
    ## normale Positionsfahrt starten bei Änderung der Vorgabeposition
    5012|0|"SC[2] and ((SN[2]-SN[1])>0)"|"1"|""|2|0|8|0 # Ab-Langzeit bei positiver Veränderung + Ablage in S8
    5012|0|"SC[2] and ((SN[2]-SN[1])<0)"|"0"|""|2|0|8|0 # Auf-Langzeit bei negativer Veränderung + Ablage in S8
    5012|0|"SC[2]"|"float(__import__('time').time())"|""|0|0|6| 0 # Start-Zeit in Sek in S6 schreiben
    5012|0|"SC[2]"|"0"|"(float(abs(SN[2]-SN[1])*(SN[9]+(((SN[2]-SN[1])<0)*SN[10])))/float(100))+float(4*((SN[2]==0) or (SN[2]==100)))"|0|3|0|0 # Berechnung der Zeit + Schlupf bei hoch + 4sek zusätzlich bei 0% oder 100%
    5012|0|"SC[2] and (EN[7]==1)"|"SN[1]"|"1"|0|2|0|0 # wenn laufende Positionsausgabe, dann Timer 2 mit 1 Sekunde starten
    5012|1|"SC[2]"|"SN[1]"|""|0|0|5|0 # Start-Position in S5 schreiben und ENDE
    ### ENDE
    ################################################## ###########################################

    Einen Kommentar schreiben:


  • TRex
    antwortet
    setz mal den Baustein rein, habe da ne Vermutung....

    Einen Kommentar schreiben:


  • MarcNaroska
    hat ein Thema erstellt HS/FS - √ - was bedeutet dieser Stamm-Error?.

    - √ - was bedeutet dieser Stamm-Error?

    Hallo allerseits!

    Kann jemand vielleicht mit der Fehlermeldung
    CGatterItem.addInput Pin : [6003L, 10L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 14L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 20L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 29L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 33L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 37L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 41L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 45L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 49L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 53L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 57L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 61L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 65L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 69L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 74L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 78L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 82L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 98L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 104L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 108L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 112L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 116L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 124L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 129L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 134L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 139L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 144L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 149L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 186L, 10L, 0L, 1L, 0L]CGatterItem.addInput Pin : [6003L, 219L, 10L, 0L, 1L, 0L]
    unter Stamm-Error etwas anfangen?

    Bekommen habe ich sie, nachdem ich noch ein wenig an einem meiner Bausteine herumgebastelt habe...
Lädt...
X