签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
S7-1200如何编写随机数程序?
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1718518&b_id=50&s_id=0&num=9
https://www.ad.siemens.com.cn/service/answer/solved_228279_1072.html
查看以上链接
之前看到过的一个随机数的样例,可以给你参考一下:
//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;
#LGF_RandomReal := 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.%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;
按时间随机生成数据
库程序有的
这个好,学到了
https://support.industry.siemens.com/cs/document/109479728/step-7-(tia-portal)-%E5%92%8C-s7-1200-s7-1500-%E7%9A%84%E9%80%9A%E7%94%A8%E5%87%BD%E6%95%B0%E5%BA%93-(lgf)?dti=0&lc=zh-CN
我看过一个,是读取本地时间,纳秒每次读取的好像就是随机数
是什么指令?
西门子LGF库里面有现成的Random生成块
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录