以下STL语言编程在300PLC运行正常转换到1500PLC运行出错,下面有错误截图,请帮忙分析原因,改进方法。
操作哪个数据块?
FC645里 在引用DBX[] 之前没看到 打开数据块指令!
难道是在调用FC645前 打开的?
原因是s7-300/400和S7-1500系统底层架构不同造成的。
300,400CPU有DB寄存器,地址寄存器,而1500的CPU内部实际是没有DB寄存器和地址寄存器的,其DB寄存器和地址寄存器是虚拟出来的,实际是为了照顾300/400到1500程序移植的。
但实际使用差别确比较大,需要特别小心!
虚拟的寄存器,其中存放的数值,会在调用结束后立即释放。
而真实的寄存器,调用结束后,数值是存在真实的寄存器中的。