关于codesys循环结束,循环内累加值仍不停止累加问题
遇到的问题:在codesys写ST代码的时候,运行会出错,单步运行,知道最有一次循环数据可以正常存入数组,但在运行一步,就会出错。
解决方法:在循环外将累加值清零,即可解决
原因:
1. 主要原因是因为程序执行到END_FOR语句时,这时候PROGRAM PLC_PRG程序不会退出,会继续从头开始执行。
2. 继续执行FOR循环语言,而此时,由于idx的值未被清零,会在之前的循环结果上继续累加。这样就造成了这段代码中val的值出现一直累加的现象。
这和PLC的运行机制有关: 循环扫描运行,高级语言运行方式是: 顺序运行
疑问:但是idx继续累加是跳变到五百多,然后开始不停累加,不知道为啥!!