只需一步,快速开始
微信扫码登录
1 | 题目
线性同余方法(LCG)是一种产生伪随机数的方法。它是根据递归公式RandSeed = (RandSeed*A+C)%M进行求解计算的。线性同余法最重要的是定义了三个整数,乘数A、增量C和模数M,其中A、B、M是产生器设定的常数。LCG的周期最大为M,但大部分情况都会少于M。一般而言,LCG的M是2的指数次密(一般232或者264)。显然采用这种求余的方法更加增加了伪随机数的随机性。编写程序利用线性同余法生成10个随机数。
2 | 设计分析
读取PLC的系统时间作为原始种子,然后根据线性同余公式计算随机数。
3 | 创建功能或功能块
创建功能块FB,命名为“Random10NumsLC”。
4 | 定义接口变量
具体接口变量定义见下图:
5 | 程序代码
编写程序代码。如下图:
检测到生成随机数的上升沿后根据线性同余法生成10个随机数,这10个随机数通过线性标准化和缩放后落在0-100之间,即生成0-100之间的10个随机数。
6 | 代码测试
在循环OB中调用FB-“Radom10NumsLC”,调用时会自动创建背景数据块,命名为“InstRadom10NumsLC”,该背景数据块可以用来监视和修改数据。转至在线并监控程序。如下图:
7 | 总结
学习IF条件语句;
学习WHILE循环语句;
学习上升沿的使用;
学习读取系统时间指令RD_SYS_T的使用方法;
学习线性标准化NORM_X的使用方法;
-
您需要 登录 才可以下载或查看,没有账号?注册哦
举报
本版积分规则 发表回复 回帖后跳转到最后一页