恭喜,你发布的帖子
发布于 2021-12-13 08:30:56
2楼
之前看到过的一个随机数的样例,可以给你参考一下:
//Set "No current job" status
#error := false;
#statusID := #ERROR_IN_THIS_BLOCK;
#status := #NO_CURRENT_JOBS;
//Check if the maximal Value is less than the minimal value
IF (#minValue > #maxValue) THEN
#error := true;
#statusID := #ERROR_IN_THIS_BLOCK;
#status := #MAX_LESS_MIN;
#LGF_RandomReal := 0;
RETURN;
END_IF;
//Read system time
#tempTimeStatus := RD_SYS_T(#tempTime);
IF (#tempTimeStatus <> 0) THEN
#error := true;
#statusID := #ERROR_RD_SYS_T;
#status := INT_TO_WORD(#tempTimeStatus);
#LGF_RandomReal := 0;
RETURN;
END_IF;
//Callculate a random-start-value depending on the time
#tempRandomValue.%B3 := #tempTime.NANOSECOND.%B0;
#tempRandomValue.%B2 := #tempTime.NANOSECOND.%B1;
#tempRandomValue.%B1 := #tempTime.NANOSECOND.%B2;
#tempRandomValue.%B0 := #tempTime.NANOSECOND.%B3;
//adapt the calculated random number to the given number span
#tempNormReal := NORM_X(MIN := #MIN_UDINT, VALUE := #tempRandomValue, MAX := #MAX_UDINT);
#LGF_RandomReal := SCALE_X(MIN := #minValue, VALUE := #tempNormReal, MAX := #maxValue);
"DB_分期".随机数 := #LGF_RandomReal;
#status := #NO_ERROR;
请填写推广理由:
分享
只看
楼主