FUNCTION STR_TO_REAL : void VAR_TEMP i: INT; //counter k: INT; CurChar: CHAR; Split: CHAR; tmpStr: STRING[10]; tmpInt: INT; END_VAR VAR_OUTPUT Speed_SMS1: REAL; Speed_SMS2: REAL; Speed_SMS3: REAL; Speed_SMS4: REAL; END_VAR BEGIN // радар 1 i:=0; k:=0; Split :=';'; tmpStr:=''; tmpInt:=0; CurChar:= BYTE_TO_CHAR(dbRadars.DB[i]); WHILE(CurChar <> Split AND k<5) DO tmpStr:= CONCAT(IN1:=tmpStr,IN2:=CHAR_TO_STRING(CurChar)); i:=i+1; CurChar:= BYTE_TO_CHAR(dbRadars.DB[i]);// k:=k+1; END_WHILE; tmpInt:=STRING_TO_INT(tmpStr); IF (tmpInt<0) THEN tmpInt:=tmpInt*(-1); END_IF; IF (tmpInt>255) THEN tmpInt:=0; END_IF; Speed_SMS1:= 1.0 * tmpInt; // радар 2 i:=102; k:=0; tmpInt:=0; Split :=';'; tmpStr:=''; CurChar:= BYTE_TO_CHAR(dbRadars.DB[i]); WHILE(CurChar <> Split and k<5) DO tmpStr:= CONCAT(IN1:=tmpStr,IN2:=CHAR_TO_STRING(CurChar)); i:=i+1; CurChar:= BYTE_TO_CHAR(dbRadars.DB[i]);// k:=k+1; END_WHILE; tmpInt:=STRING_TO_INT(tmpStr); IF (tmpInt<0) THEN tmpInt:=tmpInt*(-1); END_IF; IF (tmpInt>255) THEN tmpInt:=0; END_IF; Speed_SMS2:= 1.0 * tmpInt; // радар 3 i:=204; k:=0; Split :=';'; tmpStr:=''; tmpInt:=0; CurChar:= BYTE_TO_CHAR(dbRadars.DB[i]); WHILE(CurChar <> Split and k<5) DO tmpStr:= CONCAT(IN1:=tmpStr,IN2:=CHAR_TO_STRING(CurChar)); i:=i+1; CurChar:= BYTE_TO_CHAR(dbRadars.DB[i]);// k:=k+1; END_WHILE; tmpInt:=STRING_TO_INT(tmpStr); IF (tmpInt<0) THEN tmpInt:=tmpInt*(-1); END_IF; IF (tmpInt>255) THEN tmpInt:=0; END_IF; Speed_SMS3:= 1.0 * tmpInt; // радар 4 i:=306; k:=0; Split :=';'; tmpStr:=''; tmpInt:=0; CurChar:= BYTE_TO_CHAR(dbRadars.DB[i]); WHILE(CurChar <> Split and k<5) DO tmpStr:= CONCAT(IN1:=tmpStr,IN2:=CHAR_TO_STRING(CurChar)); i:=i+1; CurChar:= BYTE_TO_CHAR(dbRadars.DB[i]);// k:=k+1; END_WHILE; tmpInt:=STRING_TO_INT(tmpStr); IF (tmpInt<0) THEN tmpInt:=tmpInt*(-1); END_IF; IF (tmpInt>255) THEN tmpInt:=0; END_IF; Speed_SMS4:= 1.0 * tmpInt; END_FUNCTION