{"payload":{"meta":{"Graph":{"@Type":"81297157","@Value":{"Guid":"(Guid)4dc74d71-ffa8-40e4-8a3e-d560fcd89b13","ParentGuid":"(Guid)74ccca2f-50e3-4d5a-9d7a-9fd420284f83","Name":"(string)atInletCntrl","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)ca9f5e32-36a8-4726-82c3-a6db760e9258"}]}}}}]},"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)pulse();\nin_act := in_staticPrs.out_eu;\n\nerror := ABS((in_act - in_sp) / in_sp);\n\nchgRate := error * in_mlply;\n\nIF chgRate > in_rateMax THEN\n\tchgRate := in_rateMax;\nEND_IF\n\n\nIF ABS(in_act - in_sp) > in_deadBand THEN\n\t//Flip the greater then and less then below to reverse actuator\n\tIF NOT in_flip THEN\t\n\t\tIF in_act < in_sp THEN\n\t\t\textend := TRUE;\n\t\tELSE\n\t\t\textend := FALSE;\n\t\tEND_IF\n\t\tIF in_act > in_sp THEN\n\t\t\tretract := TRUE;\n\t\tELSE\n\t\t\tretract := FALSE;\n\t\tEND_IF\n\t\tminSP := -10;\n\t\tmaxSP := 0;\n\tELSE\n\t\tIF in_act > in_sp THEN\n\t\t\textend := TRUE;\n\t\tELSE\n\t\t\textend := FALSE;\n\t\tEND_IF\n\t\tIF in_act < in_sp THEN\n\t\t\tretract := TRUE;\n\t\tELSE\n\t\t\tretract := FALSE;\n\t\tEND_IF\n\t\tmaxSP := 10;\n\t\tminSP := 0;\n\tEND_IF\nELSE\n\tretract := FALSE;\n\textend := FALSE;\nEND_IF\n\n//Position Demand Filter\nposDem := retract OR extend;\nspkDly(IN := posDem,\n\t\tPT := T#1S * in_spkDlySP\n\t\t);\n\n\n//Position Demand Logic\nIF posDem AND spkDly.Q THEN\n\tIF extend THEN\n\t\tIF pulse.T_Sec_OS THEN\n\t\t\tout_posDem := out_posDem + chgRate;\n\t\tEND_IF\n\tEND_IF\n\n\tIF retract THEN\n\t\tIF pulse.T_Sec_OS THEN\n\t\t\tout_posDem := out_posDem - chgRate;\n\t\tEND_IF\n\tEND_IF\nEND_IF\n\nIF out_posDem > 100 THEN\n\tout_posDem := 100;\nELSIF out_posDem < 0 THEN\n\tout_posDem := 0;\nEND_IF\n\nIF NOT in_autoMode THEN\t\t\n\tout_posDem := in_devPos;\nELSIF out_posDem > (in_devPos + 4) THEN\n\tout_posDem := in_devPos + 4;\nELSIF out_posDem < (in_devPos - 4) THEN\n\tout_posDem := in_devPos - 4;\nEND_IF","LineInfoPersistence":"(string)4dc74d71-ffa8-40e4-8a3e-d560fcd89b13_Impl_LineIds"}}}},"Interface":{"@Type":"a9ed5b7e","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextBlobForSerialisation":"(string){attribute 'no_assign'}\nFUNCTION_BLOCK atInletCntrl\nVAR_INPUT PERSISTENT\n\tin_sp: REAL;\t\t\t//Setpoint\t\t\n\tin_mlply: REAL;  \t\t//Multiplier\n\tin_rateMax: REAL;\t\t//Rate of Change Max Percent Per Minute\n\tin_deadBand: REAL;\n\tin_spkDlySP: DINT := 5;//Delay Prevents sudden spikes from demanding pos change\nEND_VAR\nVAR_INPUT\n\tin_devPos: REAL; \t\t//Current Position of Device From (atActuator - in_PosAct)\n\tin_act: REAL;\t\t\t//Analog Input - in_act := out_eu;\n\tin_flip: BOOL := FALSE;\t//Flips the greater then and less then to reverse the demand direction\n\tin_autoMode: BOOL;\n\tminSP: REAL;\n\tmaxSp: REAL;\nEND_VAR\nVAR_IN_OUT\n\tin_staticPrs: atAI;\nEND_VAR\nVAR_OUTPUT\n\tout_posDem: REAL; \t\t//Actuator Demand - in_autoPos := out_posDem;\nEND_VAR\nVAR\n\terror: REAL;\n\tpulse: atPulse;\n\textend: BOOL;\n\tretract: BOOL;\n\tposDem: BOOL;\n\tspkDly: TON;\n\tchgRate: REAL;\nEND_VAR\n","LineInfoPersistence":"(string)4dc74d71-ffa8-40e4-8a3e-d560fcd89b13_Decl_LineIds"}}}},"UniqueIdGenerator":"(string)348","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"}