TIA环境下SCL编程练习:产生m到n之间的随机整数,存入数组

假设需要读取100个随机数,存入有100个成员的数组。做这个练习是为了学习一下SCL编程。随机数使用系统时钟纳秒数来线性转换。

新建项目,选用1500PLC(6ES7 513-1AL02-0AB0,当然可以选用其它型号),设定本地时区,建立网络。

新建DB,建立变量,取消优化块的访问。

 

新建FC,先建立内部变量如下截图

在该FC下写SCL程序段

FOR #i := 0 TO 99 DO
#Ret := RD_LOC_T(#Current_DT);
#nanosecond := #Current_DT.NANOSECOND;
#nanosecond_real := DINT_TO_REAL(#nanosecond MOD 100000); (* 取纳秒后4位数*)
#m_real := DINT_TO_REAL(#m);
#n_real := DINT_TO_REAL(#n);
#nanosecond_1 := #nanosecond_real / 9999.0 * (#n_real - #m_real) + #m_real;
#random_dint := REAL_TO_DINT(#nanosecond_1);
#Array_dint[#i] := #random_dint;
END_FOR;

在OB1调用该FC

通过WINCC画面给m和n赋值,就可以产生不断变化的数组中的数值了。可以通过使Pause为1来暂停随机数产生。

 

posted @   来自金沙江的小鱼  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2022-12-21 cicode定制过程分析器:删除特定的板
点击右上角即可分享
微信分享提示