S7-300集成PN口作为Profinet智能设备使用(不同项目STEP7)

I-DEVICE(智能设备)是什么

具体请参看文档:I-DEVICE(智能设备)是什么

PROFINET智能设备功能组态

使用一个例子来描述PROFINET智能设备功能,参考下图1 PROFINET系统网络。

图1 Profinet系统网络

IO控制器 CPU319-3PN/DP v3.2连接SCALANCE X204IRT v4.4交换机和一个ET200S IM151-3PN (6ES7 151-3BA23-0AB0) v7.0以及IO设备 CPU319F-3PN/DP v3.2构成一个PROFINET IO系统1。IO设备CPU319F-3PN/DP v3.2同时作为PROFINET IO系统2的IO控制器连接一台IO设备ET200s IM151-3PN-1。CPU319F-3PN/DP就是这个系统中的智能设备。

Profinet IO系统2组态

首先在Step7中对PROFINET IO系统2的智能设备进行硬件组态,如下图2 PROFINET IO系统2组态。IO控制器和ET200s的设备名分别为PN-IO-1,IM151-3PN-1,其IP地址分别为192.168.0.11和192.168.0.12。

注意:设备名和IP地址一定要与PN IO系统1的设置不同。

图2 PROFINET IO系统2组态

使用鼠标双击该站CPU319F-3PN/DP的硬件组态中的X3槽PN-IO-1,弹出其属性对话框,选择“I-Device”标签页,激活“I-device mode”选项,在这里取消“Parameter assignment for the PN interface and its ports on the higher-level IO-controller”和“Operate as higher-level shared device”两个选项。其中这两个参数前者表示PN接口和端口的属性参数由上层IO控制器分配;后者表示该智能设备可以作为共享设备。如下图3 PN-IO-1属性对话框。

图3 PN-IO-1属性对话框

对于传输区域(Transfer area),点击“New”按钮,创建IO控制器和智能设备之间数据通信的传输区域。传输区域有2种类型,一种是应用(Application)传输区域,即控制器访问智能设备的用户程序接口。另一种是I/O传输区域,即控制器可以直接访问智能设备的IO,而智能设备不能处理该IO。由于CPU319F-3PN/DP不支持I/O传输区域,这里使用应用传输区域,分别创建输入地址区和输出地址区为2个字节。如下图4 创建应用传输区域。

图4 创建应用传输区域

保存和编译该站,然后在HW Config界面中选择菜单“Options”à“Create GSD file for I-device”,为PROFINET IO系统2的IO控制器2创建智能设备的GSD文件。如下图5 创建GSD文件。

图5 创建GSD文件

这样弹出创建智能设备GSD文件对话框,如下图6 创建智能设备GSD对话框。

图6 创建智能设备GSD对话框

点击“Create”按钮,系统自动创建一个GSD文件并显示在“GSD file:”后,如下图7 创建GSD文件。

图7 创建GSD文件

然后点击“Install”按钮,安装刚生成的GSD文件到Step7硬件组态列表中。GSD文件的导入,请参看文档:什么是GSD文件/如何安装

如下图8 安装GSD文件。

图8 安装GSD文件

打开OB1,编写对应地址的STL程序,这里CPU319F-3PNDP的过程映像区为1024。如下图9 编程举例:

图9编程举例

最后保存编译项目并给IO设备分配设备名并下载组态到IO控制器中实现PROFINET IO通讯。

PROFINET IO系统1组态

接着在Step7中对PROFINET IO系统1进行硬件组态,如下图10 PROFINET IO系统1组态。对于智能设备CPU319F-3PN/DP与标准IO一样从硬件列表中拖入。前面设置的2个字节的输入和输出则在该系统中分别对应输出和输入。

图10 PROFINET IO系统1组态

在图4 创建应用传输区域的2个字节的输入和输出则在该PN IO系统1中分别对应输出和输入。其对应关系如下图11 地址对应关系:

图11 地址对应关系

打开OB1,编写对应地址的STL程序,这里CPU319-3PNDP的过程映像区为256。如下图12 编程举例:

 

图13 编程举例

最后保存编译项目并给IO设备分配设备名并下载组态到IO控制器中实现PROFINET IO通讯。

注意:应当保持组态的传输地址区域尽可能的小。因为智能设备的总带宽=传输地址区域带宽+自身IO系统带宽,如果传输区域带宽过大,会影响自身IO系统的实时通信。