PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
1 基本信息 1.1 PROFINET 网络中SIMOTION 和 SIMATIC PLC间的通讯
SIMOTION 固件版本 4.1以前,PROFINET 网络中SIMOTION 和 SIMATIC之间的通讯只能是通过TCP/UDP,或者是增加硬件(PN/PN coupler, SIMATIC-CP)来实现。从SIMOTION Firmware 4.1.1以后SIMOTION可以配置为PROFINET IO系统的智能设备(iDevice)。
与在PROFIBUS 网络下SIMOTION 可以作为SIMATIC PLC的智能从站(I-Slave)类似,PROFINET网络下SIMOTION 可以作为SIMATIC PLC的智能设备(iDevice),也就是说SIMOTION 和SIMATIC 的控制器之间通过 IO 区进行通讯。相比TCP/UDP通讯,iDevice方式可以在不增加额外硬件设备的情况下通过简单的配置实现数据的通讯,并且是一种实时的通讯方式。 1.2 SIMOTION 支持的RT Class
PROFINET网络下的实时通讯有两种RT类别: RT 和 IRT。IRT分为IRT High flexibility(以前称为 IRTflex ) 和IRT High Performance(以前称为IRTtop) ,这两种IRT通讯方式是不兼容的。
1) SIMATIC PLC目前为止只支持IRT High flexibility。
2) SIMOTION 在Firmware V4.1.2 之前作IRT通讯时只支持IRT High Performance。
3) SIMOTION 从Firmware V4.1.2 开始支持IRT High flexibility 和IRT High Performance(创建设备时选择PN v2.2)。
因此,如果SIMOTION 配置为iDevice与PLC作IRT通讯时,SIMOTION的版本必须为V4.1.2 以上。 1.3 iDevice
PROFINET 下的 iDevice 与 PROFIBUS 下的I-SLAVE功能类似,SIMOTION 控制器可以作为IO device 与 IO controller 通讯。
iDevice的特点:
1)在 PROFIBUS 中一个 DP 接口只能配置为主站或从站,而在 PROFINET 下SIMOTION CPU 接口可以同时配置为 IO controller 和 IO device。在上一级的系统中iDevice 是 IO Device,同时 iDevice 又可以作为 IO controller 提供自己的IO系统。
2)如果iDevice的SIMOTION与PLC通讯 配置成IRT方式,那么SIMOTION作为IO controller时只能配置成RT。换言之,如果一个SIMOTION作为上一级控制器的 iDevice且配置成IRT,那么这个 iDevice 自身的IO系统只能配置成RT方式(图1)。
3)iDevice的send clock 与上一级的IO系统的同步域的send clock相同。
4)iDevice的接口配置数据、同步和IRT配置数据从上一级的IO controller得到。
也可以用iDevice实现两个SIMOTION控制器间的通讯。然而,通常PROFINET网络下SIMOTION控制器间通讯时还有一种更有效的方式,即“SIMOTION控制器间的直接数据交换”。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
图1 2 系统概述 2.1 软件要求
1)iDevice 与 PLC 作RT通讯
Step7 ≥ V5.4 SP2
Scout ≥ V4.1 SP1 HF 6
SIMATIC CPU 31x PN Firmware ≥ V2.6 , CPU 41x PN ≥ V5.1.1
2)iDevice 与 PLC 作IRT通讯
Step7 ≥ V5.4 SP4
Scout ≥ V4.1 SP2
SIMATIC CPU 31x PN Firmware ≥ V2.7 , CPU 41x PN ≥ V5.2 2.2 实验硬件
1 x SIMOTION D435 (版本必须为 6AU1435-0AA00-0AA1)
1 x CBE30 PN 选件板(6FC5312-0FA00-0AA0)
1 x 24 V power supply
1 x SIMATIC CPU 319-3 PN/DP V2.7
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
图2 2.3 设备名和IP地址分配 Device | Communication name | IP address | D435 (CBE30) | D435 | 192.168.0.1 | CPU 319-3 PN/DP | CPU319 | 192.168.0.2 | PG | | 192.168.0.3 |
2.4 基本配置过程
1)硬件配置时,一般iDevice和IO controller应当包含于不同的项目中,也可以在同一个项目中配置,但要注意网络和IP地址的设置。
2)配置完iDevice的项目,从硬件组态中把GSD文件导出。
3)在IO controller 的项目中把生成的GSD文件导入,然后iDevice就可以在新的项目中作为IO device 进行配置了。
配置时要注意:
1)在生成的GSD文件和iDevice的项目之间不会自动进行匹配,因此在生成GSD文件后改变iDevice的项目会造成配置的不一致。
2)当SIMOTION作为IO controller 时,设备名不能包含“-”,当在IO系统中插入iDevice时自动被“x”替代,此时要对应地改变实际的iDevice的设备名。 2.5 数据一致性
在很多应用中要求交换数据时要保持数据的一致性。也就是说要求把某一时刻的相邻数据传送到通讯接口,这样数据接收端接收到的数据是一致的。否则可能发生一组数据的一部分已被应用程序更新,而另一部分没有被更新。这样就会造成数据的不一致。为了保证数据发送接收一致性,需要调用适当的系统函数/服务。 SIMATIC
用系统函数 SFC 14 和SFC 15保证数据读写的一致性。 SIMOTION
SIMOTION侧,RT数据是在一个总线通讯周期内刷新。 为了保证数据的一致性,需要把IO数据指定到相应的过程映像区,系统只在更新过程映像区时更新数据。SIMOTION中有4个过程映像区:Servosynchronous,IPOsynchronous,IPOsynchronous_2 和 Background。例如:如果把IO变量定义到Background过程映像区中,那么这些变量只在Background程序执行前读入,Background程序完成后写入。因此,为了保证数据的一致性,要把IO数据设置到相应的处理他的循环周期的过程映像区,图3。
注意:用过程映像区不会降低通讯线路的负载。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
图3 2.6 通讯数据的限制
每个方向最多可以传送1400个字节。每个数据块最大为254个字节。 3 配置步骤 3.1 iDevice项目的配置
1) 建立一个新的SIMOTION D435的项目。因为此项目中PG连接到了CBE30,因此接口选择“No connection”。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
2 ) 打开硬件组态,在硬件目录中选择CBE30将它插入到SIMOTION的槽中。在CBE30的属性窗口中新建一个网络,配置PROFINET接口的IP地址。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
3)双击CEB30 打开属性窗口,在General 标签下输入设备名。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
4)选择iDevice标签。勾选“device mode”。如果iDevice在上一级系统中要作IRT通讯则要选择“Parameterization of the PN interface and of its ports on higher-level IO controller”选项(这样就可以在IO controller 项目中建立与iDevice的IRT通讯,生成GSD文件可以自动创立端口,配置数据记录在启动时被传送到iDevice)。如果不选择此选项,只可以在上一级通讯中作RT通讯。如果要用等时同步的功能(IRT high performance),要选择”Operate IDevice/application in isochronous r” 选项。这样在IO controller 项目中iDevice的属性窗口中会出现 Application 标签。(注:如果用IRT high flexibility 不能勾选此选项)
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
点击New建立子槽(IO地址区),设置输入输出类型,逻辑地址和数据长度。注意数据长度的限制。这里建立了一个字节的输入和一个字节的输出。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
设置完毕,点击“OK”,编译保存。 5) 选择 Options > Create GSD file for iDevice,打开配置窗口。输入要生成的iDevice的名字。选择“Create”。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
6) 选择“install”安装GSD文件,在硬件目录下PROFINET IO >Preconfigured Stations 路径下可以看到新安装的GSD文件。如果想把GSD文件导出可以选择“Export”。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
3.2 IO controller 项目的配置 1) 新建一个Step7的项目,插入一个S7 300站。打开硬件组态插入PLC。设置PLC的网络和IP地址。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
2)打开硬件组态,把生成的iDevice的GSD文件(PROFINET IO >Preconfigured Stations)加入到IO系统。当iDevice通过IRT控制时,会显示端口。子槽的个数与配置一致,IO地址可以修改。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
3)双击iDevice打开属性窗口,可以看到在iDevice项目中设置的设备名。去掉自动配置IP地址,这样D435的IP地址使用iDevice项目中的设置。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
5)编译保存。
6) 在SIMOTION的IO符号表中建立两个IO变量,对iDevice的数据进行读写。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
3.3 下载项目
1)设置PG/PC的IP地址。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
2)在硬件组态窗口中,用PLC > Ethernet > Edit Ethernet node或者PST工具设置PLC和iDevice的IP地址和设备名。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
3)将两个项目分别编译下载。 3.4 作IRT通讯 时额外的配置
1)如果与SIMATIC 控制器作IRT通讯,在建立SIMOTION项目时要选择PN v2.2(CF卡中的firmware要对应地升级到PN v2.2版本)。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
2)选择PLC的PN IO 接口。Edit > PROFINET IO >Domain management 打开同步域设置窗口。双击列出的站点设置IO controller 和iDevice的同步主从和RT 类别。PLC作为 IO controller 时只支持IRT High flexibility。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
3)设置update time 和 send clock
如果设置为RT模式,update time必须等于iDevice项目中设置的update time或者是它的整数倍。
如果设置为IRT模式,两个项目中的send clock 必须相同。可以在Edit > PROFINET IO > Domain Management下设置send clock,可能的设置是 500, 1,000, 2,000 和 4,000 μs。 3.5 检查数据通讯的连通性
在PLC侧建立一个变量表,加入iDevice的输入输出地址。SIMOTION中插入一个Watch table,加入建立的IO变量。检查数据的连通性。 PLC侧:
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
D435侧:在“Control value”中设置要发送的数据,点击“Immediately Control”。
PROFINET中用iDevice实现SIMOTION与SIMATIC间的实时通讯
4 参考文献
|