西门子PLC中局部变量类型的地址空间为0~63.7,这个是在一个程序中的地址空间大小,还是所有子程序的

西门子PLC中局部变量类型的地址空间为0~63.7,这个是在一个程序中的地址空间大小,还是所有子程序的??... 西门子PLC中局部变量类型的地址空间为0~63.7,这个是在一个程序中的地址空间大小,还是所有子程序的?? 展开
 我来答
任务操作票
2020-10-27 · TA获得超过108个赞
知道小有建树答主
回答量:121
采纳率:92%
帮助的人:36.7万
展开全部

200plc手册中讲到:“为11个实体中的每一个保留局部存储器:当从主程序开始时,为1个主程序、8个子程序嵌套级别;当从中断程序开始时,为1个中断和1个子程序嵌套级别。”

所谓实体就是子程序或中断程序的嵌套级别,同一嵌套级别的程序的L区是公用的,不同级别的L区则相互独立,可以查看下图帮助理解。

由此可见,64个字节的空间不是所有的子程序共用的,当有子程序多重嵌套调用时64Byte的临时存储空间也是远远不够。


更多追问追答
追问
哦哦,大神谢谢你的指点,我明白了就是所谓同一级嵌套级别的L区都是公用的……就是所有的同级中断的局部变量都有64B的存储空间,也就是所主程序调用有8级嵌套,那么主程序的局部变量最大就是8*64B的存储空间,那可否再问下同级的子程序的局部变量又是如何分配地址的?
追答

例如子程序SBR1和SBR2都直接在主程序里调用,它们同属于嵌套层1:

调用SBR1分配给它1的64B空间,地址是LB0-LB59,调用结束空间归还;

调用SBR2时同样分配给64B空间,地址也是LB0-LB59,因为此时SBR1已经用过一次了。

需要注意的是,由于SBR2使用的是二手的局部变量,里面可能会有SBR1残留的数据,所以局部变量要遵循“先赋值后使用”的原则。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式