大家好!
最近有一个项目需要把老的S7-400程序移植到S7-300下面使用,老的S7-400型号为CPU412 属于低配的S7-400CPU,内存少的可怜,现在工作内存基本上已经使用了98%,有宕机的风险,经常出现一些奇奇怪怪的问题,计划更换掉。经过确认该CPU没有使用什么特殊的指令,基本上都是300CPU兼容的编程指令,唯一有一个地方有一些差异化,就是老的400CPU 编程人员使用了大量的M区地址,例如MD6000,MD5000等等,经过查询相关的手册S7-400的这一款CPU支持的最大M区是8192 个BYTE而我现在使用的这一款CPU317-2只支持到4096个BYTE 的M地址区。
我这里有一个疑问,例如我的S7-300这边的程序只使用了一个M区地址例如MD5000 (32位),是不是也存在问题?因为CPU支持的是4096个BYTE,地址范围必须控制在4096的范围以内?我的理解是CPU支持4096个BYTE是不是指的是0-4096的范围才可以使用?如果我使用的地址区域是4096-8192 ,长度同样是4096 ,这样应该是不允许的?
还是说不管地址范围如何,只要在程序里面使用了M区并且不大于4096个BYTE就可以?例如MW0使用了,然后MW5000也使用了,在程序里面只使用了4个BYTE的M区,这样是不是在4096的长度范围以内?
希望大家探讨探讨!!谢谢!
