line;color:#333333;background-color:#FFFFFF;">
问题:
如何给通信模块SFB14 (“GET”)和SFB15 (“PUT”)编程,从而实现S7-400上的数据通信?
line;color:#333333;background-color:#FFFFFF;">
解答:
为了在两个S7-400站之间通过在NetPro中组态的 一个S7连接进行数据通信,必 须在S7程序中调用通信函数。SFB14 (“GET”)用于从远程CPU读取数据,SFB15 (“PUT”)用于向远程CPU写入数据。< /p>
line;color:#333333;background-color:#FFFFFF;"> 通信模块FB14 (“GET”)和 FB15 (“PUT”)的特点
line;color:#333333;background-color:#FFFFFF;"> 样例程序包含一个S7连接,通过该连接,使用SFB14从远程CPU读取数据,使用SFB15向远程CPU写入数据。
line;color:#333333;background-color:#FFFFFF;"> 样例程序的说明
line;color:#333333;background-color:#FFFFFF;"> 项目包含两个S7-500站,它们具有CPU 416-2DP和CP 443-1,用于在工业以太网上通信。通 信基础是两站之间建立的S7连接。如果通过“右键单击 > Object Properties”打开NetPro中的S7连接属性,则 可以看到通信功能块的块参数“ID”。当调用SFB14或SFB15时必须遵守相应的规定,以通过S7连接实现数据通信。
line;color:#333333;background-color:#FFFFFF;">
图1: S7连接的属性
line;color:#333333;background-color:#FFFFFF;"> STEP 7程序包含块OB100、OB1、FB100、DB100、DB200、DB201、SFB14和SFB15。
line;color:#333333;background-color:#FFFFFF;">
图2: OB100
line;color:#333333;background-color:#FFFFFF;">
图3: OB1
line;color:#333333;background-color:#FFFFFF;">
图4: FB100: 调用SFB14
line;color:#333333;background-color:#FFFFFF;">如果块运行出现错误,保存块的状态字,用于错误分析。
line;color:#333333;background-color:#FFFFFF;">
图5: FB100: 保存状态字
line;color:#333333;background-color:#FFFFFF;">当时钟标志M10.6出现一个上升沿并且没有其它作业正在运行时,通过输入参数“REQ”激活FB15。阻止这个函数调用是非常重要的,因 为该函数的行为是异步的并且持续好几个循环。持续激活该函数块而不等待当前作业结束,将导致通信过载。必须使用在NetPro中 S7连接的属性对话框中的输入参数“ID”(见图1)。对于参数“ADDR_1”必须远程CPU中用于数值写入的数据区域。对于参数“ SD_1”, 必须待发送数据的地址。需要输出参数“DONE”、“ERROR”和“STATUS”用于评估任务,并 且仅仅在同一个循环中有效。
line;color:#333333;background-color:#FFFFFF;">
图6: FB100: 调用SFB15
line;color:#333333;background-color:#FFFFFF;">如果块运行出现错误,保存块的状态字,用于错误分析。
line;color:#333333;background-color:#FFFFFF;">
图7: FB100: 保存状态字
line;color:#333333;background-color:#FFFFFF;">
要下载的STEP 7项目:
STEP 7项目包含一个样例程序,用于调用SFB14和SFB15,具有状态评估。是 通过STEP 7 V5.2创建的。
line;color:#333333;background-color:#FFFFFF;"> Sample_S7-400_PUT-GET-01.exe ( 389 KB )
line;color:#333333;background-color:#FFFFFF;"> 把文件“Sample_S7-400_PUT-GET-01.exe”复制到单独的文件夹,双击打开文件。STEP 7项目解包,带 有全部相关子文件夹。现在可以使用SIMATIC Manager来打开和处理该项目。