子程序被中断后,断点返回时,子程序内的临时变量是否被恢复?

对于子程序,其临时变量虽然知道要按先赋值后使用的原则,但对于有中断打断子程序时,若从断点返回继续执行子程序时,其临时变量是否被恢复呢?这一点一直没有明析,因此一直不敢大胆使用临时变量,很多都用全局变量来做,但感觉这样子有点浪费全局变量的空间。

问题补充:
大家所给答案还是分歧为两类
第一种子程序中的局部变量只要依先赋值后使用的原则,中断返回不受影响.
第二种则认为,因局部变量所用的空间是公用空间,中断执行中可能改变了局部变量里面的数据,而中断返并没有恢复这个局部变量的数据
查阅计算机的相关书籍,有提到中断执行后的断点返回问题,使用了堆栈技术保持数据,返回时弹出数据恢复,但这些保护
的数据只提到有寄存器,并没有提到会恢复这种局部变量的数据。

最佳答案

此回答已完善

先赋值后使用是不会有任何问题的。。。。
补充:首先你知道smart局部变量是保持一个扫描周期的是吧,,,中断程序是 发生中断后跳转到中断程序,,执行完中断程序再返回到 跳转的地方,,那这个周期结束了吗???答案是没有的,,那还会出现你所谓的疑问吗????

提问者对于答案的评价:
请教过相关教授,先赋值后使用临时变量没有问题。PLC子程序被中断程序中断,中断程序不会改写子程序中的临时变量。中断程序用临时变量与子程序的临时变量是分开的。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc279309.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日 下午5:40
下一篇 2020年10月30日 下午5:40

相关推荐

发表回复

登录后才能评论