出口设备1200线体程序,多个plc走通讯,内部有多个v90,采用工艺对象与fb284 共同控制,功能快全部开源,能快速学会v90的控制,

最近刚交付的出口设备项目里,一套1200PLC带着8个V90伺服满场飞。老铁们都知道,这种多轴系统最怕通讯翻车和参数玄学。今天咱们不整虚的,直接上硬菜——用TIA Portal现场实录教你驯服这群伺服。

硬件拓扑要整明白

这套系统用1200PLC(1215C)当主站,四个ET200SP分布式IO挂着八台V90 PN版伺服。通讯架构走的是Profininet菊花链,每个站间隔别超过50米。这里有个坑得注意:V90的GSD文件必须用最新版(V5.1+),不然设备描述文件不认新版功能。

!PLC拓扑示意图

工艺对象才是王道

别再用老古董的Axis Control了!在OB里直接拖拽"TO_PositioningAxis"工艺对象,这才是官方推荐姿势。配置向导里重点关注这几个参数:

# 轴基本配置
Axis.MasterAxis := "V90_DRIVE_01";  //绑定驱动设备
Axis.Encoder := "Encoder_01";      //编码器绑定
Axis.Mechanical.MotorRevolutions := 10;  //电机每转机械行程

重点是"LoadGearing"参数配置,设备里用到了1:5的减速箱,这里填错了直接导致定位漂移。建议先在HMI上做JOG测试,观察实际移动量与设定值是否成比例。

FB284的花式调用

官方FB284功能块咱得玩出花来。建议把每个V90封装成独立FB,这样维护起来贼方便:

//FB284调用模板
#V90_Drive_FB(
    Axis := "Axis_01", 
    Mode := INT#3,  //速度模式
    Speed := REAL#500.0,
    Error => %M100,
    Status => %MW200);

重点说说Mode参数切换时的骚操作:从位置模式切速度模式前,必须用MC_Reset复位轴状态,否则可能触发驱动报警。实测遇到过切换模式后电机抖动,最后发现是ControlWord没及时更新导致的。

通讯故障三板斧

多站通讯最怕断线,在OB86里加个诊断程序保命:

IF #Station_Lost THEN
    FOR i := 1 TO 8 DO
        ResetAxis(i);  //自定义复位函数
    END_FOR;
    AlarmLog(16#7001); //记录站丢失报警
END_IF;

遇到通讯闪断时,千万别直接重启PLC!先在线监控诊断缓冲区,90%的问题都能在"Online & Diagnostics"里找到故障代码。上周现场遇到个诡异问题,最后发现是交换机端口供电不稳导致Profinet丢包。

开源代码怎么薅

项目里的所有FB块都扔Gitee了(搜索V90_Toolkit),重点看这几个文件:

  • AxisWrapper.scl //轴操作封装库
  • V90Diag.fbd //诊断视图生成器
  • RecipeMgr.db //参数配方管理

建议先拿"SimpleMove"示例程序开刀,这个程序实现了基本点动+绝对定位。改定位参数时注意单位换算,项目里用的是毫米单位制,记得在工艺对象里配置好每转脉冲数。

出口设备1200线体程序,多个plc走通讯,内部有多个v90,采用工艺对象与fb284 共同控制,功能快全部开源,能快速学会v90的控制,

调试时强烈推荐用Trace功能抓取实时曲线,特别是监控ActualPosition和ActualVelocity的跟随情况。遇到过参数自整定后依然震荡的问题,最后把滤波器从二阶改三阶才搞定。

多说一句:V90的111报文别乱改!官方推荐的标准报文已经包含必要控制字,自己瞎改可能触发安全功能。曾经有个兄弟把控制字里的急停位给屏蔽了,结果设备启动直接飙车...

项目源码和调试手册已打包,需要的评论区自取。下期咱们唠唠怎么用SCL实现电子凸轮,比LAD图形编程骚气多了!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐