本例使用是为了在CFC中可以直接使用PUT/GET通信,而不需要单独将PUT/GET通信内容写在块中然后进行调用,在S7通信比较多的时候优势尤为明显,使用这个功能块还可以直接将通信过来的数据写入到背景数据快中,然后通过其他附加功能块将数据显示出来,不需要单独建立一个数据快。主要适用于经典STEP7/PCS7/TIA STEP7中,可用PLC主要有300/400/1500 /1200 G2 ,老版本1200由于不支持any数据类型所以无法使用此功能块。下面介绍该功能块:
输入和输出引脚部分:
anan
由于该功能块最开始是用于PCS7中所以输入会有CPU0和CPU1,这个是用于冗余CPU中才需要使用,如果只是单CPU则只需要设置好CPU0_ID的值就可以了,其他的可以不用管。
下面是静态变量和零时变量:

此功能块主要内容就是解析ANY数据格式,然后写入我们所需要的内容。
下是设置any数据:

any数据类型的数据结构不是本次重点,这里只展示帮助文档中的any数据类型,不做详细解析:

下面是S7通信指令的执行:

这里只展示GET的指令,put指令程序与这个一样,区别就是将PUT换成GET。如果想在1500中使用则需要将零时变量中的TEMP_Remote_ANY变量数据类型由ANY改为Remote(不知道为什么西门子会这样做,实际上Remote数据类型就是any,但就是无法在1500中的GET指令里无法使用any)。
这是实际在CFC中使用的效果:

以下是源程序:
源程序.rar