程序中ANY的第一个字表示数据类型为字节,第2个字表示字节数为12,第3个字表示不是DB,第 4个字表示I区。因为起始地址(iDriveBaseINAddress)是字节地址(图中用16个b表示),需要将它左移3位,相当于乘以8(一个字节8位),作为间接寻址的指针的基础,再用OD指令叠加上指针最高字节的地址区信息16#81。
ANY用的是I区,不是PI区。 假设I区的起始地址(iDriveBaseINAddress)为X,SFC20的输入参数(ANY)的实际地址为P#IX.0 BYTE 12。 当然也可以在调用SFC20时直接写P#IX.0 BYTE 12,不过老外这种模板的优点是通用,灵活。但是要看懂程序的门槛比较高。
|