间接访问就是用指定存储器的地址或索引或ID来读写存储器的内容,这里是使用索引的方式,因为输入的数据不是存储器的实际地址,西门子的存储器地址比较复杂,按类区别,一般得不到存储器的地址,但存储器的索引也就是存储器的号则经常使用,一般情况下在S7-300、400中需要用STL指令写,梯形图是不支持的,但STL不容易学,也容易出错,所以用SCL写了这个库,然后在梯形图中使用,方便了程序的编写。
其中S7-300_1中是编译过的库,S7-300_4中的是SCL源代码,由于高级语言的结构性太强,所以编译后的代码肯定没STL直接写的那么高效,但高级语言出错机会小,另外就是编译后的库不太好监控,因为编译后变成了STL格式。
注意:字MW0的索引是0,字MW1的索引是1,虽然一般不会这样用,因为字的边界或起点一般定在偶数,所以参数里的索引事实上指字的起点地址,对于双字也是一样的;对于Q、DB、I区的字和双字也是这样的;所以若是循环使用连续的字或双字时,要注意字的索引和双字的索引的增量分别是2和4,如果增量是1的话,就会导致前后的操作发生数据重叠。
[ 此帖被wingwf2000在2019-07-26 00:19重新编辑 ]