PROGRAM PLC_PRG
VAR
iSize: INT;
sTritonDataSend: TritonDataSend;
sTritonDataRecv: TritonDataRecv;
itriton_status: INT;
aTempKey: ARRAY [0..99] OF string;
aTempNote: ARRAY [0..99] OF string;
strJsonData: ARRAY [0..9] OF JsonDataString;
struuid: STRING;
intuuid: ARRAY [0..99] OF BYTE;
loop: WORD := 1000;
rt: INT;
i: INT := 1;
Delay: TON;
irandom: INT;
baction_done: BOOL;
END_VAR
itriton_status:=triton_status();
rtn:=triton_uuid(ADR(intuuid));
SysMemCpy(ADR(struuid),ADR(intuuid),SIZEOF(intuuid));
rtn:=triton_recv(ADR(sTritonDataRecv));
IF sTritonDataRecv.iSize<>0 THEN
FOR i:=0 TO 9 DO
SysMemCpy(ADR(strJsonData[i].szKey),ADR(sTritonDataRecv.payload[i].szKey),SIZEOF(sTritonDataRecv.payload[i].szKey));
SysMemCpy(ADR(strJsonData[i].szValue),ADR(sTritonDataRecv.payload[i].szValue),SIZEOF(sTritonDataRecv.payload[i].szValue));
END_FOR
END_IF
IF strJsonData[1].szKey='0100' THEN
bstrart_lift:=STRING_TO_BOOL(strJsonData[1].szValue);
baction_done:=TRUE;
END_IF
IF baction_done THEN
SysMemSet(ADR(strJsonData),0,SIZEOF(strJsonData));
baction_done:=FALSE;
END_IF
iSize:=0;
aTempKey[0]:='0100H';
aTempNote[0]:=INT_TO_STRING(irandom);
iSize:=iSize+1;
aTempKey[1]:='0101H';
aTempNote[1]:=REAL_TO_STRING(50);
iSize:=iSize+1;
aTempKey[2]:='0102H';
aTempNote[2]:=REAL_TO_STRING(25);
iSize:=iSize+1;
aTempKey[3]:='0103H';
aTempNote[3]:=REAL_TO_STRING(8);
iSize:=iSize+1;
aTempKey[4]:='0104H';
aTempNote[4]:=REAL_TO_STRING(40);
iSize:=iSize+1;
Delay(in:=TRUE, PT:=WORD_TO_TIME(loop), Q=>, ET=>);
IF Delay.Q THEN
Delay(in:=FALSE);
sTritonDataSend.iSize:=iSize;
FOR i:=0 TO iSize DO
SysMemCpy(ADR(sTritonDataSend.payload[i].szKey), ADR(aTempKey[i]), LEN(aTempKey[i]));
SysMemCpy(ADR(sTritonDataSend.payload[i].szValue), ADR(aTempNote[i]), LEN(aTempNote[i]));
END_FOR
rt := triton_send(ADR(sTritonDataSend));
SysMemSet(ADR(sTritonDataSend),0,SIZEOF(sTritonDataSend));
END_IF
END_PROGRAM