s7-1500+FB284控制V90pn,三个轴,最新项目,调试通过plc程序和触摸屏程序
最近刚搞完一个S7-1500通过FB284控制三台V90 PN的项目,趁着热乎劲记录点实战经验。这个方案最大的优势就是省事——不用写底层报文,FB284直接封装好了PROFINET通信,三台伺服参数配置好直接开整。
硬件组态先把V90 PN的GSD文件导进TIA Portal,三台伺服挂到PROFINET网络里。注意每台V90的设备名称要和实际硬件一致(别问我怎么知道的,设备名称冲突报错那会真是头大)。组态完硬件后,FB284的接口参数自动生成,这个挺方便。
PLC程序里每个轴单独调用FB284:
CALL "FB284" , "Axis1_DB" Axis := 1 //硬件标识符 Execute := #Axis1_Enable ... Error := #Axis1_Error这里偷懒用了M区地址,实际项目建议用结构体变量。重点注意控制字设置,比如伺服使能需要给16#047E过渡到16#047F(这个坑当年可是卡了我两小时)。
s7-1500+FB284控制V90pn,三个轴,最新项目,调试通过plc程序和触摸屏程序
触摸屏做了个三轴控制面板,HMI变量直接绑定PLC的DB块。手动模式时用MoveVelocity指令控制:
IF #JogForward THEN "Axis1".MoveVelocity(500.0); ELSIF #JogBackward THEN "AxisDB".MoveVelocity(-500.0); END_IF;调试时发现V90的402报文配置必须和PLC端对应,尤其是控制字/状态字的位定义。有个骚操作:把V90参数p29013设成3,可以直接在TIA Portal里读伺服报警信息。
联调阶段碰到最奇葩的问题:某个轴的定位完成信号死活不触发。后来发现是FB284的PositionReached信号需要VelocityActual绝对值低于某个阈值才会置位,在V90里把p2625参数从默认50改到20立马好使。
几个实战建议:
- 先单轴调试再扩展多轴
- 用PLCSIM Advanced模拟测试基本逻辑
- 伺服报警处理一定要做,把V90的故障代码转成中文显示在HMI
- 注意FB284的ModeSelect模式切换需要时间间隔
这个方案整体运行稳定,三轴同步动作时PROFINET的抖动时间控制在1ms以内。下次试试用工艺对象做更复杂的运动控制,不过那是另一个故事了。代码和组态截图晚点传到Github,需要的老铁评论区喊一声。