您好!欢迎光临工博士智能制造网!平台热线:021-80392549
产品分类
新闻中心
FANUC机器人-发那科机器人KAREL-随机数(RANDOM)(技术干货)
发布时间:2021-12-23        浏览次数:128        返回列表

随机数是用于试验的数,它是随机生成的,在发那科机器人系统中,系统变量中的$FAST_CLOCK为机器人系统自启动运行时的时间,该系统变量会实时进行刷新,时间单位毫秒(ms),本篇文章利用该变量生成随机数,可以指定随机数产生的范围。


KAREL程序


PROGRAM random

VAR

status  :INTEGER

get_int :INTEGER


--***********************************

--random_(min_num : INTEGER;max_num:INTEGER;ret_status:INTEGER) : INTEGER

--Author: Zhaomengkang

--Date: 2021年10月4日

--[IN   ]      min_num : ***小随机数

--[IN   ]      max_num : ***大随机数

--[OUT   ]      ret_status:状态,-1 ***小数大于***大数

--[OUT   ]      ret_status:状态,-2 ***小数或***大数小于0

--[RETURN]   INTEGER: 处于[min_num,max_num]区间的随机数

--***********************************

ROUTINE random_(min_num : INTEGER;max_num:INTEGER;ret_status:INTEGER) : INTEGER

VAR

ret_random1 :INTEGER

ret_random2 :INTEGER

random_real   :REAL

BEGIN

 

 -- 参数判断

 IF (min_num > max_num)THEN ret_status = -1;RETURN(-1);ENDIF

 IF (min_num<0) OR (max_num<0) THEN ret_status = -2;RETURN(-2);ENDIF

 

 -- 产生随机数

 REPEAT

     DELAY(1) -- 必须有该延时,用于系统处理其它任务

     -- 随机数初值

   ret_random1 = max_num + $FAST_CLOCK

   -- 算法来自C语言

   ret_random1 =(25173*ret_random1+13849) MOD 65536

   random_real   = ret_random1 / 65535.0

   -- 随机数取正整

   ret_random2 = ROUND(ABS(random_real * max_num))

   -- 结果判断,满足结束RETURN返回

 UNTIL (ret_random2>=min_num) AND (ret_random2<=max_num)  

 ret_status = 0 --状态正常

 -- 返回结果

 RETURN(ret_random2)  

END random_


--***********************************

--MAIN PROG

--测试随机数

--***********************************

BEGIN

 get_int = random_(1,4,status)

 -- 返回状态为0表示获取成功

 IF status = 0 THEN

   FORCE_SPMENU(TP_PANEL,SPI_TPUSER,1)

   WRITE TPDISPLAY(CHR(128),CHR(137))

   WRITE TPDISPLAY('Random number:',get_int,CR)

 ELSE

   FORCE_SPMENU(TP_PANEL,SPI_TPUSER,1)

   WRITE TPDISPLAY(CHR(128),CHR(137))

   WRITE TPDISPLAY('Random process error! status: ',get_int,CR)    

 ENDIF


END random


上述程序,产生的随机数区间属于N+(正整数),且下限必须小于或等于上限。生成的随机数∈[min_num,max_num]。


咨询详情:FANUC发那科机器人


联系热线:18684910472(微信同号) 联系人:刘 联系地址:上海市宝山区富联一路98弄6号工博士集团

技术和报价服务:星期一至星期六8:00-22:00 发那科Fanuc机器人服务商

  • ——咨询热线——
  •  
  • 18684910472(微信同号)
  • 18684910472
  •  
  • ——在线咨询——
  •  
  • 您好,欢迎光临,我们将竭诚为您服务