0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

西门子PLC TIA博途生成随机数

jizhongyingAI 来源:非标设备自动化设计 2023-05-24 09:32 次阅读

先建一个功能块FC,功能FC采用SCL语言来编写,具体按照如下步骤:

1、在设计功能时,先确定好,它的具体功能,比如:是想获取一个随机实数,该随机实数是可以定义数值范围,还要考虑一些错误代码,该例子定义了三个错误状态码,16#7000(无当前任务)、16#0000(任务完成)、16#8200(最大值小于最小值)。

2. 新建一个FC功能块,命名为random number(FC1) 然后定义接口变量。如下图:

cf36676c-f95b-11ed-90ce-dac502259ad0.png

变量名称很清晰地描述了变量功能,这里不逐一解释

3、就是开始写FC1功能块程序了 ,程序如下图所示:

程序共5个程序段:

cf4d73bc-f95b-11ed-90ce-dac502259ad0.png

程序段1 块内变量初始化,三个变量分别赋值0、1、16#7000。

程序段2 检查输入范围变量,是否出现最小值大于最大值的情况。

cf5edbca-f95b-11ed-90ce-dac502259ad0.png

程序段3 读系统时间,用纳秒,使用纳秒的随机性。判断读系统时间是否有误,如果有误,给状态变量 赋值。

程序段4 无符号长整型数需要四个字节,每个字节和系统时间纳秒的四个字节分别对应,实际上#tempRandomValue就已经是一个随机的无符号整型数了。

程序段5 对#tempRandomValue进行标准化操作,使其变成0.0~1.0之间的一个数据,然后再逆标准化,使这个随机数产生于我们要求的最小值和最大值之间。

4,新建一个全局背景DB,如下图所示

cf7283d2-f95b-11ed-90ce-dac502259ad0.png

5 、再主程序OB1中调用FC1

左侧为数值的范围,可以自己随便定义 右侧为输出数字和错误代码

cf92b45e-f95b-11ed-90ce-dac502259ad0.png

6、 打开模拟器运行 ,如下图所示,数据随机变化

cfa8daea-f95b-11ed-90ce-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    5010

    文章

    13283

    浏览量

    463183
  • 接口
    +关注

    关注

    33

    文章

    8582

    浏览量

    151072
  • 西门子
    +关注

    关注

    94

    文章

    3038

    浏览量

    115818
  • tia
    tia
    +关注

    关注

    1

    文章

    81

    浏览量

    28105
  • SCL
    SCL
    +关注

    关注

    1

    文章

    239

    浏览量

    17063

原文标题:西门子PLC TIA博途生成随机数

文章出处:【微信号:非标设备自动化设计,微信公众号:非标设备自动化设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言中随机数生成代码

    C语言中随机数生成完整代码:
    的头像 发表于 02-20 09:21 1w次阅读

    西门子PLC编程软件下载

    西门子PLC编程软件TIA V13 SP1 SIMATIC_WinCC_Runtime_Professional_SP1_for_V13
    发表于 03-01 11:04 68次下载

    用于生成随机数的电子骰子

    电子发烧友网站提供《用于生成随机数的电子骰子.zip》资料免费下载
    发表于 07-06 10:58 4次下载
    用于<b class='flag-5'>生成</b><b class='flag-5'>随机数</b>的电子骰子

    随机数生成器开源分享

    电子发烧友网站提供《随机数生成器开源分享.zip》资料免费下载
    发表于 11-11 11:57 0次下载
    <b class='flag-5'>随机数</b><b class='flag-5'>生成</b>器开源分享

    如何在200 smart中生成随机数

    上文写了途中生成随机数的几种办法,现在试着使用其中简单的线性同余法实现在200 smart中完成类似功能。
    的头像 发表于 03-23 13:51 6785次阅读
    如何在200 smart中<b class='flag-5'>生成</b>伪<b class='flag-5'>随机数</b>

    Unity3D与西门子PLC通讯

    本文是做实体PLC和Unity的通讯,如果没有实体PLC可以参考我之前的文上位机与西门子
    发表于 04-19 11:43 6次下载
    Unity3D与<b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>通讯

    西门子PLC产生随机数

    之前在测试触摸屏趋势图时,需要仿真产生一些数据,为了偷懒,打算通过程序模拟随机数据,但结果却走进另外一个坑–如何产生随机数据,因为西门子不具备高级语法的语法函数,最后网上查询资 料,找到两种方法
    发表于 04-19 11:06 4次下载
    <b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>产生<b class='flag-5'>随机数</b>

    C#西门子PLC上位机开发环境搭建

    一、安装软件   1. TIA_Portal_STEP7 15 西门子的自动化开发软件 2. SIMATIC_S7PLCSIM_V15_1 西
    发表于 05-08 10:07 2次下载
    C#<b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>上位机开发环境搭建

    西门子TIA的Modbus主站通讯

    西门子PLC因其市场占有率较高,且被广大用户使用,应用比较广泛,而其TIA平台得到了推广应用,本文将介绍使用CP341进行Modbus 主站通讯
    的头像 发表于 05-19 09:15 1952次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>博</b>图<b class='flag-5'>TIA</b>的Modbus主站通讯

    基于TIA搭建西门子PLC仿真环境及通信方案

    随着工控及上位机的广泛应用,在学习过程中,很多时候,我们都需要软件和硬件的结合。本方案主要用于解决在学习过程中PLC硬件的需求,以西门子PLC为例,详细描述了基于TIA
    的头像 发表于 07-26 09:41 1117次阅读
    基于<b class='flag-5'>TIA</b>搭建<b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>仿真环境及通信方案

    西门子1200PLC西门子1500PLC的ModbusRTU通讯

    在现代化高度集成工业中,经常用到PLCPLC之间的通讯,常见的通讯modbus,profibus DP,profinet ,CANOPEN等等通讯,今天我们以西门子TIA
    的头像 发表于 08-23 09:15 4589次阅读
    <b class='flag-5'>西门子</b>1200<b class='flag-5'>PLC</b>和<b class='flag-5'>西门子</b>1500<b class='flag-5'>PLC</b>的ModbusRTU通讯

    西门子1200/1500PLC单按钮启停控制10种设计方法

    西门子1200/1500PLC单按钮启停控制10种设计方法
    的头像 发表于 08-31 09:14 8077次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>博</b><b class='flag-5'>途</b>1200/1500<b class='flag-5'>PLC</b>单按钮启停控制10种设计方法

    西门子plc单按钮启停的十种方法(1200/1500PLC

    西门子1200/1500PLC单按钮启停控制10种设计方法
    发表于 08-31 09:15 6616次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>plc</b>单按钮启停的十种方法(<b class='flag-5'>博</b><b class='flag-5'>途</b>1200/1500<b class='flag-5'>PLC</b>)

    如何使用雪花算法生成真正的随机数

    以前用rand和srand生成过伪随机数,伪随机数的序列是固定的,今天学习生成真正的随机数生成
    的头像 发表于 10-09 10:05 1335次阅读

    PLC输出0~100之间的随机数编写

    由于西门子PLC不提供随机数相关函数,在需要用到随机数的情况下,只能自己手动去写,下面来教大家写一个简单的0~100之间的随机数
    发表于 10-11 12:22 3787次阅读
    <b class='flag-5'>PLC</b>输出0~100之间的<b class='flag-5'>随机数</b>编写