西门子V90伺服驱动器与Profinet通讯实现精准运动控制:从A点到B点的往返运动控制逻辑与...
西门子200smart与v90伺服驱动器Profinet通讯。 sina-pos的运用。 Profinet报文的学习以及运动控制的基本思路。 程序有定位控制的细节控制逻辑很有意思 可以学习三个重点1.V90伺服的运用与组态 2. Profinet报文的运用 3.运动控制的逻辑思维。 设计理念: A,B两点根据程序做往返运动。 送epos参考资料 v90资料 wincc程序,送V90V-Assistant调试助手送所有相关资料。 实现功能: 1.不论在任何情况下出现报警后伺服停止运动断开使能。 2.复位报警消除后。 启动设备系统自动回原点。 3.当运动信号触发后立即从A移动到B到达目标后自动返回到A。 4.A到B的距离、速度b到a的速度可通过触摸屏修改。 实时显示轴当前位置最近在折腾西门子S7-200 SMART和V90伺服驱动器的Profinet通讯项目发现这玩意儿虽然看着复杂但确实有意思。特别是那个往返运动的控制逻辑调通之后成就感直接拉满。今天咱们就边撸代码边唠嗑把实战经验分享给各位工控老司机。先说硬件配置这档子事。打开TIA Portal V16新建项目后先给200 SMART配置个Profinet接口。这里有个坑要注意——V90的GSD文件必须用最新版去年用老版本死活连不上后来换了V05版GSD瞬间打通任督二脉。组态时记得把控制模式选成EPOS这样才能用SINA-POS功能块搞定位控制。组态完硬件就该伺候报文了。Profinet通讯的核心是数据交换区这里用到了111字节的输入和8字节的输出。看这个报文结构Input { 状态字: 0x6041, 实际位置: 12345, 实际速度: 500, 故障代码: 0x00 } # 输出报文 Output { 控制字: 0x000F, 目标位置: 67890, 运行速度: 1000 }实际用STL写控制字的时候得按位操作比如上使能要这么写A M10.0 //急停信号 L0.0 BLD 103 CALL DPWR_DAT , DB10 LADDR :W#16#100 //硬件地址 RECORD :P#DB20.DBX0.0 BYTE 8 //输出区 ...这里有个骚操作——用MOVE指令批量传参数比单个位操作效率高得多特别是需要频繁修改目标位置时。运动控制逻辑才是重头戏。写往返程序时我用了状态机方案总共设计了7个状态待机状态回原点中向B点运动到达B点等待返回A点急停处理报警状态核心逻辑用梯形图实现更直观//运动触发条件 Network1 LD SM0.0 MOVW 当前位置VD100, 目标位置VD200 CMP VD200, A点位置VD300 JMP 去B点 去B点: MOVW B点位置VD304, 目标位置VD200 CALL SINA_POS_PTP //调用定位块这里有个细节很有意思——比较位置值时必须用DINT类型用REAL反而容易丢精度导致位置偏差。西门子200smart与v90伺服驱动器Profinet通讯。 sina-pos的运用。 Profinet报文的学习以及运动控制的基本思路。 程序有定位控制的细节控制逻辑很有意思 可以学习三个重点1.V90伺服的运用与组态 2. Profinet报文的运用 3.运动控制的逻辑思维。 设计理念: A,B两点根据程序做往返运动。 送epos参考资料 v90资料 wincc程序,送V90V-Assistant调试助手送所有相关资料。 实现功能: 1.不论在任何情况下出现报警后伺服停止运动断开使能。 2.复位报警消除后。 启动设备系统自动回原点。 3.当运动信号触发后立即从A移动到B到达目标后自动返回到A。 4.A到B的距离、速度b到a的速度可通过触摸屏修改。 实时显示轴当前位置报警处理必须够硬核。我在OB1里插了急停监控程序只要检测到驱动器故障位立即切断MC_Power的EnableL #Drive_Fault T MB20 L MB20 SPB 0, NORM //故障处理流程 L 0 T MC_Power.Enable NORM: NOP 0这招能确保任何异常发生时驱动器立即下使能实测响应时间在10ms以内。说到WinCC交互用VBS脚本做参数修改确实方便。在速度设定框里这么写Sub Speed_Change() Dim tag Set tag HMIRuntime.Tags(SetSpeed) If IsNumeric(tag.Value) Then SmartTags(SetSpeed_DWORD) tag.Value * 100 //转成脉冲单位 End If End Sub注意单位转换这个坑——触摸屏显示的是mm/s实际发给PLC的要转成脉冲/秒不然速度差十倍都不止。最后说调试技巧V-ASSISTANT真是神器实时监控报文还能强制修改参数。有次遇到位置漂移问题就是用它抓包发现报文里的位置值高位字节没传过去后来改了个数据类型直接解决。建议调试时开着报文监控和trace功能比闷头看代码高效多了。整套系统调通后发现运动控制最考验的不是代码能力而是对机械特性的理解。比如加减速时间设置不合理会导致设备振动这时候就得结合伺服的S曲线功能慢慢调。说到底工控项目玩到最后都是机电一体化的功夫。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2430837.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!