加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2024-12-21 18:34:39)
标签:

西门子

tia

scl编程

读取系统日期时间

产生随机数

分类: 西门子软硬件
这一篇学习笔记我在博客园发过,在这里再发一次。

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

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

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

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

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

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

在该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

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

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



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有