[西门子] SCL编程实例100例-036-和为20的4个随机数

[复制链接]
查看130 | 回复0 | 2024-12-11 08:11:07 | 显示全部楼层 |阅读模式
>

1 | 题目



编写程序实现随机生成和为20的4个随机数。



2 | 设计分析



采用标尺法,即首先生成0-20之间的3个互不相同的随机数,这3个随机数把满量程为20的标尺划分为4段,这4段的长度加在一起肯定是20,那么这4段分别的长度即为满足题目要求的4个随机数。



3 | 创建功能或功能块



创建功能块FB,命名为“Random4NumsSum20”。




4 | 定义接口变量



具体接口变量定义见下图:

为了方便监控,将存储3个不相同的随机数的变量定义为Static静态变量。定义上升沿多重实例用来触发随机数的生成。



5 | 程序代码



编写程序代码。如下图:


程序中调用了生成随机数的子程序,可以任意选用前几篇中设计的随机数生成函数。另外需要注意程序中数组长度和循环变量的匹配,否则很容易出问题。



6 | 代码测试



在循环OB中调用FB-“Radom4NumsSum20”,调用时会自动创建背景数据块,命名为“InstRadom4NumsSum20”,该背景数据块可以用来监视和修改数据。转至在线并监控程序。如下图:

修改变量#GetRand4Num值为TRUE触发生成4个随机数。作为标尺的3个20以内的互不相同的随机数经排序后为6、9、18,将满量程20的标尺分成4个线段即为满足要求的4个随机数6+3+9+2=20。



7 | 总结



学习IF..ELSE条件语句;

学习REPEAT循环语句;

学习FOR循环语句;

学习循环语句嵌套;

学习上升沿的使用;

学习子程序的调用方法

-

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则