100个浮点数数据Real求和的SCL编程

已锁定

WWCWWC

西门子1847工业学习平台

  • 帖子

    7980
  • 精华

    145
  • 被关注

    1328

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

100个浮点数数据Real求和的SCL编程

3587

57

2022-11-10 17:18:56

100个浮点数数据Real求和的SCL编程

  曾经在STEP7软件STL编程环境下,指针偏移运算已经着迷了的我,目前也慢慢开始着迷于运算能力更强大的SCL编程环境下写一些简单的运算程序。

以下是求100个浮点数的和基本过程,希望能够给初学一些提示。实际上浮点数、整数、字节之间的计算,也仅仅只是数据类型的差异,也就是我们热门的几位数数据,如,字节是8位,字word是16位。

100个浮点数求和步骤:

1)  创建一个新项目,名称100个浮点数求和。选择合适的机型,如s7-1214C,创建求和的子程序FC1,图示:

事先按基本思路定义好FC的接口,也可以边写程序边创建,这个我感觉没有什么好与坏。创建一个浮点数数组,Array[0..99];创建一个存放FOR循环需要的存储器,名称取“i”,数据类型INT,完全可以存放数据0 ~ 99这个数据了。,当然此处定义数据类型Byte丝毫没有问题的。

2)  在SCL编辑区,编辑求和程序,图示:

程序语句非常简单,首先是给浮点数和存储器清0,目的是想从新开始计算。利用FOR循环指令做自编号0开始到99的循环,这个主要目的是为了创建浮点数数字能够带一个类似的指针偏移,Static创建的变量“i”存放循环次数的记录。假设FOR循环刚刚开始的第0次,

那么,#sum := #sum + #arrayReal[#i]的结果是:#sum := 0 + array[0],假设array[0] =1.0,则,第一次循环结束后#sum := 1.0。当进入第二次循环时,假设array[1] =2.0,那么,循环结束后#sum := 1.0 + 2.0 := 3.0、、、、、、这样重复累加100次,把浮点数数组array[0..99]的数据全部累加一遍,完成求和的过程。

3)  当IF  #i = 100 THEN条件满足时,启动EXIT指令退出FOR循环,整个过程假设这么简单精炼,在OB1中调用FC1,将程序下载到cpu,看运算结果,图示:

下载cpu验证结果符号要求,此。


100个浮点数数据Real求和的SCL编程 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有12957条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。