设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
CODESYS中如何产生随机数??
返回列表
发新帖
[CodeSys]
CODESYS中如何产生随机数??
[复制链接]
69253
|
0
|
2024-3-15 09:39:48
|
显示全部楼层
|
阅读模式
在CODESYS程序开发中,可能需要一些随机数来进行仿真模拟、小游戏开发或者加密等应用,我们这里和大家共同探讨随机数。
两种方式
方式一:自定义函数实现
自己根据随机数的定义和产生原理来自定义FUNCTION。根据网络的资源,主要有以下几种(具体不做介绍,大家自行搜索):
平方取中法
线性同余法
梅森旋转算法
方式二:CODESYS自带的库或者第三方库函数实现
利用CODESYS自带的库或者第三方库函数直接调用。这里我们重点讨论下。
CODESYS库:SM3_Shared,4.9.0.0
关于库的添加和使用具体方法可以参考入门课程介绍。
添加完成后,可以选择RndI和RndI_Range这两个函数功能块来获取随机数。区别主要在于RndI_Range可以定义随机数产生范围中的最小值和最大值,而RndI只能在0和最大值间产生。
OSCAT_Basic第三方库
关于这个库的说明和下载链接参考往期文章:
OSCAT自动化技术开源社区源代码分享
这个库比自带的SM3_Shared区别在于,产生的随机数类型不同,RDM返回的值是Real类型,而且是FUCTION,调用更加方便。具体的产生随机数的源代码也可以清楚了解:
伪随机数
我们注意到上述函数的说明中出现的pseudo-random,翻译过来就是伪随机数。对于第一次了解这个概念,我们也搜索到相关的知识,分享如下:
针对伪随机数,相关的总结如下:
1.什么是随机数?通俗说法就是随机产生一个数,这个数预先不能计算出来,并且每个数字出现的概率是一样的。随机数必须满足以下两个条件:
不可计算性。即在随机数产生前,不能通过任何方式计算出来。
机会均等性。即需要保证每个数出现的概率是相等的。
2.真伪随机数目前学界划分真伪随机数的方式非常简单,一句话就能说明白,凡是用一定的算法使用程序生成的都是伪随机数,通过物理现象产生的随机数才是真随机数。
3.下图(真伪随机数形成的图)直观说明,如果数据够多的情况下,伪随机数的产生是有规律的。
也就是说,只要给出足够多的伪随机数数据,是有可能逆推产生随机数的算法的。
上述只是简单的说明,详尽的内容大家自行网上搜寻,欢迎各位探讨。
【视频课程】Codesys V3.5系列入门课程【视频课程】Codesys SoftMotion软运动控制基础课程【视频课程】Codesys SoftMotion电子齿轮课程【视频课程】Codesys SoftMotion电子凸轮CAM课程【视频课程】Codesys Library自定义库的制作
Codesys V3.5系列最全免费公开资料汇总
十大常用滤波算法(ST语言)
集成Chat GPT的PLC长啥样?
2023年度TOP 10的PLC编程书籍分享
HMI&SCADA之间的异同?
MC_Power.status = FALSE,轴也可以运动?
ST语言学习资料汇总
TCP:Ping 命令在Codesys中如何使用?
如何判断CODESYS PLC选型是否合适?
PLC 常见的通讯接口和协议有哪些?
第三方EtherCAT总线伺服驱动配置
--------END--------
喜欢本文还请大家分享及右下角“点赞”和“在看”
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
阿蚊在线
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』