技术论坛

 一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里?

返回主题列表
作者 主题
昔日如诗
侠圣

经验值: 3534
发帖数: 719
精华帖: 3
楼主    2019-09-09 20:54:13
主题:一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里? 精编帖 

    如下图。我要手工写入一个频率比如是100赫兹,这100赫兹先除以160赫兹,得0.625,再乘以100,得62.5,再把它取整数,得62。这个62才是最后要输入变频器的数值。

   在这些运算中,过程值是用DB块来存放还是FC函数里用静态/临时变量来存放?

    我觉得用DB块很别扭,因为事先不知道运算的过程到底有几步,所以不知道在DB块里该建几个元素,结果每次少建了一个元素,就得追加一个,然后这个DB块的地址又变没了,得重新编译。如果运算的数值很多,这就相当麻烦了。所以我想用FC函数上头的静态/临时变量来存放运算过程的那些数值。不知道行不行?

   还想问一下,一个数值放在DB块里和放在FC的静态变量(或者临时变量)里有什么区别?

    



小火星
侠士

经验值: 1074
发帖数: 103
精华帖: 0
1楼    2019-09-09 21:51:39
主题:回复:一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里?

用DB块或静态变量可以保存变量的值,临时变量的值只能保存一个扫描周期。这三种变量都可以完成计算,如果想要方便监视或存档,建议把数值存放在DB块中,DB块中的数据可以掉电保持的。

YiMoon
至圣

经验值: 11037
发帖数: 1221
精华帖: 35
2楼    2019-09-09 22:24:19
主题:回复:一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里?
像你这样的可以放在FB的静态变量里,做中间数据存储
放DB块里,可以全局使用
FC的临时变量只能本FC块内使用,数据只能保存一个扫描周期
FB的静态变量虽然是局部变量,但可以全局引用
Keep calm and carry on!!!
sangshunyang
侠圣

经验值: 4091
发帖数: 565
精华帖: 4
3楼    2019-09-09 23:27:06
主题:回复:一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里?

需要纠正的是FC中没有静态变量。

这个是你对局部变量的理解问题。局部变量是在程序开始调用从系统的内存中取一部分内存用于该功能块(FC或FB)数据运算,取出的数据是随机的,这些数据的初始化是依靠对应的参数(IN, INOUT)进行,对于FB来说如果没有对应参数就用对应的背景DB中的数据进行初始化。

就你的这个情况用FB和FC都可以。现在的问题是你要收集资料彻底搞清楚局部变量的问题,可以说你还没弄明白是么是FB,什么是FC.

Zane
至圣

经验值: 75765
发帖数: 19245
精华帖: 376
4楼    2019-09-09 23:32:06
精编帖  主题:回复:一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里?

博图有公式运算指令,放着不用?


用着先进的软件,但编程思维还停留在n年前,诗如昔日

Zane 注册自动化系统工程师 Always save before download
周杰伦
至圣

经验值: 13737
发帖数: 2031
精华帖: 16
5楼    2019-09-10 08:03:14
主题:回复:一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里?

SCL真的就那么难用吗?


工控毁我青春!
孤独天空
侠士

经验值: 1632
发帖数: 225
精华帖: 2
6楼    2019-09-10 08:34:45
主题:回复:一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里?

不需要知道中间量多少,可以直接连续运算

4楼 5楼,已经给出方便答案了

alexma1975
奇侠

经验值: 9848
发帖数: 460
精华帖: 2
7楼    2019-09-10 09:32:14
主题:回复:一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里?

 可以连续运算,直接得到答案!

西山炮台
侠圣

经验值: 2787
发帖数: 162
精华帖: 7
8楼    2019-09-10 14:48:10
主题:回复:一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里?


这两个指令了解下。

LAD和SCL都可

昔日如诗
侠圣

经验值: 3534
发帖数: 719
精华帖: 3
9楼    2019-09-11 19:51:50
精华帖  主题:回复:一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里?

已解决,如下图。谢谢楼上诸位



尘世小书童
游侠

经验值: 346
发帖数: 4
精华帖: 0
10楼    2019-09-12 08:29:14
精编帖  主题:回复:一个数要经过多步运算才会得出最后一个值,那么那些过程值是放在DB块里还是放在FC函数的静态/临时变量里?

CALCULATE指令,很好用,一些运算一个指令搞定,根本不需要什么调用FC、FB之类的

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