如上图所示,对于由控制器、设备组成的PROFINETIO系统来说,工作的方式就是输入、处理、输出,这一过程循环罔替,周而复始。处理是循环的,T1是PLC程序的循环扫描时间;而且通信也是循环的,T2是总线刷新时间,也就说每个循环周期(Cycle1…n),控制器与设备之间会进行通信。从这个角度说,PROFINET运用了时分复用中时隙的概念,这将大大提高整个网络的通信效率。时隙这个话题将在后面的章节中详细描述。
3、精简协议栈
前面提到PROFINETIO系统是循环通信的,在一个周期内(总线刷新时间)做的事情无非是发送与接收,包括以下过程:
1. 在生产者的应用程序中创建一个变量;
2. 通过PROFINET通信报文的形式将该变量发送给通信伙伴(消费者);
3. 在消费者的应用程序中再次获得该变量。
这个过程所花费的时间如图所示,是T1到T5的累加,详细说明如下。
普通以太网通信使用TCP/IP协议,设备处理报文的时间是ms级别。对于PROFINET实时通信来说,PROFINET使用100Mbps(快速以太网)的传输速率,以传输一个Zui长的PROFINET报文1522字节为例,其传输时间T3大约是125μs,与采用TCP/IP协议报文的处理时间相比,传输时间T3是很短的。于是,要缩短刷新时间,Zui有效的办法就要精简通信协议栈,也就是缩短了T2和T4。
这种简化信息接受难度的做法就像鄙人当年逃课收看NBA总决赛的现场直播,现场画面和主持人的讲解让人能很快、很直接的、很“实时”的感受到现场气息,获得身临其境的效果,让鄙人看完比赛后会意犹未尽、得意洋洋地向老老实实上课的球迷同学炫耀。如果当时只有文字直播,需要花一些时间通过文字理解去想象比赛画面,你觉得还有必要逃课去当铁杆球迷吗?
另外,PROFINET精简了通信堆栈的结构,对于时间要求苛刻的数据采用特别报文及协议,不使用TCP/IP协议栈处理,从而大大缩短了通信时间,保证了通信的实时性。这也属于实时报文类型,将会在后面章节将会详细描述。
总而言之,PROFINET采用精简的通信堆栈结构,100Mbps快速以太网,使用交换机或者带交换功能的IO设备,还有就是其循环通讯的协议机制,这些是PROFINET实时的原因。