关于这个,技术支持的帖子里说的很清楚了
http://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=4&a_id=758363不同系列的PLC可能因允许堆栈空间的不同,有的调用FC会自动保存和恢复DB寄存器和地址寄存器,有的又不能,所以推荐自己进行保存和恢复。
指针间接寻址中经常用到两个地址寄存器和DB寄存器,所以影响到地址寄存器和DB寄存器的情况都要注意了
17楼划痕大侠提到了完整引用DB块数据会改变DB寄存器的值,实际测试发现CALL调用FB也会改变DB寄存器的值,在FC中参数使用复杂数据类型时,实际是以指针的形式来处理的,复杂数据类型都是在DB块里定义的,在FC里直接引用复杂数据类型变量时,DB寄存器和地址寄存器AR1将会用于访问复杂数据类型变量,在FB里IN_OUT类型使用了复杂数据类型也是一样的情况。