{"payload":{"meta":{"Graph":{"@Type":"81297157","@Value":{"Guid":"(Guid)cd93ca07-de6a-4d44-bb99-30309574695e","ParentGuid":"(Guid)74ccca2f-50e3-4d5a-9d7a-9fd420284f83","Name":"(string)atBT623F","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)da2536c7-36f8-4d3c-b3a3-95bf079ad91d"}]}}}}]},"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)//Do DI and DQ process for odot BT623F\n//2024-09-30 CWD Add Invert\n\nout_discreteLen := 8;\nout_coilLen := 8;\nout_inputLen := 16;\n\ndiscreteRequest(\n\tclient:=client,\n\tdata:= dataDI,\n\tin_startAddr:=in_discreteOffset,\n\tin_quantity:=out_discreteLen, \n\tin_interval:=in_pollInterval\n);\n\ninputRequest(\n\tclient:=client,\n\tdata:= dataCounter,\n\tin_startAddr:=in_inputOffset,\n\tin_quantity:=out_inputLen, \n\tin_interval:=in_pollInterval\n);\n\ncoilRequest(\n\tclient:=client,\n\tdata:= dataDQ,\n\tin_startAddr:=in_coilOffset,\n\tin_quantity:=out_coilLen, \n\tin_interval:=in_pollInterval\n);\n\n// Handle data to DI\nprocessDI(di := di[0]^, in_rawData := dataDI[0]);\nprocessDI(di := di[1]^, in_rawData := dataDI[1]);\nprocessDI(di := di[2]^, in_rawData := dataDI[2]);\nprocessDI(di := di[3]^, in_rawData := dataDI[3]);\nprocessDI(di := di[4]^, in_rawData := dataDI[4]);\nprocessDI(di := di[5]^, in_rawData := dataDI[5]);\nprocessDI(di := di[6]^, in_rawData := dataDI[6]);\nprocessDI(di := di[7]^, in_rawData := dataDI[7]);\n\n// Handle DQ to data\ndataDQ[0] := processDQ(dq := in_dq[0]^);\ndataDQ[1] := processDQ(dq := in_dq[1]^);\ndataDQ[2] := processDQ(dq := in_dq[2]^);\ndataDQ[3] := processDQ(dq := in_dq[3]^);\ndataDQ[4] := processDQ(dq := in_dq[4]^);\ndataDQ[5] := processDQ(dq := in_dq[5]^);\ndataDQ[6] := processDQ(dq := in_dq[6]^);\ndataDQ[7] := processDQ(dq := in_dq[7]^);\n\n//Handle Counter\nprocessCnt(counter := counter[0]^, in_rawData1 := dataCounter[0], in_rawData2 := dataCounter[1]);\nprocessCnt(counter := counter[1]^, in_rawData1 := dataCounter[2], in_rawData2 := dataCounter[3]);\nprocessCnt(counter := counter[2]^, in_rawData1 := dataCounter[4], in_rawData2 := dataCounter[5]);\nprocessCnt(counter := counter[3]^, in_rawData1 := dataCounter[6], in_rawData2 := dataCounter[7]);\nprocessCnt(counter := counter[4]^, in_rawData1 := dataCounter[8], in_rawData2 := dataCounter[9]);\nprocessCnt(counter := counter[5]^, in_rawData1 := dataCounter[10], in_rawData2 := dataCounter[11]);\nprocessCnt(counter := counter[6]^, in_rawData1 := dataCounter[12], in_rawData2 := dataCounter[13]);\nprocessCnt(counter := counter[7]^, in_rawData1 := dataCounter[14], in_rawData2 := dataCounter[15]);","LineInfoPersistence":"(string)cd93ca07-de6a-4d44-bb99-30309574695e_Impl_LineIds"}}}},"Interface":{"@Type":"a9ed5b7e","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextBlobForSerialisation":"(string){attribute 'no_assign'}\nFUNCTION_BLOCK atBT623F EXTENDS atBTXXXX\nVAR_INPUT\n\tdi: ARRAY[0..7] OF POINTER TO atDi;\n\tcounter: ARRAY[0..7] OF POINTER TO atHSC;\n\tin_dq: ARRAY[0..7] OF POINTER TO atDQ;\n\tin_name: STRING;\nEND_VAR\nVAR\n\tdataDI: ARRAY[0..7] OF BOOL; // Raw data from card, 8 channels\n\tdataDQ: ARRAY[0..7] OF BOOL; // Raw data to card, 8 channels\n\tdataCounter: ARRAY[0..15] OF UINT; // Raw data to card, 8 channels\n\tdiscreteRequest: atMbReqReadDiscrete; // Modbus data request\n\tinputRequest: atMbReqReadInput; // Modbus data request\n\tcoilRequest: atMbReqWriteCoil;\nEND_VAR\n","LineInfoPersistence":"(string)cd93ca07-de6a-4d44-bb99-30309574695e_Decl_LineIds"}}}},"UniqueIdGenerator":"(string)982","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"}