郑先波
摘要
为详细阐述CX2030嵌入式控制器与多台SIMOTION D伺服控制器的PROFINET实时通信方案,对方案的架构、配置、编程进行了详细的说明,并对通信的实时性及准确性进行了监控。该方案弥补了传统的PROFIBUS通信字节数量太少的局限性为高速卷烟机的实时控制提供了更好的通信平台。
【关键词】嵌入式控制器 PROFINET通信 伺服控制器 实时控制
1 引言
随着科学技术的发展,各卷烟厂家不但要求卷烟机速度高,同时要求设备运行稳定、噪音小。因此国内外卷烟设备制造厂家开始大规模运用伺服系统,减少机械传动,从而减小了整个设备的噪音。随着卷烟机速度的提高,需采用处理速度更快的嵌入式控制器来进行控制。目前高速卷接机组采用的主流控制器是倍福公司的嵌入式控制器(本文以CX2030为例)与西门子公司的SIMOTION D伺服控制器。二者之间采用Profibus总线进行通信。但是Profibus总线通信数据量最多只能到244字节,数据传输的带宽最大为12Mbps。对于一台拥有70多台伺服电机的高速卷烟设备来说,其局限性显而易见。为此,倍福公司于2014年新推出了基于工业以太网的PROFINET耦合器模块EL6631。其总线通信数据量可达1024字节,数据传输的带宽为100Mbps。可以更好地满足高速卷烟机通信的要求。
2 系统网络结构
2.1 系统组成
嵌入式控制器CX2030,系统wes7,tc3版本V3.1.4012;EL6631-0000 PROFINET主站模块1个;SIMOTION D控制器3个,带PN接口。
2.2 网络结构
3个SIMOTION D同时配置成I-Device,CX2030挂在PROFINET通信网络的首端,作为I-Controller,发起与3个SIMOTION D的实时通信。其网络结构如图1所示。
3 配置步骤
3.1 GSD文件生成
在siemens编程软件Scout里生成对应三个SIMOTION D的GSD文件,并将生成的GSD文件放在笔记本电脑C:\TwinCAT\3.1\Config\Io\Profinet目录下。每个SIMOTIOND控制器对应不同的GSD文件。因为一个PROFINET耦合器模块EL6631下所有SiMotion的I、Q区数据量总和分别小于1kB。因此在生成GSD文件时,确保三个SIMOTION D控制器通信字节数量不超过1KB。
3.2 设置IP地址
因耦合器EL6631默认IP地址为192.168.1.1,必须将SIA40TION D侧通信网口IP地址设为192.168.1.XX,确保与主站设备IP地址在同一网段。
3.3 硬件组态
在Twincat 3编程软件里进行硬件扫描,分别选择对应的GSD文件手动添加。否则有可能会出现实际SIMOTION D设备与GSD文件不一致的情况。
3.4 修改IP地址
设置IODevices设备IP地址与SIMOTION D硬件实际物理侧IP地址一致。添加从站设备后,不论实际SIMOTION D IP地址是多少,CX2030里会强制将IP地址按照从站添加的顺序,依次变为192.168.1.5,192.168.1.6,192.168.1.7。此时必须将IP地址修改成与实际物理地址一致,然后激活配置生效。
4 程序编制
以其中一个SIMOTION D控制器为例(该SIMOTION D分配了400个Byte),CX2030在等时任务中将数组数据写入输出通信数据区,SIMOTION D在等时任务中读入数组数据,并将其输出反馈给CX2030。CX2030将接收到的数据与发送的数据比较,若一致,则将输出数组的数值都加1后发送给SIMOTIOND。通过在SCOUT软件的示波器监测数据数值的变换周期,可以得出CX2030发出数据并收回的时间周期,进一步计算出CX2030与SIMOTION D底层数据交换的时间。
4.1 CX2030程序
//变量定义
cbe455_2_input AT%I*:ARRA)[1..200]OF WORD;//接收数据
cbc455_2_output AT%Q*:ARRAY[1..200]OF WORD;//发送数据
LINT;H发送数据循环计数器
J:INT;//数组成员动态变化计数器
K:INT;//接收数据循环计数器
cbe455_2_tempinl:ARRA)[L.200] OFWORD;//临时存储接收的数据;
//Send
FOR I:=1 TO 200 DOcbe455_2_output[E]:INT_TO_WOR])(I+J);
END_FOR
IF cbe455_2_output[1]=cbe455_2_tempinl[1]THENJ:=J+1:
END_IF
IF J>=100 THEN J:=0;
END_IF
//Reccive
FOR K:=1 TO 200 DO cbe455_2_tempinl[K]:=cbe455_2_input[K];
END_FOR
4.2 SIMOTION D程序
程序中不停地監控收到数组的相邻成员数值差,若差值不为1,报错计数器加1,则说明数据出错,或者通信区数组不是在一个交换周期内刷新的。
FOR i:=1 TO 199DO
IF gsb_data_in[i+1]-gsb_data_in[i)<>1THEN
error_counter:=error_counter+1;
END_IF;
END_FOR;
//将收到的数据回传给CX2030
FOR j:=1 TO 200DO
gsb_data_output[j]:=gsb_data_input[j]
END_FOR;
5 通信结果监控
(1)CX2030和SIMOTION D采用2MS任务刷新映象区数据和处理数据时,结果如图2所示(16ms)。
(2) CX2030和SIMOTION D采用4MS任务刷新映象区数据和处理数据时,结果如图3所示(28ms)。
6 实时性分析
6.1 PROFINET实时通信原理
提高通信的实时性主要应该从优化通信堆栈来实现,PROFINET是通过软件的方法完成实时通信的功能的。采取的主要措施是:去除一些协议层,减小文本长度;提高通信双方传输数据的确定性,把数据传输准备就绪的时间减至最小;采用IEEE802.1q标准,增加对数据流传输优先处理环节。PROFINET把实现RT功能的标志嵌入到以太网的帧结构中。
RE帧中有两个重要的协议元素,一个是以太网类型,PROFINET使用以太网类型的Ox8892表示该帧是RT帧,该类型是由IEEE指定的区别于其它协议的唯一标准;另一个是帧ID码,它用来编址两个设备间特殊的通信通道。仅使用帧ID码就可以快速选择和识别RT帧而不需要任何多余的帧头标志。
6.2 实时通信时间计算
方案中PROFINETN通信采用了1MS的SEND_CLOCK時钟,数据交换时间是一定的。在I-Device通信中,假设单向数据发送时间为A,CX2030和SIMOITON D在2MS等时任务读写通信区和数据处理时间总和为B,则4MS等时任务读写通信区和数据处理时间总和为2B.根据监控得到的数据,可得到下列方程式:
2A+B=16
2A+2B=28
计算得出:A=2(ms)B=12(ms)
即CX2030和SIMOITON D通信缓存区之间的数据传送时间为2ms,在2ms等时任务时读写通信区和数据处理时间为12ms。因此根据需要交换数据的实时性要求,可使用不同周期任务来处理通信数据,达到实时通信的目的。
7 结束语
本文以CX2030和SIMOTION D为对象,介绍了PROFINET通信的实时性,其大数据量的通信弥补了传统的Profibus通信字节数量太少的局限性;充分论述了CX2030和SIMOTION D的PROFINET通信在高速卷烟机上运用的可行性及优越性。通过该方案的运用,将大大提高高速卷烟机的可靠性。更好地满足卷烟厂家生产的要求。
参考文献
[1]吕其栋,王薇.深入浅出西门子运动控制器:SIMOTION实用手册[M].北京:机械工业出版社,2013: 308-349.
[2]崔坚.西门子工业网络通信指南:下册[M].北京:机械工业出版社,2005:199-234.
[3]阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,1999:16-69.
[4](德)皮金(pigan,r.).西门子PROFINET工业通信指南[M].北京:人民邮电出版社,2007:21-42.