access to misaligned address.access may load to runtime exceptions.please adapt the memory location
①在任务栏的project中找到对clean all一下,然后rebuild。(注意clean all之后,看清提示,应该选No)
②检查,分配的地址类型和变量类型是不是没有对应上
另一种可能是:控制器的TwinCAT2 版本非常老(比如1302版),而编程电脑的TwinCAT2版本非常新(2304)。建议解决方法是把编程电脑的TwinCAT2版本卸载,安装与控制器相同或相近版本的TwinCAT2。
最后还有可能是使用了CX8000和CX9000系列的控制器, 用CX(RAM),可能是结构体导致的,用到的结构体都要重新改一下,RAM和PC-CX的字节对齐不一致导致的,所以编译或下载时会报错,必须重新4字节对齐分配地址。
例如:
Float00 AT%MW420:WORD;
Float01 AT%MW422:DWORD;
Float02 AT%MW426:WORD;
Float03 AT%MW428:DWORD;
Float04 AT%MW432:WORD;
Float05 AT%MW434:DWORD;
Float01、Float03、Float05 的数据类型为DWORD,应该要满足4字节对齐。而%MW422 和%MW434 的地址值不能被4整除。
应该重新分配地址如下
Float00 AT%MW420:WORD;
Float01 AT%MW424:DWORD;
Float02 AT%MW428:WORD;
Float03 AT%MW432:DWORD;
Float04 AT%MW436:WORD;
Float05 AT%MW440:DWORD;