签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
软件版本:TIA15.1
功能:用户设定随机数范围后,可输出随机数。
此函数参考西门子官方库修改得来。简化成最简单的了。
封装:
代码如下:
//Status Codes:
// 16#7000: No current jobs
// 16#0000: Job finished; Note: There is no "Busy"-Status because the block
// is finished within a single cycle
// 16#8200: maxValue is samller then minValue
//=============================================================================
//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;
#status := #MAX_LESS_MIN;
#生成随机数 := 0;
RETURN;
END_IF;
//Read system time
#tempTimeStatus := RD_SYS_T(#tempTime);
IF (#tempTimeStatus <> 0) THEN
#statusID := #ERROR_RD_SYS_T;
#status := INT_TO_WORD(#tempTimeStatus);
//Callculate a random-start-value depending on the time
#tempRandomValue.%B1 := #tempTime.NANOSECOND.%B0;
#tempRandomValue.%B0 := #tempTime.NANOSECOND.%B1;
//adapt the calculated random number to the given number span
#tempNormReal := NORM_X(MIN := 1, VALUE := #tempRandomValue.%B1, MAX := 255);
#生成随机数 := SCALE_X(MIN := #minValue, VALUE := #tempNormReal, MAX := #maxValue);
#status := #NO_ERROR;
附件为随机函数的全局库文件
随机函数全局库.rar
编写不易 点个赞呗
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1747343&b_id=66&s_id=0&num=19
厉害了我的稻草人朋友,!
介绍一下用途好吗。
都是利用系统时间,,,
这个随机数生成感觉实在用处不大啊,不过还是要学习楼主的钻研精神!
感谢分享1
感谢分享+1
测试了一下,好用
ELSE
#R_TRIG_Instance(CLK := #start);
IF #R_TRIG_Instance.Q THEN
//读取失败
#error := FALSE;
//读取成功
//
#start := 0;
收藏,谢谢分享
谢谢分享,已收藏,后期试验一下。
很有用,感谢分享!
好东西!学习学习
感谢稻草人大佬的分享
楼主的意思是以后调用模块实现相应功能。
使用时间不确定性
讲的真棒!!
学习了,感谢分享
怎么下载不了啊?
有用,但下载不了
感谢分享!
上面标色那句完全没用上,后面NORM_X使用的是高字节。
#tempNormReal := NORM_X(MIN := -32768, VALUE := #tempRandomValue, MAX := 32767);
修改成这样测试了一下可以,将两个字节组成的int数据标准化后生成0-1.0的数,在设定的取值范围内按比例生成随机数。不知道符合不符合完全随机要求。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录