当前位置: 主页 > PLC控制

#goodid := #index + 1;怎么理解 #index的含义,是定义的变量,还是内部的变量

完整程序


#goodid:=#index+1;
IF#goodid>100THEN
#goodid:=1;
END_IF;
#Temp1:=#goodid*28;//获取ID地址
POKE(area:=16#84,
dbNumber:=1,
byteOffset:=#Temp1,
value:=#goodid);

问题补充:
你看看这个图,

图片说明:

687f297987fb4fbdea816975531326d7#goodid := #index + 1;怎么理解   #index的含义,是定义的变量,还是内部的变量

最佳答案

有可能是内部变量,也有可能是外部给定的,你看看在在程序的形参定义的位置是在哪里
如果是在TEMP区域,那就是内部临时变量,如果是在IN区域,那就是输入的形参,在调用该程序的时候需要输入数值或者地址。
IN———变量是外部输入的,只能被本程序块读,不能被本程序块写;
OUT——-是本程序块输出的,他可以被本程序块读写,其他程序通过引脚只能读值不能写;
IN_OUT—输入输出变量本程序块和其他程序都可以读写这个引脚的值。
TEMP—–临时变量,顾名思义是暂时存储数据的变量。这些临时的数据存储在CPU工作存储区的局部数据堆栈(L堆栈)中。
STAT——-在PLC运行期间始终被存储。S7将静态变量定义在背景数据块(仅对FB而言,FC和OB无静态变量),当被调用块运行时,能读出或修改静态变量;被调用块结束后,静态变量保留在数据块中。
关于形参可以参考:
FB块和FC块
htTP://www.ad.siemens.com.cn/productpoRTal/Prods/published/Prog/Prog_2.3/Prog_2.3.html

补充:
那index就是db1.dbw0了
goodid也是db1.dbw0

根据
程序的含义有点看不明白了,需要了解一下工艺
好像是根据index的值,先自加一,改写index*28的值

图片说明:

#goodid := #index + 1;怎么理解   #index的含义,是定义的变量,还是内部的变量#goodid := #index + 1;怎么理解   #index的含义,是定义的变量,还是内部的变量

提问者对于答案的评价:
智能分拣系统的程序,具体的工艺不是很清楚

  • 关注微信

猜你喜欢

微信公众号