基于PROFINET通信的S7-200 SMART与V90伺服控制研究
2021-09-08张强张砚屈扬
张强,张砚,屈扬
(西门子工厂自动化工程有限公司西安分公司,陕西 西安 710003)
随着PROFINET、PROFIBUS等相关总线技术的快速发展,工控现场控制器之间或者控制器与设备之间使用总线通信技术可大大减轻布线工作量,减少故障发生点,易于系统工艺更新和状态监控。S7-200 SMART控制器通过PROFINET总线通信方式,控制V90伺服驱动器实现高速运动控制已成当前使用热点,有必要对相关问题进行研究。
1 伺服控制研究
1.1 圆盘均匀打孔控制工艺
圆盘均匀打孔设备,需要每次控制转盘上的工件走60度(该角度可以通过上位机更改),角度定位完成之后,打孔设备进行打孔,打孔完成继续走60度,准备下一次打孔。一个工件打满6个等间距的圆孔后,工件拿走并放入新的工件继续打孔。
1.2 研究环境
圆盘打孔设备中控制器采用S7-200 SMART以及相关的DI/DO点。驱动器采用SINAMICS V90伺服驱动器(PN类型),选用低惯量、增量式编码器电机[1,2,3](见下表1所示)。
表1 研究环境
软件使用STEP7 MicroWin SMART V2.5版本,且CPU固件版本为V2.5。V90组态软件使用VASSISTANT V1.05版本[4]。
1.3 通信组态
GSD文件的添加:V90做PROFINET IO设备时需要在STEP7 MicroWin SMART软件中单击“GSDML管理”安装GSD文件后,S7-200 SMART才能在组态中选择V90(见下图1),需要注意的是STEP7 MicroWin SMART支持GSDML规范2.33或更早版本。
图1 S7-200 SMART添加GSD文件
S7-200 SMART控制器设置如图2所示,其中发送时钟默认是1.0ms,无法更改,表示设备在一个确定的时间间隔内提供新数据的能力,即S7-200 SMART控制器能以最快1.0ms的时间间隔给V90发送数据,且不必每1.0ms都是更新的数据。启动时间是指S7-200 SMART等待通信的所有V90启动完成的时间,建议适当设置长一点。
图2 S7-200 SMART控制器设置
S7-200 SMART报文配置如图3所示,其中更新时间是指与S7-200 SMART所通信的所有V90数据更新的最大时间,更新时间的组成单位即是上文中的发送时钟。数据保持是用来设置看门狗时间的,即看门狗时间等于数据保持乘以更新时间。举例说明更新时间与发送时钟之间的关系[6,7],假设一个总线系统连接了3个设备,设备1每1ms发送一次数据,设备2每2ms发送一次数据,设备3每4ms发送一次数据,则更新时间与发送时钟之间的关系见如4所示。
图3 S7-200 SMART PROFINET报文配置
黄色框表示设备1发送的数据,因其发送周期是1ms,与发送时钟1ms时间相同,故其在每次发送时钟更新数据。绿色框表示设备2发送的数据,因其发送周期是2ms,故其间隔一个发送时钟后更新数据。红色框表示设备3发送的数据,因其发送周期是4ms,故其间隔三个发送时钟后更新数据。一个更新时间4ms后,所有设备数据都得到了刷新,所以更新时间要大于或等于所有IO设备中发送周期最大的那个时间。
图4 更新时间与发送时钟关系
在使用V-ASSISTANT软件对V90进行通信组态时,根据圆盘打孔控制工艺,只能选择“111报文”,控制模式选择“基本定位器控制(EPOS)[8,9]”。设置机械结构如图5所示。
图5 V90 PROFINET通信机械结构设置
这里设置360000LU=360°,那么1000LU=1°。SINA_POS指令中的Position引脚位置值的单位是LU,所以在设置Position变量数值时需将实际度数乘以1000后的积给此变量;SINA_POS指令中的Velocity引脚速度的单位是1000LU/min,等于1°/min,在设置速度值时需了解。例如,需让负载转动60°,那么应该设置Position变量数值是60×1000LU=60000LU;速度Velocity变量设置为3600,即3600°/min,等于10转/min。为简单起见,设置齿轮箱系数为1:1。
1.4 软件编程
基于STEP7 MicroWin SMART编程软件,采用软件自带的库指令SINA_POS可实现对V90的伺服位置控制;使用SINA_PARA_S指令可实现对V90中参数的读取。根据圆盘打孔控制工艺,其控制流程如图6所示:
图6 圆盘均匀打孔控制流程图
数据初始化:必须设置速度超驰(范围0~199%)、加速度超驰(范围0~100%)、减速度超驰(范围0~100%)和ConfigEpos变量(如图7所示)。其中,ConfigEpos变量的初始值必须是3,以保证不激活OFF2和OFF3停止(如图8所示)。
图7 运动控制初始化
图8 ConfigEpos变量位功能说明
发送V90启动信号:因为V90本身扫描周期的原因,当S7-200 SMART的扫描周期时间小于V90本身扫描周期时间时,S7-200 SMART的启动信号V90无法获取,导致V90无动作。这时需要将启动信号进行短暂保持,保持时间大于等于V90本身扫描周期时间。本例中设置保持时间是30ms(如图9所示)。
图9 V90启动信号的延迟
进行打孔操作:使用库指令SINA_POS进行转盘的旋转运动控制(如图10所示),引脚ModPos设置为1,走相对定位运行模式(在此模式下,无法在轴运行期间通过引脚Velocity实时更改速度值,但可以通过速度超驰变量实时更改),此时轴不必回零或绝对值编码器可未被校正。CancelTraversing和IntermediateStop引脚必须为常1信号触发,且要先于轴使能引脚EnableAxis和执行引脚Execute操作。轴的运动方向由Position的正负号决定。容易出错的引脚Control_table必须使用间接寻址方式配置,即“&+变量地址”方式,否则会直接影响CPU上数字量输入I点的状态。
图10 SINA_POS指令配置
读取V90参数:S7-200SMART库指令SINA_PARA_S用于管理非周期参数[10](如图11所示),即可以读取PROFINET通信(包含周期性通信和非周期性通信)中非周期通信时驱动器的参数。如果仅仅使用单个SINA_PARA_S读取V90中的某个参数是没有问题的,但是如果有多个参数想要同时读取,多个SINA_PARA_S指令同时使能读取,指令会报错,结果也不对。这里提供一种解决办法:采用定时轮询的方法,假设有两个(多个同样适用)SINA_PARA_S指令需要读取参数,第一秒第一个SINA_PARA_S指令的EN和Start引脚同时等于1,读取参数;第二秒第一个SINA_PARA_S指令的EN和Start引脚同时等于0;第三秒第二个SINA_PARA_S指令的EN引脚等于1;第四秒第二个SINA_PARA_S指令的Start引脚等于1,读取参数;第五秒第二个SINA_PARA_S指令的EN和Start引脚同时等于0。这样,五秒一个轮询周期,可保证两个SINA_PARA_S指令读取结果的正确性。现场如果对实时性要求较高,可适当修改轮询周期时间。
图11 SINA_PARA_S指令配置
2 结论
基于PROFINET通信的S7-200 SMART与V90伺服控制,结合圆盘均匀打孔控制工艺,在实际测试中取得了预期效果。