登录
首页 PLC论坛 施耐德电气PLC
回帖 发帖
正文

主题:SoMachine中的变量属性怎么区分?

点击:1195 回复:3

我刚学习SoMachine,一个功能块或POU中声明变量可以选择作用域声明为VAR、VAR_STAT、VAR_TEMP,对于VAR_TEMP在西门子中也有,就是临时变量,功能块执行完毕就释放了,这个好理解。不过剩下的VAR和VAR_STAT就不知道如何区分了。
VAR_STAT从字面意思来理解自然是静态变量了,在西门子中也存在,功能块调用结束后不会释放,是保存在功能块实例空间中的变量,或者说它是在堆中分配的。但是怎么又有个单独的VAR呢?这个怎么理解?
20-03-01 18:33
附件 1.jpg
你在somachine里按F1里面应该有变量类型的详细介绍
我这个是节27.2  可能F1帮助里的编程指南也是这个章节
或者去百度  施耐德官网找一下这个文件..看一下
http://m.gkong.com/bbs/475508.ashx
这个帖子里魏工也有过回复的
我就觉得这个问题我最近看见过
最后修改:2020/3/1 21:34:08
20-03-01 21:29
和西门子有点不一样了,,SOMACHINE用的是新规则,就像西门子的博图
20-03-01 21:43
虽说官方的帮助文档太过于死板,不过我还是按下了F1。
仔细阅读有关VAR/VAR_STAT相关文字,发现原来它们非常不同,这是西门子TIA没有的。
简单来说就是西门子的STAT静态变量相当于SoMachine的VAR,而SoMachine的VAR_STAT在西门子中没有。
VAR_STAT从帮助来看应该和高级通用语言一样,比如C++,实例的第一个进行初始化,其后的实例不再分配内存空间,和第一个实例分配的静态变量共享同一个变量。但它和全局变量不同,它只能通过实例访问。
VAR_STAT是给实例间通信用的,西门子中是用全局变量或全局数据块来做。
20-03-01 23:27

工控新闻

更多新闻资讯