回复:【万泉河】FB内的static静态变量是全局变量吗?

yming

西门子1847工业学习平台

  • 帖子

    23138
  • 精华

    881
  • 被关注

    1253

论坛等级:至圣

注册时间:2004-03-06

钻石 钻石 如何晋级?

发布于 2018-10-21 11:32:02

19楼

展开查看
以下是引用宁超在2018-10-21 09:21:25的发言 >17楼

就是这么定义的标准规范,这话题跟问井盖要做成yuan的还是方的好一样。实质就是绝对地址,FB获得封装后甚至加密,static变量可能会被fb内部逻辑改写值变的好象不可控,用户主动去改写staic的值甚至会破坏fb原有的正常逻辑。

以下是引用Zane在2018-10-21 01:00:03的发言 >14楼:和万泉河通了电话后...

引用14楼详细内容:

和万泉河通了电话后,我查了一下手册,STEP7和博图的,


S7的数据是这么定义的: 


1.全局数据 与 局部数据  两大类


2.全局数据为 M,全局DB,T,C


3.局部数据分为  局部静态数据   临时数据


(在定义方面,我认为两者没有太大的区别,博图的定义更加明确一些)


4.在STEP 7里直接了当地就告诉说局部静态数据可以被外部程序同全局DB一样访问,但风险自担


5.但在博图对静态数据的访问的描述就相当的暧昧了

    首先是鼓励用数据块及静态数据而不是用M/T,这和万侠的主张一致

    其次告知局部静态数据可以被外部程序同全局DB一样访问,但又不建议这么做,说有风险

    第三主张通过数据接口及多重背景实现数据的交换,但又怕造成多次数据交互造成的重复与浪费,不这么做那就是外部直接访问静态数据效率最高了


我还是比较同意shine的说法,简单点,就当全局变量用就是了。

    

   

不会吧。出问题还是程序写的有问题吧。

看看西门子自己提供的库程序,例如:MODBUS TCP,不也是封装、加密的?但把原来放在接口的参数,放到背景数据块里了么?还有许多设置,不也是要求去背景数据块里设置么?还有些西门子提供的FB功能库,参数不也是需要外部去背景数据块中读取么?

为什么从接口改到背景数据块中?就是每次调用不需要都传送。

所以,就像这些标准库一样,每次调用都有可能发生改变的,放在接口;仅在特定状态下才需要改变的,就放在背景数据块中。封装、加密后,不允许改变的的就是灰色的,允许外部设置、读取的就是白色。



学而时习之,不亦说乎?温故而知新,不亦乐乎?
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15100条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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