您现在所在的是:

施耐德电气论坛

回帖:3个,阅读:1150 [上一页] [1] [下一页]
1850
xiatianyun
文章数:277
年度积分:59
历史总积分:1850
品牌积分(施耐德):68
注册时间:2002/6/5
发站内信
发表于:2020/3/1 18:33:53
#0楼
我刚学习SoMachine,一个功能块或POU中声明变量可以选择作用域声明为VAR、VAR_STAT、VAR_TEMP,对于VAR_TEMP在西门子中也有,就是临时变量,功能块执行完毕就释放了,这个好理解。不过剩下的VAR和VAR_STAT就不知道如何区分了。
VAR_STAT从字面意思来理解自然是静态变量了,在西门子中也存在,功能块调用结束后不会释放,是保存在功能块实例空间中的变量,或者说它是在堆中分配的。但是怎么又有个单独的VAR呢?这个怎么理解?
8132
0aguang0
文章数:1636
年度积分:255
历史总积分:8132
品牌积分(施耐德):2046
注册时间:2010/10/21
发站内信
发表于:2020/3/1 21:29:22
#1楼
附件 1.jpg

你在somachine里按F1里面应该有变量类型的详细介绍
我这个是<somachine编程指南>节27.2  可能F1帮助里的编程指南也是这个章节
或者去百度  施耐德官网找一下这个文件..看一下

http://bbs.gkong.com/archive.aspx?id=475508
这个帖子里魏工也有过回复的

我就觉得这个问题我最近看见过
[此贴子已经被作者于2020/3/1 21:34:08编辑过]
水平一般,能力有限.如有错误之处.欢迎并感谢指出.我一定认真学习积极改正.请勿DISS.
2440
51477工控迷
文章数:682
年度积分:66
历史总积分:2440
品牌积分(施耐德):293
注册时间:2017/3/31
发站内信
发表于:2020/3/1 21:43:23
#2楼
和西门子有点不一样了,,SOMACHINE用的是新规则,就像西门子的博图
1850
xiatianyun
文章数:277
年度积分:59
历史总积分:1850
品牌积分(施耐德):68
注册时间:2002/6/5
发站内信
发表于:2020/3/1 23:27:10
#3楼
虽说官方的帮助文档太过于死板,不过我还是按下了F1。
仔细阅读有关VAR/VAR_STAT相关文字,发现原来它们非常不同,这是西门子TIA没有的。
简单来说就是西门子的STAT静态变量相当于SoMachine的VAR,而SoMachine的VAR_STAT在西门子中没有。
VAR_STAT从帮助来看应该和高级通用语言一样,比如C++,实例的第一个进行初始化,其后的实例不再分配内存空间,和第一个实例分配的静态变量共享同一个变量。但它和全局变量不同,它只能通过实例访问。
VAR_STAT是给实例间通信用的,西门子中是用全局变量或全局数据块来做。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003