作者 | 主题 |
---|---|
昔日如诗 侠圣 经验值: 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函数的静态/临时变量里? |
昔日如诗 侠圣 经验值: 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之类的 |