FC5(AG——SEND)块既可以用于PROFIBUS FDL(现场总线数据链路层通信协议)(发送数据到PROFIBUS,用于在一个已经组态的FDL连接上进行数据传输),也可以将数据传送到以太网CP上,用于在一个已经组态的ISO传输连接上进行传输。所选择的数据区可以是一个位存储区或一个数据区。
同样,FC6(AG——RECV)既可以接收从在以及组态的PROFIBUS FDL也可以以太网CP在已组态的连接上传输的数据。为数据接收指定的数据区可以是一个位存储区或一个数据块区。
下面以S7-300与S7-400以以太网为例来说明如何编写发送FC5指令和接收指令。要想实现S7-300通过FC5和FC6与S7-400进行数据传输,首先必须进行硬件组态,如果PLC没有自带PN接口,需要以太网模块CP343-1和CP443-1,并通过带水晶接头的8芯双绞线(网络线)连接起来;在组态第一站如SIMATIC300(1)时,插入以太网模块CP343-1时,打开其“属性”界面,设置网络参数(IP地址和子网掩码);同样方法建立第二个站SIMATIC300(2),选择同样网络Ethernet(1),但IP地址不同;组态以太网连接,在一个站中添加一个TCP连接,并记下组态时连接号ID(如1)和模块硬件组态地址LADDR(如为W#16#0100),用于FC5和FC6的编程用;如果需要双方进行数据传输,那么双方都需要编写FC5和FC6指令,在调用FC5和FC6的方法如下:如果在OB1(主循环组织块)中调用FC5(把SIMATIC(1)中信息发送到SIAMTIC(2)中)和FC6(将SIMATIC(2)中相应信息接收到SIMATIC(1)中)。打开OB1块,在LAD/STL/FBD编辑器中,在左边依次展开New Network(新网络)/Libraries(库)/SIMATC_ET_P,双击FC5或FC6,或者直接把它拖到右边块中,然后填写相应参数:在FC5中,参数ID为组态时连接号(这里为1),LADDR为模块硬件组态地址(这里为W#16#100),SEND是发送的数据区(如位存储器MW30),LEN为发送数据长度,其他参数EN(使能),ACT(发送请求),ERROR(错误代码),STATUS(返回数值),DONE(发送是否完成);同样接收功能FC6中主要参数如下:RECV(接收数据区),NDR(接收数据确认),LEN(接收数据长度),其他参数ID、LADDR、ERROR、STATUS与FC5一致。