{"payload":{"meta":{"Graph":{"@Type":"81297157","@Value":{"Guid":"(Guid)50215af3-c5ae-411c-ae99-773d01edeaeb","ParentGuid":"(Guid)74ccca2f-50e3-4d5a-9d7a-9fd420284f83","Name":"(string)atLimit","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)72e6c618-6ac6-441b-bb90-0cdff058bc7a"}]}}}}]},"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)//2024-05-16 CWD Added delay on and delay off setpoints and control \n//2024-08-26 CWD Add process enable and delays\n\n//Process enable. Used to only have limit enabled when process is active. eg rotation sensor on elevator\nprocEnTON(in:= in_procEn, PT:= in_procDelOn);\nprocEnTOF(in:= procEnTON.Q, PT:= in_procDelOff);\nprocEnAct:= procEnTON.Q OR procEnTOF.Q;\n\nIF in_en AND procEnAct THEN\n\tIF in_type = atLimitType.hi THEN\n\t\t//Calculate hi output\n\t\tIF in_val > in_sp THEN\n\t\t\tstate := TRUE;\n\t\tEND_IF\n\t\tIF in_val < (in_sp - in_hyst) THEN\n\t\t\tstate := FALSE;\n\t\tEND_IF\t\n\tELSE\n\t\t//Calculate lo output\n\t\tIF in_val < in_sp THEN\n\t\t\tstate := TRUE;\n\t\tEND_IF\n\t\tIF in_val > (in_sp + in_hyst) THEN\n\t\t\tstate := FALSE;\n\t\tEND_IF\n\tEND_IF\nELSE\n\tstate := FALSE;\nEND_IF\n\n\n\nalm(\n\tin_raw := state,\n\tin_reset := in_reset,\n\tin_enProc:=in_procEn,\n\tin_delOn:=in_delOn,\n\tin_delOff:=in_delOff\n);\n","LineInfoPersistence":"(string)50215af3-c5ae-411c-ae99-773d01edeaeb_Impl_LineIds"}}}},"Interface":{"@Type":"a9ed5b7e","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextBlobForSerialisation":"(string){attribute 'no_assign'}\nFUNCTION_BLOCK atLimit\nVAR_INPUT\n\talm: atAlarm;\n\tin_val: REAL;\n\tin_type: atLimitType;\n\tin_reset: BOOL;\n\t// Process controlled enable. eg only enable rpm lo when motor running\n\tin_procEn: BOOL := TRUE;\nEND_VAR\nVAR_INPUT PERSISTENT\n\tin_sp: REAL;\n\tin_hyst: REAL := 1;\n\tin_en: BOOL := TRUE;\n\tin_delOn: TIME := T#1S;       //once running this will prevent a quick spike\n\tin_delOff: TIME := T#15S;    //allows machine to clean out before starting back up\n\tin_procDelOn: TIME := T#10S; //process enable delay on\n\tin_procDelOff: TIME := T#0S; //process enable delay off\nEND_VAR\nVAR_OUTPUT\nEND_VAR\nVAR\n\t{attribute 'symbol' := 'none'}\n\tstate: BOOL;\n\t// Proces enable active\n\t{attribute 'symbol' := 'none'}\n\tprocEnAct: BOOL;\n\t{attribute 'symbol' := 'none'}\n\tprocEnTON: TON;\n\t{attribute 'symbol' := 'none'}\n\tprocEnTOF: TOF;\nEND_VAR\n\n","LineInfoPersistence":"(string)50215af3-c5ae-411c-ae99-773d01edeaeb_Decl_LineIds"}}}},"UniqueIdGenerator":"(string)1519","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"}