CPU 的"I-Device"(智能设备)功能简化了与 IO 控制器的数据交换和 CPU 操作过程(如用作子过程的智能预处理单元)。智能设备可作为 IO 设备链接到上位IO 控制器中,预处理过程则由智能设备中的用户程序完成。集中式或分布式(PROFINET IO 或 PROFIBUS DP)I/O 中采集的处理器值由用户程序进行预处理,并提供给 IO 控制器。


图1. 网络架构
智能设备的应用领域:
分布式处理 可以将复杂自动化任务划分为较小的单元或子过程,这样简化了子任务的同时也化了项目管理。 单独的子过程 通过使用智能设备,可以将分布广泛的大量复杂过程划分为具有可管理的多个子过程。必要的话,这些子过程可存储在单个的 TIA 项目中,这些项目随后可合并在一起形成一个主项目。 专有技术保护 智能设备接口描述使用 GSD 文件传输,而不是通过 STEP 7 项目传输,这样用户程序的专有技术得以保护。
智能设备的优势:
简单链接 IO 控制器。 实现IO 控制器之间的实时通信。 通过将计算容量分发到智能设备可减轻 IO 控制器的负荷。 由于在局部处理过程数据,从而降低了通信负载。 可以管理单独 TIA 项目中子任务的处理 。 智能设备可以作为共享设备。
S7-1200 V4.0及以上版本开始支持智能 IO 设备功能。本示例中介绍1200 CPU之间如何进行智能设备PROFINET通信,分别在相同项目和不同项目下进行组态,实验环境如下所示。
软件:
TIA V15.1
硬件:
CPU 1217C DC/DC/DC V4.3 CPU 1215C DC/DC/DC V4.3
设备角色及地址:
模块 | 设备类型 | 设备名称 | IP地址 | 子网掩码 |
|---|---|---|---|---|
S7-1217C | IO控制器 | PLC1 | 192.168.0.1 | 255.255.255.0 |
S7-1215C | 智能IO设备 | I-Device | 192.168.0.2 | 255.255.255.0 |
STEP 1:创建 TIA Portal 项目并进行接口参数配置
使用TIA V15.1创建一个新项目,进入网络视图添加表1列出的所有设备,并进入各个设备以太网地址选项分别设置子网、IP地址以及设备名称。

图2. 以太网地址配置
STEP 2:操作模式配置
本例1215C作为智能IO设备,需要将其操作模式改为IO设备,并且分配给对应IO控制器,配置所需的传输区。
选择“PN接口的参数由上位IO控制器进行分配”复选框,可指定是由智能设备本身还是由上位 IO 控制器设置接口和端口。
智能IO设备还支持优先启动,勾选后加快IO设备的启动速度,详情请了解优先启动相关功能。

图3. 操作模式
进入传输区视图还可以分配地址区所属组织块及过程映像。

图4. 传输区
STEP 3:项目编译、下载、测试
分别编译下载两个PLC,在监控表中添加传输区数据,给Q区赋值,监控发送和接收数据区是否一致。


图5. 测试结果
STEP 1:创建 TIA Portal 项目并进行接口参数配置
分别创建2个不同项目,一个项目添加1217C,另一个项目添加1215C,进入表1中各个设备以太网地址选项分别设置子网、IP地址以及设备名称。

图6. 以太网地址配置
STEP 2:操作模式配置
本例1215C作为智能IO设备,需要将其操作模式改为IO设备,由于控制器未在同一项目,这里选择未分配。
选择“PN接口的参数由上位IO控制器进行分配”复选框,可指定是由智能设备本身还是由上位 IO 控制器设置接口和端口,比如1200智能设备的介质冗余、优先启动、传输速率等接口和端口功能。
智能IO设备还支持优先启动,不同项目下无法直接选择优先启动功能,需要先选择“PN接口的参数由上位IO控制器进行分配”,然后在主站项目下为智能设备设置接口选项中的优先启动功能。
这里与相同项目下传输区的配置不同的是IO控制器的地址需要在主站项目下才能分配。

图7. 操作模式
STEP 3:项目编译后导出GSD文件
这里注意导出GSD之前需要正确编译项目的硬件配置,不然导出选项是灰色的,无法选择。导出GSD文件选项可以由用户设置GSD文件名称的标识部分(GSD文件名称的版本、厂商、日期等部分为默认设置),然后选择存储路径并导出文件。注意导出的GSD文件不要修改文件名称,不然会造成无法导入项目中。


图8. 导出GSD文件
STEP 4:导入GSD文件
进入主站项目管理GSD文件视图,选择存储GSD文件源路径,在路径下选择需要安装的文件进行安装。


图9:导入GSD文件
STEP 5:添加智能IO设备
进入硬件目录,在其它现场设备列表中找到安装的智能IO设备并添加,添加完成后进入图2以太网地址配置视图,检查智能IO设备的设备名称是否与源项目中名称一致(注意一定要保证名称一致),检查无误后分配给控制器,如设备概览视图,分配给控制器后会自动分配地址,也可以手动设置控制器侧传输区地址。



图10:添加IO设备
STEP 6:项目编译、下载、测试
分别编译下载两个项目中PLC,在监控表中添加传输区数据,给Q区赋值,监控发送和接收数据区是否一致。


图11:实验测试
1. 控制器诊断缓冲区报“IO设备故障-找不到IO设备”?
这是因为控制器无法与智能IO设备取得通信,可以通过以下方式查找故障原因。
(1)确认网络是否是通的,可以使用Ping命令检测网络通断。如果中间经过交换机还要保证交换机支持DCP协议。
(2)检查智能IO设备的名称与源项目名称是否一致。
(3)确认智能IO设备的硬件和软件是否已经下载。

图12:网络视图报错
2. 控制器如何控制智能设备上IO数据或是传输DB块中数据?
如下图所示,只需把PLC的IO地址与传输区中IO地址做一个映射关系。

图13 地址映射
这里通过建立PLC数据类型方式把IO区数据与UDT中数据一 一对应,1215CPU中输入输出分别占用6个字节的数据,这样建立如下图所示UDT。

图14 UDT设置
在默认变量表中分别定义输入、输出、传输区1、传输区2所对应的IO数据区,这样就可以使用MOVE指令来整体传输了。
同样DB块的数据也可以通过这种方式进行传输。


图15 程序编写
这样1217控制器可以直接控制1215智能IO设备上的Q区数据,同时读取I区数据。测试结果如下:

图16 测试结果
P.S 补充知识点
PROFINET是PROcess、Field和NET的缩写,是基于工业以太网的开放的、标准的、实时的通信协议,可以应用TCP/IP协议和IT标准,与现场设备实现无缝集成,可以说PROFINET是工业以太网应用在现场级的一种实施协议。
PROFINET主要有两种通信方式[1]: (1)PROFINET IO实现控制器与分布式I/O之间的实时通信; (2)PROFINET CBA实现分布式智能设备之间的实时通信。 从PROFINET的角度来看,PROFINET IO是在工业以太网上实现模块化、分布式应用的通信概念。通过PROFINET IO,分布式I/O和现场设备能够集成到以太网通信中。 1 PROFINET IO的基本概念 1.1 PROFINET IO的工程模型 (1)IO控制器 IO控制器[2]一般是可编程控制器(例如PLC),它能够执行自动化程序。其功能相当于PROFIBUS类型1的主站。 (2)IO设备 IO设备是连接到PROFINET网络中的现场分布式I/O。 (3)IO监视器 IO监视器[2]是一种工程设备,通常为PC、HMI或可编程控制器,用于IO控制器和IO设备的调试和诊断,在运行期间连接IO监视器,通常只是暂时性地用于调试和故障处理。IO监视器的功能相当于PROFIBUS类型2的主站。 1个PROFINET IO系统应该包括至少1个IO控制器和1个IO设备。 1.2 PROFINET IO的数据流 PROFINET IO通信站点的数据交换是通过标准通道[3](基于UDP/IP)和实时通道完成的。在这些通道里,数据使用不同的协议进行传输。例如启动时从站参数是由主站通过UDP协议传递的,设备地址名字的分配是通过DCP协议完成的,这些都属于标准数据,也可以称为非实时(NRT)数据。而周期数据[4]、报警数据是通过实时协议传送的,被称为实时数据。 1.3 组态PROFINET IO及其重要概念 1.3.1 组态PROFINET IO PROFINET IO组态如图1所示,主站是CPU319-3 PN/DP,从站有3个IO设备,分别为ET-200S,ET-200pro和ET-200eco,还可以继续添加IO设备,SIMATIC 产品系列的 PROFINET 设备具有PROFINET接口[5](带或不带集成交换机)。带集成交换机的 PROFINET 设备通常具有2个端口,用于网络的线性总线结构。 同时还提供有3个或更多端口的 PROFINET 设备以连接树型拓扑。由图1可见,CPU319通过双绞屏蔽线与设备3(ET-200S)连接,不同的IO设备之间通过它们自带的交换机接口进行连接。
1.3.2 PROFINET IO中的不同时间概念 (1)发送时钟(Send clock)[6]:IRT或RT通信中2个连续间隔之间的时间段。发送时钟是用于交换数据的可能的最短传输时间; (2)更新时间(Update time):更新时间=发送时钟× Factor。 在此时间间隔之内,IO 控制器/IO 设备为 PROFINET IO 系统中的IO设备/IO 控制器提供新的数据。可以为每个IO设备单独组态发送周期,并定义将数据从 IO 控制器发送到 IO 设备(输出)的时间间隔以及将数据从 IO 设备发送到IO控制器的时间间隔(输入)。更新时间在SETP7组态中可以设置。 (3)Factor:Fatcor是放大倍数,为2n,也称减速比(Reduction Ratio)[7] (4)看门狗时间 (Watchdog xime) 通过STEP7,采用更新时间的整倍数来设置看门狗时间,该时间也可由用户修改。如果在看门狗时间内IO控制器没有为IO设备提供输入/输出数据,IO设备将出现故障并给出替换值。这种情况将作为站故障报告给IO控制器。 2 研究PROFINET IO实时性的必要性 首先,在运动控制系统等对实时性要求很高的领域,用户需要知道PROFINET IO数据循环的周期,以便更好地进行生产。其次,如果在STEP7工程工具中对PROFINET IO设备的更新时间和看门狗时间设置不合适,设备就会在运行时出现莫名其妙的故障。所以,对PROFINET IO实时性的研究是很有必要并且具有现实意义。 3 PROFINET IO的实时性 3.1 标准以太网的帧结构 标准以太网的帧如表1所示。可以看出,一个标准以太网帧数据大小为64 B~1 500 B。快速以太网(100 Mb/s)传输1 518 B数据的时间是120 μs,传输64 B数据的时间是5 μs。
3.2 交换机制 SIMATIC 中的交换机通过 PROFINET 上的2个机制满足实时要求。 (1) 存储与转发S&F(Store and Forward)[4] 使用存储转发方法时,交换机将完整地存储消息帧,并将它们排成一个队列。 如果交换机支持国际标准 IEEE 802.1Q,则根据其在队列中的优先级存储数据。 这些消息帧随后将有选择性地转发给可访问已寻址节点的特定端口(存储转发)。 对于存储转发,数据经过交换机时先存储进行校验,然后由交换机根据地址表再进行转发。 (2)直通交换方式(Cut Through)[4] 在直通交换方式过程中,并不是将整个数据包临时存储在缓冲区中,而是在目标地址和目标端口已经确定后,马上将整个数据包直接传送到目标端口。这样通过交换机传送数据包所用的时间是最小的,且不受消息帧长度的影响。当目标段与下一个交换机的端口之间的区段已被占用时,数据将“根据优先级的存储和转发过程”临时存储。 根据西门子交换机SCALANCE X200手册,64 B的数据S&F延迟时间是10 μs,1 500 B数据S&F延迟时间是130 μs。 根据IEEE802.1Q定义的以太网报文的优先级,在标准以太网报文中加入4B来标识报文的优先级,凡是支持IEEE802.1Q的交换机都会对这些报文进行优先级的识别和处理,以图2所示为例说明,交换机的端口2收到报文1并进行存储转发,这时端口3收到报文2和报文3,由于报文1正在被发送,即使它是非实时的报文也不能被中断,由于报文2的优先级低于报文3的优先级,所以报文3会被优先发送出去,这时从端口1发送的顺序就是报文1、报文3、报文2。
3.3 PROFINET IO实时数据传输的延迟时间 假设组态ET200分布式I/O模块不是很多的情况下,这样一个最小的以太网报文64 B完全可以控制I/O,那么就认为PROFINET报文的大小为64 B。根据快速以太网(100 Mb/s)传输64 B数据的时间是5 μs,经过n台交换机的传输时间约为n×5 μs。根据SCALANCE X200手册,64 B的数据S&F延迟时间是10 μs,经过n台交换机的延迟时间约为n×10 μs。那么RT数据的延迟时间为n×(10+5)μs。 但是还需要考虑另一种情况,如果RT数据经过每台交换机准备发送,恰好每台交换机都正在转发一个最大的非实时(NRT)以太网报文,RT的数据必须等待非实时(NRT)数据发送完毕然后再进行传输,当然,这种情况是极特殊的。这样通过计算快速以太网传输1 518 B数据的时间是120 μs,最大非实时数据(NRT)以太网报文经过n台交换机的传输时间约为n×120 μs。根据SCALANCE X200手册,1 500 B的数据S&F延迟时间是130 μs,经过n台交换机的延迟时间约为n×130 μs。这种情况,经过n台交换机一个RT数据总的延迟时间约为n×(10+5)μs+n×(130+120)μs。如果存在64台SCALANC X200交换机串联,则“最远”现场IO的延迟时间约为64×(130+120)+64×(10+5)=16.96 ms。 这样根据所计算的结果,如果通过STEP7设置最远设备的刷新时间PROFINET IO网络中,一个IO控制器控制64个IO设备时,Step7默认计算控制每一个IO的Update time为1 ms。而在PROFINET网络中,不可避免地存在非实时(NRT)数据,例如通过SFB52/53读写数据记录,通过SNMP诊断和维护PROFINET网络、PG诊断、视频或音频等。 如果使用默认设置的1 ms,则“最远”现场IO可能出现莫名其妙的丢站现象,可能会被认为是电磁干扰等造成的,从而无法排除现场故障。如果存在上述网络拓扑结构,最好设置“最远”现场IO的刷新时间在8 ms以上,或者调整看门狗时间,即调整刷新时间的倍数,使IO控制器和IO设备不会检测到错误。 根据这种分析方法,对任何的PROFINET网络拓扑结构都可以通过上述的方法确定PROFINET IO设备的刷新时间,避免出现IO错误。 如果使用SCANLANCE X IRT交换机串联,由于IRT交换机使用Cut Through的处理数据方式,这样数据的延迟时间会明显缩短。 如果使用带有PN接口的ET200串联,由于集成ERTEC芯片,同样适用Cut Though的数据处理方式,这样数据的延迟时间会大大缩短。 由交换机的机制和数据在网络介质中传输造成的延迟可以看出,距离主站组态距离不同的IO设备数据更新时间是不同的,距离主站越远的设备,IO数据更新时间越长,所以必须要设定相应的看门狗时间,以避免因为到达看门狗时间数据未更新而造成设备故障误报。 使用IRT(等时实时)通信可以有效地减少数据在交换机上的延迟,因为IRT数据经过交换机使用的是Cut Through方式。