gx works2中编写FUN函数时,为什么不能使用全局标签? 点击:3655 | 回复:8



heartiner

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 56回
  • 年度积分:988
  • 历史总积分:2052
  • 注册:2010年7月10日
发表于:2015-12-28 20:54:39
楼主

今天用GX Works2编写了一个FUN函数,里面使用了全局标签。编译时就会报错,提示“函数中使用了全局标签
”的错误。貌似别的PLC都可以使用全局变量的啊,怎么三菱的就不行了,是不是什么地方要设置一下?





yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2015-12-29 08:52:30
1楼

别的PLC都可以?也只有西门子可以而已,当然,西门子附带的FB或者FC都不会在内部使用全局变量。


IEC61131规范中并不允许在FB或者FC中使用全局变量,而是需要通过FB,FC的输入引脚输入全局变量。

heartiner

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 56回
  • 年度积分:988
  • 历史总积分:2052
  • 注册:2010年7月10日
发表于:2015-12-29 12:00:51
2楼

回复内容:

对:yuanle 别的PLC都可以?也只有西门子可以而已,当然,西门子附带的FB或者FC都不会在内部使用全局变量。IEC61131规范中并不允许在FB或者FC中使用全局变量,而是需要通过FB,FC的输入引脚输入全局变量。     内容的回复:

我在三菱的FB里面使用了全局标签貌似也没有什么问题啊。感觉这个规定好没道理啊,所谓全局变量不就是可以在程序任何地方使用的吗?

另外求解FB和FC的区别,一直没弄清楚。。。

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2015-12-29 14:30:32
3楼

在FB,FC中,理想的状态时通过输入输出来传送数据,如果允许使用全局变量的话,会导致程序中的数据流向的不确定。


所以通常对于IEC61131支持得比较好的厂家,通过输入来传递全局变量。


FB和FC的区别在于:

对于FB,系统会分配独立的存储空间,而FC,系统不分配独立的存储空间,所以在FC中使用变量的原则是先赋值,后使用。


当然,西门子允许在FB,FC中使用全局变量,不过西门子的工程师在其提供的样例中仍然不会在FB/FC中使用全局变量。


在西门子最新软件博图中,西门子正在逐步改变在FB/FC使用全局变量这一陋习。


所以秉着提高程序的可移植性来说,遵守IEC规范还是非常必要的。

heartiner

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 56回
  • 年度积分:988
  • 历史总积分:2052
  • 注册:2010年7月10日
发表于:2015-12-29 15:48:08
4楼

回复内容:

对:yuanle 在FB,FC中,理想的状态时通过输入输出来传送数据,如果允许使用全局变量的话,会导致程序中的数据流向的不确定。所以通常对于IEC61131支持得比较好的厂家,通过输入来传递全局变量。FB和FC的区别在于:对于FB,系统会分配独立的存储空间,而FC,系统不分配独立的存储空间,所以在FC中使用变量的原则是先赋值,后使用。当然,西门子允许在FB,FC中使用全局变量,不过西门子的工程师在其提供的样例中仍然不会在FB/FC中使用全局变量。在西门子最新软件博图中,西门子正在逐步改变在FB/FC使用全局变量这一陋习。所以秉着提高程序的可移植性来说,遵守IEC规范还是非常必要的。     内容的回复:

谢谢指教,感觉这种规定写起程序来太过烦琐。。。

heartiner

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 56回
  • 年度积分:988
  • 历史总积分:2052
  • 注册:2010年7月10日
发表于:2015-12-29 18:41:28
5楼


回复内容:

对: yuanle 在FB,FC中,理想的状态时通过输入输出来传送数据,如... 内容的回复!



想到一个问题,当FB FC中需要用到 定位功能的当前值寄存器 这类变量时,如果用输入传入该值,那使用的值就不是最新的值了。这种情况应该怎么处理呢?


yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2015-12-30 08:50:23
6楼


引用 heartiner 的回复内容: 回复内容:对: yuanle  在FB,FC中,理想的...



这种情况不需要担心,因为即使不使用FB/FC,你仍然使用的不是最新值,除非你在中断中处理,FB/FC的使用只要确保EN端为ON,那么使用与在主程序中处理并无区别。


HMH

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:64
  • 注册:2017年9月04日
发表于:2018-06-15 15:35:31
7楼

我想用相除后的余数作比较怎么写,哪位大神说说

HMH

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:64
  • 注册:2017年9月04日
发表于:2018-06-15 15:38:52
8楼

2.png2.png

是全局标签中的,怎么写



热门招聘
相关主题

官方公众号

智造工程师