{"payload":{"meta":{"Graph":{"@Type":"81297157","@Value":{"Guid":"(Guid)c3dab6e1-01d8-482e-a0aa-a7ab2c44571a","ParentGuid":"(Guid)74ccca2f-50e3-4d5a-9d7a-9fd420284f83","Name":"(string)atHistHiLoAvg7Day","Properties":{"@Type":"2c41fa04:IDictionary","@Value":[{"@Key":"(Guid)829a18f2-c514-4f6e-9634-1df173429203","@Value":{"@Type":"829a18f2","@Value":{"ParentObjects":{"@Type":"fa2ee218:IDictionary","@Value":[{"@Key":"(Guid)d9b2b2cc-ea99-4c3b-aa42-1e5c49e65b84","@Value":"(Guid)12edd256-91dc-473a-b471-cd1232088c37"}]}}}}]},"TypeGuid":"(Guid)6f9dac99-8de1-4efc-8465-68ac443b7d08","EmbeddedTypeGuids":{"@Type":"[Guid]","@Value":["(Guid)a9ed5b7e-75c5-4651-af16-d2c27e98cb94","(Guid)3b83b776-fb25-43b8-99f2-3c507c9143fc"]}}},"TypeInfos":{"2c41fa04":"{2c41fa04-1834-41c1-816e-303c7aa2c05b}","81297157":"{81297157-7ec9-45ce-845e-84cab2b88ade}","829a18f2":"{829a18f2-c514-4f6e-9634-1df173429203}","fa2ee218":"{fa2ee218-a39b-4b6d-b249-49dbddbd168a}","Guid":"System.Guid","string":"System.String"}},"object":{"Graph":{"@Type":"6f9dac99","@Value":{"SpecialFunc":{"@Type":"0db3d7bb:Enum","@Value":"None"},"Implementation":{"@Type":"3b83b776","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextBlobForSerialisation":"(string)//Calculates High, Low, and Average daily values for 7 day history\n//Normally call function this every 1 second\n\n//2024-01-10 CWD Initial version\n\n//Every 1 second calculate average value for use in history\ntrigSecond(CLK := pulseSecond);\nIF trigSecond.Q AND in <> -999 THEN //don't update value if -999 out of range indicator \n\tsum := sum + in;\n\tcount := count + 1;\n\tvalue := sum/count;\t\nEND_IF\n \n//Every 1 minute or at midnight pulse update the daily values and reset 1 minute average\ntrigMinute(clk:=pulseMinute OR testMinuteTrig);\ntrigDay(CLK:=pulseDay OR testDayTrig);\nIF trigMinute.Q OR trigDay.Q THEN\n\t\t\t\n\t//Update history\n\thiFB(histType:=atHistoryType.tMax,in:=in, reset := trigDay.Q, sp := sp.hiSP);\n\tloFB(histType:=atHistoryType.tMin,in:=in, reset := trigDay.Q, sp := sp.loSP);\n\tavgFB(histType:=atHistoryType.tAvg,in:=in, reset := trigDay.Q, sp := sp.avgSP);\n\n\t//Reset minute average\n\tsum := 0;\n\tcount := 0;\n\n\t//Clear test triggers\n\ttestMinuteTrig := FALSE;\n\ttestDayTrig := FALSE;\n\nEND_IF\n\n\n\n ","LineInfoPersistence":"(string)c3dab6e1-01d8-482e-a0aa-a7ab2c44571a_Impl_LineIds"}}}},"Interface":{"@Type":"a9ed5b7e","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextBlobForSerialisation":"(string)FUNCTION_BLOCK atHistHiLoAvg7Day\nVAR_INPUT\n\tin: REAL;\n\t// Typically trigger at midnight\n\tpulseDay: BOOL;\n\t// Typically trigger every 1 minute\n\tpulseMinute: BOOL;\n\tpulseSecond: BOOL;\nEND_VAR\nVAR_IN_OUT\n\tsp: atHistHiLoAvg7DaySP;\nEND_VAR\nVAR\n\thiFB: atHistory7Day;\n\tloFB: atHistory7Day;\n\tavgFB: atHistory7Day;\n\tsum: REAL;\n\tcount: REAL;\n\ttrigMinute: R_TRIG;\n\tvalue: REAL;\n\ttrigSecond: R_TRIG;\n\ttrigDay: R_TRIG;\n\ttestDayTrig: BOOL;\n\ttestMinuteTrig: BOOL;\nEND_VAR\n","LineInfoPersistence":"(string)c3dab6e1-01d8-482e-a0aa-a7ab2c44571a_Decl_LineIds"}}}},"UniqueIdGenerator":"(string)1375","POULevel":{"@Type":"8e575c5b:Enum","@Value":"Standard"},"ChildObjectGuids":{"@Type":"ArrayList:IList","@Value":[]},"AddAttributeSubsequent":"(bool)False"}},"TypeInfos":{"0db3d7bb":"{0db3d7bb-cde0-4416-9a7b-ce49a0124323}","3b83b776":"{3b83b776-fb25-43b8-99f2-3c507c9143fc}","6f9dac99":"{6f9dac99-8de1-4efc-8465-68ac443b7d08}","8e575c5b":"{8e575c5b-1d37-49c6-941b-5c0ec7874787}","a9ed5b7e":"{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}","ArrayList":"System.Collections.ArrayList","bool":"System.Boolean","f3878285":"{f3878285-8e4f-490b-bb1b-9acbb7eb04db}","string":"System.String"}}},"FormatVersion":"1.0"}