西门子200smart与v90伺服驱动器Profinet通讯。 sina-pos的运用。 Profinet报文的学习以及运动控制的基本思路。 (程序有定位控制的细节控制逻辑,很有意思) 可以学习三个重点1.V90伺服的运用与
最近在折腾西门子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反而容易丢精度导致位置偏差。
报警处理必须够硬核。我在OB1里插了急停监控程序,只要检测到驱动器故障位立即切断MC_Power的Enable:
L #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曲线功能慢慢调。说到底,工控项目玩到最后都是机电一体化的功夫。
西门子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的速度可通过触摸屏修改。
实时显示轴当前位置