n
1 通过PROFINET 实现F-CPU之间的安全通信n
PROFINET的“智能设备(I-Device)”功能,可以将CPU作为一个PN IO设备,进而实现与其它IO控制器之间的数据交换。n
在带有PN接口的F-CPU之间的安全通讯中,同样可以使用这种方式通信。其优势是可以节省PN/PN耦合器,同时软件组态、编程上更加直观、方便。n
对于支持智能设备功能的硬件,请参考如下链接:n
/cs/document/44383954?caller=view&lc=zh-CN
2 控制器与智能设备之间的安全通信
在本例中,展示在TIA Protal V11环境下进行安全相关的IO控制器与智能设备之间通信。示例中所使用的软件和硬件为:n
Step7 Professional V11 Sp2 UP5n
Step7 Safety Advanced V11n
CPU319-3 PN/DP V3.2订货号6ES7 318-3FL01-0AB0n
IM 151-8 F-CPU V3.2 订货号6ES7 151-8FB01-0AB0n
其中,CPU319-F作为IO控制器,IM151-8 F 作为智能设备。n
在博途V11环境下组态IO控制器和智能设备分为两种情况,即在同一项目下组态和在不同项目下组态。他们之间最大的区别是在同一项目下可以不用生成GSD文件,而在不同项目下必须生成GSD文件,下面分别说明两种情况的组态及编程过程。n
2.1在同一个项目下进行组态
2.1.1组态IO控制器
首先在博途V11中对IO控制器进行硬件配置。打开博途V11软件,切换至项目视图,新建一个项目,名称为Safety_TIA_FComm_iDevice。添加新设备,选择CPU319F-3 PN/DP,如图2-1所示。n
图2-1新建项目
添加好CPU之后,在“Properties > General”选项卡的名称中,可以设置控制器的设备名称,这里采用默认的“PLC_1”,如图2-2所示。n
图2-2设置319F的设备名称
在PROFINET interface选项的Ethernet addresses选项卡中,可以设置IP地址。本例中设置为192.168.0.1,如图2-3所示。n
图2-3设置319F的IP地址
在博途V11左侧项目树下,选择Safety Administration选项卡,选择运行组F-runtime group 1,设置其中的主Safety程序功能块、数据块和调用的循环中断组织块,本例中选择主Safety程序功能块FB1,调用主Safety程序FB1的循环中断组织块为OB35,如图2-4所示。
图2-4 故障安全程序n
在Protection选项卡下,设置故障安全程序的密码,如图2-5所示。n
图2-5设置故障安全程序密码n
点击Go to the “Protection“ area of the F-CPU,视图跳转至CPU的保护属性设置界面,设置CPU的故障安全块的读写访问密码,如图2-6所示。n
图2-6 设置读写保护密码n
2.2.2组态智能设备
在项目树窗口下点击添加新设备按钮,添加新的硬件IM 151-8 F-CPU,组态好硬件,设置密码等,组态过程与步骤2.1.1中设置319F CPU的类似,并且添加好其它硬件。n
在设备视图下右键点击IM151-8CPU的PN接口,选择属性,在operating mode选项卡下,激活IO device功能。由于是在同一个项目下的两个CPU,所以可以指定IO 控制器,指定为PLC_1 PROFINET interface_1,如图2-7所示。n
图2-7 激活智能设备
指定好之后,博途会自动更新网络视图,并添加子网PN/IE_1,如图2-8所示。n
图2-8网络视图
由于是在同一个项目中,博途V11会自动为CPU分配不同的IP地址和Device name,用户可以也可以自行修改。n
切换到设备视图下,在I-device communication选项卡中添加一个传输区,传输此时类型为CD,如图2-9所示。点击箭头,可以修改数据传输方向。n
图2-9设置传输区域n
添加成功后,左侧会出现Transfer area_1选项卡,点击打开详细视图,将传输类型改为安全传输类型F-CD,此时起始地址被自动修改,此地址用户也可以自行修改。同时数据长度变为12字节,并且不能被修改。在此详细视图下可以通过选择地址类型为I或者Q来修改数据传输方向。传输区1的数据传输方向为智能设备向控制器发送数据,如图2-10所示。n
图2-10设置安全的传输区域
按照上述步骤再添加一个传输数据区2,修改智能设备的地址类型为“I”,则数据传输方向为控制器向智能设备发送数据,如图2-11所示。n
图2-11组态传输区2
2.1.3 编程测试
设置好后,即可编程。对于IO控制器和智能设备的F-CPU之间的相关通信,必须调用F应用程序块“SENDDP”进行发送,用程序块“RCVDP”接收。使用它们以安全方式一次传送16个BOOL类型数据和2个INT型数据。发送和接收块只能在主Safety中调用(本例中,控制器和智能设备均为默认的FB1),并且接收块放在程序最开始,发送块放在最后。指令在指令库的通信选项卡中选择。如图2-12所示:n
图2-12 安全相关的通讯功能块
在IO控制器319F CPU和智能设备IM151-8中均调用接收块和发送块,程序块与地址关系如图2-13所示。n
图2-13 通讯功能块与地址之间的相互关系
最后,将硬件与程序下载至CPU中,即可完成安全相关的通讯。下载中如果需要输入密码,输入设置的密码即可。本例中IO控制器CPU319将M10.0~M11.7的16个BOOL量和MW12、MW14的两个INT数据发送到智能设备IM151-8F PN/DP的M100.0~M101.7和MW102与MW104中。n
同时智能设备IM151-8F PN/DP将M10.0~M11.7的16个BOOL数据和MW112、MW114的两个INT类型数据发送到CPU319的M0.0~M1.7和MW2、MW4中。n
通信测试结果:n
图2-14 测试结果1
图2-15 测试结果2
2.2不同项目下的IO控制器和智能设备之间的通信
2.2.1组态智能设备
先组态智能设备IM151-8F PN/DP CPU,设置好安全程序相关的参数和密码保护,步骤与在 2.2.2 中描述的过程类似。在IM151-8FCPU的PN口的操作模式中,激活智能设备功能。由于是在不同的项目下,不能指定IO控制器,所以选择指定的控制器为“Not assigned”,即未指定。如图2-16所示。n
图2-16 激活智能设备
在不同的项目下,不能自动生成安全相关的F-CD通讯,所以需要自行分配地址。安全相关的地址分配规则如下:n
智能设备发送到控制器:智能设备需要12个字节的输出数据和6个字节的输入数据。控制器需要12个字节的输入数据和6个字节的输出数据。n
智能设备从主站处接收:智能设备需要12个字节的输入数据和6个字节的输出数据。 控制器需要12个字节的输出数据和6个字节的输入数据。n
注意12个字节的数据地址与其对应的6个字节的关联数据要有相同的起始地址。n
按照此规则配置好智能设备的地址,如图2-17所示。n
图2-17 配置智能设备地址
控制器与智能设备不是在同一个项目下,所以需要生成和安装GSD文件,点击“Export”按钮,在弹出的窗口中设置名称和生成文件的路径,然后在窗口中点击“Export”按钮,生成GSD文件,如图2-18所示。n
图2-18 生成和导出GSD文件
2.2.2组态IO控制器
接下来,组态IO控制器。n
在博途下新建项目,添加硬件319F CPU并设置好安全参数,由于是在不同的项目下组态,博途不会检测和设置设备名称和IP地址,所以注意此时的319CPU的设备名称和IP地址,不能与智能设备的相同,本例中将319CPU的设备名称修改为PLC_2,IP地址修改为192.168.0.2,如图2-19和图2-20所示:n
图2-19 修改设备名称
图2-20 修改IP地址
通过菜单命令Options -> Install general station desription file (GSD),弹出的对话框中找到生成的GSD文件的路径,安装刚才生成的GSD文件。n
图2-21 安装GSD文件
安装好之后,重新启动博途V11软件,在硬件目录 Other field devices 目录下,找到安装的设备,拖入到网络视图中并且给它分配控制器。如图2-22所示:n
图2-22 网络视图下组态智能设备
此时控制器会分配与智能设备通信地址,默认的地址可能不符合地址设定规则,需要手动修改地址,符合步骤2.2.1中所述的地址要求。本例中,将图中的红色部分的起始地址从262修改为268,即可满足安全相关的通信地址要求。n
图2-23 修改控制器的地址
2.2.3编程测试
程序块的调用与在步骤2.1.3中类似,将项目下载至CPU中,测试结果如下:
图2-24 测试结果1
图2-25 测试结果2
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc328530.html