Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - was bedeutet dieser Stamm-Error?

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

    HS/FS - √ - 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...
    Gruß, Marc

    #2
    setz mal den Baustein rein, habe da ne Vermutung....
    never fummel a running system...

    Kommentar


      #3
      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
      ################################################## ###########################################
      Gruß, Marc

      Kommentar


        #4
        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...
        Gruß, Marc

        Kommentar


          #5
          Ich hatte Recht!!!

          Hallo TRex!

          Ich hatte mit meiner Vermutung Recht...

          Das sollte Dacom bei der nächsten Version mal bereinigen...
          Gruß, Marc

          Kommentar


            #6
            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
            never fummel a running system...

            Kommentar


              #7
              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...
              Gruß, Marc

              Kommentar


                #8
                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
                Gruß

                Guido

                Kommentar


                  #9
                  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...
                  Gruß, Marc

                  Kommentar


                    #10
                    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.
                    Gruß

                    Guido

                    Kommentar


                      #11
                      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
                      Gruß

                      Guido

                      Kommentar


                        #12
                        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?
                        openHAB 4.2

                        Kommentar


                          #13
                          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.
                          Nils

                          aktuelle Bausteine:
                          BusAufsicht - ServiceCheck - Pushover - HS-Insight

                          Kommentar

                          Lädt...
                          X