技术论坛

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

返回主题列表
作者 主题
WWCWWC
至圣

经验值:71712
发帖数:8024
精华帖:145
楼主    2022-11-10 17:18:56
主题:100个浮点数数据Real求和的SCL编程

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验证结果符号要求,此。


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