回复:FB块里有没有只属于这个FB块的内部全局变量?

已锁定

Zane

版主 西门子1847工业学习平台

  • 帖子

    21544
  • 精华

    408
  • 被关注

    1513

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2023-06-27 22:52:08

19楼

展开查看
以下是引用冬日在2023-06-16 14:27:07的发言 >9楼

这个在高级语言里,其实就是类的静态变量

这个变量只对这个类有效,不对外公开。但是所有实例都可以修改,也看得到。

举个例子,比如变频器通信吧,假如这个变频器是由多个机构公用的,那么常规的做法是不是最终只能在某一个地方,对这个变频器进行读写?然后每个使用的地方进行判断是不是已经有其他机构在使用变频器?

那么如果我想做的很简单,每个机构都可以直接对变频器进行读写,然后所有的读写由一个FB块来进行,那么这个时候就需要与一个标记,知道变频器是空闲还算被占用。当然这个标记可以做一个全局变量,但是那样不仅仅是太丑陋了,而且有遗漏和地址被重复修改的危险,或者地址已经被使用了。

以下是引用Zane在2023-06-16 14:07:35的发言 >8楼:呵呵,再来个深入一...

引用8楼详细内容:

呵呵,再来个深入一点点的问题,这些重复调用的FB如果要分不同的组怎么办呢?


其实很简单,不要钻牛角尖

以下是引用冬日在2023-06-15 09:24:56的发言 >0楼:说简单点,就是需要...

引用0楼详细内容:

说简单点,就是需要创建一个仅在此FB块和所有实例里公用的变量!

比如现在创建了一个FB块,FB块多次被调用,使用过程中需要对某个变量进行标记,在任何实例对这个变量进行写,其他实例也要能跟着变化。

当然了,如果用一个Mxxx或者DB等全局变量,轻松实现,但是那不是我的初衷了。

用选通方式做就可以了,不就一个变频器嘛,那就一个FB,指令的来源不同,做唯一性选通即可。


你也可以用FC实现,你也可以用FB实现,也可以同一个FC或FB重复调用多次实现


但再怎么换马甲,也是这只王八







Zane 注册自动化系统工程师 Always save before download
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11102条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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