简介:这份文档面向工业自动化工程师、PLC编程人员及高校相关专业学习者,系统讲解V90伺服驱动器与S7-1200 PLC通过FB284功能块实现PROFINET通信的完整方法,解决多轴运动控制中定位精度与通信组态的实际问题。资源包为1个docx文档,大小约7.29MB,内容以图文步骤形式呈现,涵盖V-ASSISTANT参数设置、111报文配置、设备名称与IP地址设定、TIA博途组态、FB284管脚连接及点动与相对定位测试等关键环节。文档详细说明了PTO脉冲控制与PROFINET通信控制的区别,以及工艺对象组态与FB284集成库在轴数支持上的差异,并配有操作截图辅助理解。目前已有1862人学习下载,适合需要快速掌握V90与S7-1200通信配置、排查组态错误或进行运动控制编程实践的读者参考,可作为项目调试与技能提升的实用指南。
1. V90 与 S7-1200 走 PROFINET:为什么 FB284 是那条最稳的路
车间里一台 V90 伺服要跟 S7-1200 联动,很多人第一反应是脉冲控制或者模拟量给定。脉冲方案接线多、抗干扰差,模拟量又容易漂。只要你的 V90 是 PN 版本,驱动器本体带两个 PROFINET 口,最省心的做法就是走 PROFINET 总线,用西门子官方给的 FB284(SINA_SPEED)功能块做速度控制。这套组合在西门子生态里属于标准打法,博途里组态好、报文选对、FB284 一调用,伺服就能按你给的速度转起来,位置反馈、状态字、故障码全在过程映像里,不用额外接线。
这篇讲的就是 V90 伺服驱动器与 S7-1200 通过 FB284 进行 PROFINET 通信的具体方法和步骤。适合两类人:一类是刚上手西门子伺服、手里有 V90 PN 和 1214C/1215C 的调试人员;另一类是以前用脉冲或 Modbus 控 V90、现在想换成总线控制的工程师。整套流程不需要额外网关,不需要写底层报文解析,博途里拖一拖、调一调就能跑通。下面从硬件选型、GSD 组态、报文配置、FB284 调用到排错,一步步拆开讲。
2. 动手前的硬件与软件底账:V90 PN、S7-1200 和博途版本怎么配
2.1 先确认你的 V90 是不是 PN 版本
V90 分脉冲版和 PN 版,外观上 PN 版正面有两个 RJ45 网口,铭牌型号里带 “-1FL6” 且后缀有 “PN”。如果你手里是脉冲版,那这套方案直接不成立,得换驱动器或者改回脉冲控制。PN 版 V90 支持 PROFINET IO 和 PROFIsafe,我们只用它的标准 IO 部分做速度控制。
S7-1200 这边,固件版本建议 V4.0 及以上,CPU 自带 PROFINET 口,1214C 和 1215C 都够用。如果点数多、轴数多,注意 CPU 的 IO 设备数量上限,一个 V90 占一个 IO 设备,1214C 最多带 16 个 IO 设备,一般够。博途版本用 V14 SP1 以上,FB284 在 “工艺对象” 或者 “通信” 库里能找到,不同版本库路径略有差异,但功能块本身没变。
网线用标准工业以太网线,V90 的两个口支持交换机级联,可以手拉手接,也可以各接交换机。IP 地址规划上,S7-1200 和 V90 必须在同一网段,比如 PLC 用 192.168.0.1,V90 用 192.168.0.2,子网掩码 255.255.255.0。V90 的 IP 可以在驱动器面板上设,也可以用博途在线分配,建议面板设好再组态,省得来回改。
2.2 博途里装 GSD 文件和组态 IO 设备
V90 PN 的 GSD 文件在西门子官网能下到,文件名类似 “GSDML-V2.3x-SIEMENS-V90_PN-xxxxxxxx.xml”。博途里点 “选项 → 管理通用站描述文件”,选 GSD 文件所在目录,勾选安装。装完后在硬件目录的 “其他现场设备 → PROFINET IO → Drives → SIEMENS AG → V90 PN” 下面就能看到。
组态步骤:新建项目,添加 S7-1200 CPU,然后在 “设备与网络” 视图里,从硬件目录把 V90 PN 拖到网络视图,用鼠标把 V90 的 PROFINET 口连到 CPU 的 PROFINET 口。双击 V90 的图标,在 “设备概览” 里设置设备名称和 IP 地址。设备名称必须和后面在线分配的一致,建议用 “v90-1” 这种简单名,别用中文和特殊字符。
提示:设备名称是 PROFINET 通信的身份证,名字对不上,PLC 就找不到 V90,BF 灯会闪红。
2.3 报文选择:标准报文 1 还是 2
V90 PN 支持多种标准报文,速度控制最常用的是标准报文 1(Standard Telegram 1)和标准报文 2。报文 1 是 2 个字的速度给定加 2 个字的状态反馈,报文 2 多了位置反馈。如果你只做速度控制,报文 1 就够;如果后面要切位置模式或者读编码器值,直接上报文 2 或 3。
在 V90 的设备概览里,找到 “标准报文” 那一行,下拉选 “标准报文 1”。选完后,博途会自动分配 IO 地址,记下输入地址和输出地址,比如输出从 Q64.0 开始,输入从 I68.0 开始,后面写程序要用。地址可以在 “系统常数” 里看,也可以直接看设备概览的 “地址” 列。
| 报文类型 | 输出长度 | 输入长度 | 典型用途 |
|---|---|---|---|
| 标准报文 1 | 2 字 | 2 字 | 速度控制 |
| 标准报文 2 | 2 字 | 4 字 | 速度+位置反馈 |
| 标准报文 3 | 2 字 | 5 字 | 速度+位置+扭矩 |
选完报文后,编译项目,把硬件组态下载到 PLC。下载前先把 V90 的 IP 和设备名称在线分配好:在博途里点 “在线 → 分配设备名称”,选 V90,分配 “v90-1”,再分配 IP 地址。分配成功后,V90 的 RDY 灯和 BF 灯状态会变,BF 灭掉说明 PROFINET 通信建立。
3. FB284 调用与速度控制程序:从管脚定义到实际转起来
3.1 FB284 的管脚含义和最小调用
FB284 是西门子封装的 SINA_SPEED 功能块,内部帮你处理了 PROFINET 报文的映射和状态机。在博途里打开 “程序块 → 新增块 → 函数块”,语言选 SCL 或 LAD 都行,然后在 “指令 → 工艺 → 通信 → SINA_SPEED” 里把 FB284 拖到程序里。系统会提示生成背景数据块,确认即可。
FB284 的关键管脚:
Mode:控制模式,速度控制填 1,位置控制填 2 或 3。Speed:速度给定,单位是 4000 进制,对应 100% 额定转速。比如额定 3000 rpm,给 2000 就是 1500 rpm。EnableAxis:使能轴,上升沿有效,必须为 1 才输出。CancelTraversing:取消运行,一般给 0。Jog1/Jog2:点动,不用给 0。AckError:故障确认,上升沿复位故障。HWIDSTW/HWIDZSW:硬件标识符,填 V90 的报文地址对应的硬件 ID,在设备概览里能看到。
最小调用示例(SCL):
// FB284 速度控制最小调用 "FB284_DB"(Mode := 1, Speed := 2000, EnableAxis := "Enable", CancelTraversing := FALSE, Jog1 := FALSE, Jog2 := FALSE, AckError := "Ack", HWIDSTW := 268, // 输出报文硬件ID,按实际填 HWIDZSW := 269); // 输入报文硬件ID,按实际填逻辑说明:Mode=1告诉 FB284 走速度模式,Speed=2000是 50% 额定转速,EnableAxis给 1 后轴使能,V90 会按给定速度转。HWIDSTW和HWIDZSW是博途自动分配的硬件标识符,在设备概览的 “系统常数” 里查,填错会报 “硬件 ID 无效”。
参数说明:Speed的 4000 进制是西门子伺服的标准,4000 对应 100%,-4000 对应 -100%。如果你给 4000,V90 按额定转速跑;给 2000,跑一半。实际转速 = 额定转速 × Speed / 4000。EnableAxis建议用常开点串一个急停,急停拍下时切断使能,伺服自由停车。
3.2 状态字和故障码怎么读
FB284 的输出管脚里,Status是状态字,Error是故障位,ErrorID是故障码。状态字每一位含义不同,比如 bit0 表示轴使能,bit1 表示运行就绪,bit2 表示故障。调试时最有用的是Error和ErrorID,一旦Error为 1,ErrorID会给出具体代码,比如 16#8001 表示使能超时,16#8005 表示报文配置错误。
读状态字可以用 MOVE 指令把Status传到 MW 里,再用位逻辑判断。比如:
// 读状态字判断轴是否就绪 "AxisReady" := "FB284_DB".Status.%X1; // bit1 运行就绪 "AxisFault" := "FB284_DB".Status.%X2; // bit2 故障逻辑说明:Status.%X1是状态字的 bit1,为 1 表示 V90 已经准备好接收速度给定。Status.%X2为 1 表示有故障,此时ErrorID有效。调试时先看AxisReady是否为 1,不为 1 就查使能和报文。
参数说明:状态字是实时刷新的,每个扫描周期更新一次。如果AxisReady一直为 0,先检查EnableAxis是否给 1,再检查 V90 面板是否显示 “S OFF” 或 “S ON”,面板显示 “S ON” 才说明使能到位。
3.3 速度给定的标定和实际转速验证
速度给定标定很简单:Speed给 4000,V90 按额定转速跑。但实际转速受负载和加减速时间影响,V90 内部有斜坡函数,默认加减速时间可能比较长。如果发现给定 4000 但电机慢慢才起来,去 V90 的参数里调加减速时间,或者用 FB284 的OverRide管脚做倍率。
验证方法:在博途里监控FB284_DB的Speed和 V90 面板的实际转速显示,给 2000 时面板应显示 50% 额定转速。如果面板显示 0 但Speed有值,检查EnableAxis和Mode,Mode填错会导致给定无效。
注意:V90 的额定转速在驱动器参数 p29060 里看,不同电机型号不一样,标定时以实际铭牌为准。
4. 避坑与排查:V90 走 PROFINET 最常见的 5 个翻车点
4.1 设备名称对不上,BF 灯常亮
现象:PLC 下载后,V90 的 BF 灯红色常亮,博途在线看 V90 显示 “不可用”。
原因:PROFINET 靠设备名称寻址,组态里写的名称和实际分配的名称不一致,或者根本没分配。
解决:在博途 “在线 → 分配设备名称” 里,选 V90 的 MAC 地址,分配和组态一致的名称,比如 “v90-1”。分配成功后 BF 灯灭。如果分配时找不到设备,检查网线是否插在 V90 的 PN 口上,以及电脑和 V90 是否同网段。
4.2 报文选错,FB284 报硬件 ID 无效
现象:FB284 调用后Error为 1,ErrorID显示 16#8005 或类似代码,PLC 信息里提示 “硬件标识符不存在”。
原因:报文类型和 FB284 不匹配,或者HWIDSTW/HWIDZSW填了错误的硬件 ID。
解决:确认 V90 组态里选的是标准报文 1 或 2,然后在设备概览的 “系统常数” 里找对应的硬件标识符,重新填入 FB284。改完编译下载,故障复位。
4.3 使能给了但电机不转,面板显示 S OFF
现象:EnableAxis给 1,Speed给 2000,但电机不转,V90 面板显示 “S OFF”。
原因:V90 的使能需要两个条件,一是 PROFINET 报文的控制字使能,二是驱动器本身的硬件使能。如果 V90 的 STO 或者使能端子没接,面板会显示 S OFF。
解决:检查 V90 的 X8 端子,PN 版 V90 的使能可以通过报文控制,但有些型号需要短接 STO 或者给使能端子 24V。查 V90 手册的端子定义,确保硬件使能到位。
4.4 速度给定有值但实际转速偏差大
现象:Speed给 4000,面板显示转速只有额定的一半。
原因:V90 的额定转速参数和实际电机不匹配,或者加减速时间太长导致还没到给定值。
解决:查 V90 参数 p29060 确认额定转速,检查 p1120 / p1121 加减速时间,适当减小。如果负载惯量大,加减速时间不能太小,否则会报过流。
4.5 通信偶尔中断,BF 灯闪一下又恢复
现象:运行中 V90 偶尔掉站,BF 灯闪红后自动恢复,PLC 报 “IO 设备故障”。
原因:网线屏蔽不好、交换机带宽不够、或者 V90 和 PLC 的 IP 冲突。
解决:换屏蔽网线,检查交换机是否支持 PROFINET 实时通信,V90 和 PLC 的 IP 不要和车间其他设备冲突。如果轴数多,建议用西门子专用的 PROFINET 交换机。
5. 进阶:用 FB284 做多轴联动和位置模式切换的实操技巧
5.1 多轴联动时 FB284 的调用节奏
一台 S7-1200 带多台 V90 时,FB284 要每个轴一个背景数据块,不能共用。调用时注意扫描周期,如果轴数多,建议把 FB284 放在循环中断 OB 里,比如 OB35,周期设 4ms 或 8ms,保证速度给定刷新及时。多轴联动时,各轴的EnableAxis要同时给,避免先后使能导致机械别劲。
// 多轴联动:两个 V90 同时使能 "FB284_Axis1"(Mode := 1, Speed := 2000, EnableAxis := "EnableAll", ...); "FB284_Axis2"(Mode := 1, Speed := 2000, EnableAxis := "EnableAll", ...);逻辑说明:EnableAll是一个全局变量,两个 FB284 共用,保证同时使能。Speed可以分别给不同值,做差速联动。
参数说明:循环中断的周期根据轴数和机械响应定,一般 4ms 够用。如果轴数超过 4 个,考虑用 8ms 或换 1500 CPU。
5.2 从速度模式切到位置模式的注意事项
FB284 的Mode管脚可以在运行时切换,但切换前必须先把EnableAxis降下来,等轴停止后再切Mode,然后再使能。直接在线切Mode会导致 V90 报故障。位置模式下Speed管脚变成位置给定,单位是 LU(长度单位),具体换算看 V90 的机械参数设置。
切换步骤:EnableAxis := FALSE→ 等Status的 bit1 变 0 → 改Mode := 2→EnableAxis := TRUE→ 给位置给定。位置模式下的速度限制用OverRide管脚,别用Speed。
5.3 用 Trace 抓 FB284 的给定和反馈
博途的 Trace 功能可以同时抓FB284_DB.Speed、Status和 V90 的实际转速,采样周期设 1ms,抓 10 秒。看给定和反馈的跟随误差,如果误差大,调 V90 的增益参数 p29120 和 p29121。Trace 是调伺服的后悔药,很多玄学问题抓一次波形就清楚了。
我自己的习惯是:每次新项目第一次上电,先不接机械负载,空载跑一遍 Trace,确认给定和反馈跟得上,再连机械。这样能避开大部分因为参数没调好导致的过流和过载。希望帮到你。
本文还有配套的精品资源,点击获取