{"payload":{"meta":{"Graph":{"@Type":"81297157","@Value":{"Guid":"(Guid)c0b28a38-3506-4154-902d-f26d25ce6c99","ParentGuid":"(Guid)74ccca2f-50e3-4d5a-9d7a-9fd420284f83","Name":"(string)atFeedDistribution","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)6d1162ac-fede-4458-af8b-eb04cb1ee882"}]}}}}]},"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)//Inputs are\n//\tarray of ingredients, \n//\tloadcell, \n//\tproximity sensor to indicate when the hopper is empty and its ok to dump,\n//\tstart signal\n\n//Feed mixer control\nmixer(\n\tin_loadcell := lc,\n\tin_ingredients := ingredients,\n\tin_start := in_lightClockPower AND in_augerEn AND mixer.out_mixerEmpty,\n\tin_wheatPct := in_wheatRate,\n\tin_reset := atGVL.reset,\n\tin_midnightReset := atSystem.T_Midnight_Pulse\n\n);\n\n//Output to dump mechanism\nout_fdWhgDump := mixer.in_dumpCtl.out;\n\n//Output to ingredient motors\nout_ingAugr1 := ingredients[0].runCtl.out;\nout_ingAugr2 := ingredients[1].runCtl.out;\nout_ingAugr3 := ingredients[2].runCtl.out;\n\ncrossAugLim.debounce.in_delOff := T#1S * in_augerOffDLY;\ncrossAugLim.debounce.in_delOn := T#1S * in_augerOnDLY;\n\n//  ---Feeding Equipment Logic---\t\nIF in_lightClockPower AND in_augerEn THEN\n\t//   ---Cross Auger Logic---\n\tout_crossAugr := NOT (augerTSSAlm.out_default OR g.crossAugerLimit.out_val);\n\tout_fdLn1 := TRUE;\n\tout_fdLn2 := TRUE;\n\tout_fdLn3 := TRUE;\nELSE\n\tout_crossAugr := FALSE;\n\tout_fdLn1 := FALSE;\n\tout_fdLn2 := FALSE;\n\tout_fdLn3 := FALSE;\nEND_IF\n\n//   ---Feed Auger Run Time Shutdown---\naugerTSSAlm(in_raw := g.crossAuger.in_raw, in_reset := atGVL.reset OR g.runTMRReset,in_defaultType := atAlarmDefault.latched);\ng.runTMRReset := FALSE;\n\n//   ---Feed Auger Start Cycle Counter Logic\naugStrtTrig(CLK := g.crossAuger.in_raw);\n\nIF augStrtTrig.Q THEN\n\taugerStartCnt := augerStartCnt + 1;\nEND_IF\n\n// Reset at midnight\nIF atSystem.T_Midnight_OS THEN\n\taugerStartCnt := 0;\nEND_IF\n\n\n","LineInfoPersistence":"(string)c0b28a38-3506-4154-902d-f26d25ce6c99_Impl_LineIds"}}}},"Interface":{"@Type":"a9ed5b7e","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextBlobForSerialisation":"(string)FUNCTION_BLOCK atFeedDistribution\nVAR\n\taugerTSSAlm: atAlarm;\n\taugStrtTrig: R_TRIG;\n\tingredients: ARRAY[0..2] OF atIngredient;\n\tmixer: atMixerControl;\n\twheatCurve: atCurveREAL;\n\t\nEND_VAR\nVAR_INPUT PERSISTENT\n\tin_augerRunTim: DINT;\n\tin_augerOnDLY: DINT;\n\tin_augerOffDLY: DINT;\n\tin_augerEn: BOOL; //Auger enable\nEND_VAR\nVAR_OUTPUT\n\taugerStartCnt: INT;\n\tout_wheatRate: REAL; //Wheat mix ration in percent (0-100)\n\tout_ingAugr1: BOOL;\n\tout_ingAugr2: BOOL;\n\tout_ingAugr3: BOOL;\n\tout_fdLn1: BOOL;\n\tout_fdLn2: BOOL;\n\tout_fdLn3: BOOL;\n\tout_crossAugr: BOOL;\n\tout_fdWhgDump: BOOL;\nEND_VAR\nVAR_INPUT\n\tcrossAugLim: REFERENCE TO atDI;\n\tin_lightClockPower: BOOL;\n\tlc: REFERENCE TO atLoadCell;\n\tin_wheatRate: REAL;\nEND_VAR\n\n","LineInfoPersistence":"(string)c0b28a38-3506-4154-902d-f26d25ce6c99_Decl_LineIds"}}}},"UniqueIdGenerator":"(string)181","POULevel":{"@Type":"8e575c5b:Enum","@Value":"Void"},"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"}