NEWS
S7 mit Node Red (node-red-contrib-s7)
-
@wal Ich habe den node-snap7 issue mal geschlossen und im iobroker.S7 issue einen Aufruf zum Mittesten gestartet. Ich glaube aber nicht, dass da viel zurückkommt. Bei mir läuft das Ganze mit sämtlichen Test-Skripten parallel zum Produktivbetrieb stabil über die letzten Tage. Sobald du den Mut zum Pull hast, würde ich auch den iobroker.S7 issue auf Github schließen.
-
@fu_zhou ,
ich lasse @HF_SPSler noch ein paar Tage Zeit (ein Paar sind 2 )für eine Rückmeldung und wenn die positiv ist werde ich den Pull Request starten. -
@wal Moin zusammen.
Ich habe jetzt die letzten zwei Tage insgesamt fünf Variablen auf SPS Seite auf Ausreißer überprüft und wenn einer Aufgetreten wäre einen Zähler hochgezählt. Was soll ich sagen, der Zähler ist auch nach zwei Tagen immer noch 0 - es ist also aus meiner Sicht davon auszugehen, dass es zu keinen Ausreißern mehr kommt
Um ganz sicher zu gehen dass ich nicht irgendeinen Denkfehler bei dem Testaufbau drin hab hier meine Vorgehensweise:
PS: Bei AmbientTemperature nicht wundern, da sich der betreffende Akku im Gartenhaus befindet ist er mit einer Heizmatte versehen und der Temperaturfühler der eigentlich die Raumtemperatur im Gartenhaus misst wird aktuell dazu mißbraucht die Heizmatte zu messen. die 30°C sind also plausibel
-
@hf_spsler ,
das scl müsste stimmen, danke. -
@hf_spsler Nachdem du gem. deiner Signatur Logos im Einsatz hast: Willst du hier mal eine Einschätzung abgeben?
https://github.com/ioBroker/ioBroker.s7/issues/301#issue-2080449908 -
@fu_zhou Moin, kurz zum S7 Adapter bezüglich Ausreißer: Bis jetzt keinerlei Auffälligkeiten, der Zähler steht noch immer bei 0
Bezüglich Logo: Meine Logos übernehmen Sensor- Aktoraktivitäten in den jeweiligen Geschossen, sie sind aber als Slaves an die S7 angebunden und haben zum Iobroker keinen Kontakt. Einzig die S7 als Kopf-SPS kommuniziert über einen DB mit Iobroker. Da kann ich leider nichts sinnvolles beitragen.
-
@hf_spsler
ich hab filtere die aussreißer in der s7 raus mit diesem baustein.FUNCTION_BLOCK "Mittelwert_Real_gleite4" { S7_Optimized_Access := 'FALSE' } VERSION : 0.1 //Der Baustein berechnet über 4 Messwerte hinweg einen gleitenden Mittelwert. //Die Bildung des Mittelwertes basiert auf folgender Gleichung: //Yi=(X1+X2+X3+...+X4)/4. Einen Schritt später werden die Messwerte wie folgt //durchgeschoben. //Yi+1=(X2+X3+...+X4)/4. //Wird der Baustein z.B. nur alle 100ms einmal durchlaufen, so mittelt er über //1,0 Sek. hinweg die Messwerte. VAR_INPUT Eingangswert : Real; Max_Positiv : Real := 32000.0; Max_Negativ : Real := 0.0; END_VAR VAR_OUTPUT Mittelwert_Ausgang : Real; Zahlenbereich_Fehler : Bool; END_VAR VAR_IN_OUT Start_oder_Reset : Bool; END_VAR VAR Messwert_Schiebereg : Real; Messwert_Schiebereg1 : Real; Messwert_Schiebereg2 : Real; Messwert_Schiebereg3 : Real; Messwert_Schiebereg4 : Real; Summe_der_Messwerte : Real; FP_Takt : Bool; END_VAR VAR_TEMP Zu_klein : Bool; zu_Positiv : Bool; zu_Negativ : Bool; END_VAR BEGIN NETWORK TITLE = Arbeitstakt aufbereitung A "SysDat_DB100".BlinkTakt_500msek_AnwPgm; FP #FP_Takt; JCN druu; NETWORK TITLE = Prüfung des Zahlenbereiches L #Eingangswert; A OV; = #Zahlenbereich_Fehler; JC druu; L #Max_Positiv ;// grösste pos. Zahl stutzen L #Eingangswert; <R; = #zu_Positiv; A #zu_Positiv; JCN zpos; L #Mittelwert_Ausgang; T #Eingangswert; SET; = #Zahlenbereich_Fehler; zpos: L #Max_Negativ ;// grösste neg. Zahl stutzen L #Eingangswert; >R; = #zu_Negativ; A #zu_Negativ; JCN zneg; L #Mittelwert_Ausgang; T #Eingangswert; SET; = #Zahlenbereich_Fehler; NETWORK TITLE = Alles löschen zneg: A #Start_oder_Reset; JCN ruek; L 0.0; T #Mittelwert_Ausgang; T #Messwert_Schiebereg1; T #Messwert_Schiebereg2; T #Messwert_Schiebereg3; T #Messwert_Schiebereg4; T #Summe_der_Messwerte; SET; R #Start_oder_Reset; ruek: NOP 0; NETWORK TITLE = Mittelwertberechnung Teil 1 L #Eingangswert ;// Neun Wert hinzufügen L #Summe_der_Messwerte; +R; T #Summe_der_Messwerte; NETWORK TITLE = Eins weiter Schieben L #Messwert_Schiebereg3; T #Messwert_Schiebereg4; L #Messwert_Schiebereg2; T #Messwert_Schiebereg3; L #Messwert_Schiebereg1; T #Messwert_Schiebereg2; L #Eingangswert; T #Messwert_Schiebereg1; NETWORK TITLE = Mittelwertberechnung Teil 2 L #Summe_der_Messwerte ;// Ältesten Wert abziehen L #Messwert_Schiebereg4; -R; T #Summe_der_Messwerte; L 3.0; /R; T #Mittelwert_Ausgang; druu: NOP 0; END_FUNCTION_BLOCK
-
Mit der normalen Filternode im Nahbandmodus kann man Ausreiser ganz einfach rausfiltern ohne Mittelwerte. Die verfälschen nur.
-
@kone Moin, nun, einen Monat nach meinem letzten Post zur Außreißerthematik, nachdem ja eine erfolgreich Änderung im S7 Adapter erfolgte, benötige ich keinen Workaround mehr um durch Software entstandene Außreißer heraus zu filtern - aber trotzdem danke für deinen Ansatz
-
@hf_spsler @Kone ,
@apollon77 hatte aber noch keine Zeit den Patch zu überprüfen, deshalb muss der Adapter noch von meinem Github Account installiert werden. -
Sorry. Kommt die nächsten Tage. Wirklich
-
1.4.3 mit dem Fix auf den Weg ins latest ... npm und github wäre schon da. Latest dann heute nacht denke ich