各位好,我在fb中写了个生成随机数的功能,是基于cpu时间的纳秒的。根据2HZ的定时器将随机数写入一个5位的数组,但生成的随机值是一样的,这个是不是plc扫描周期一样造成的,请问该如何解决
//生成验证码
#t_verCode := #s_cpuTime.NANOSECOND;
#t_normVal := NORM_X(MIN := 0, VALUE := #t_verCode, MAX := 1000000000);
#t_sacleVal := SCALE_X(MIN := #c_verCodeMin, VALUE := #t_normVal, MAX := #c_verCodeMax);
//验证码数组
#s_IEC_Timer_TRIG_0(CLK := #s_IEC_Timer_0_par.Q,
Q => #s_IEC_Timer_0_par.Q);
IF (#s_IEC_Timer_0_par.Q = 1) THEN
IF (#s_verCode_Count >= 5) THEN
#s_verCode_Count := 0;
ELSE
CASE #s_verCode_Count OF
0:
#s_verCode[0] := #t_sacleVal;
1:
#s_verCode[1] := #t_sacleVal;
2:
#s_verCode[2] := #t_sacleVal;
3:
#s_verCode[3] := #t_sacleVal;
4:
#s_verCode[4] := #t_sacleVal;
END_CASE;
#s_verCode_Count := #s_verCode_Count + 1;
END_IF;
END_IF;