在工业自动化项目中,西门子S7-1200 PLC与变频器、伺服驱动器的通讯集成是常见需求。最近我完成了一个典型项目,系统包含KTP700触摸屏、2台G120变频器和4台V90伺服驱动器,全部通过Profinet网络实现数据交互。这个案例特别适合需要快速搭建运动控制系统的工程师参考,尤其是那些刚接触TIA Portal平台的开发者。
这个项目的核心价值在于:我已经将变频器和伺服的通讯控制封装成标准功能块(FB),并提供了完整的电气图纸和参数说明。这意味着你可以直接复用这些经过现场验证的代码,省去从零开始调试通讯协议的时间。系统采用TIA Portal V14开发,这也是目前国内工厂最常见的版本之一。
项目硬件配置如下:
选择这些型号主要基于以下考虑:
系统采用单交换机星型拓扑:
code复制[PLC]---[交换机]---[HMI]
|
+-------+-------+
[G120] [G120] [V90]...[V90]
这种结构的优势在于:
注意:实际布线时建议使用西门子专用网线(6XV1840-2AH10),普通网线在工业环境下可能出现通讯不稳定。
新建项目后,首先添加控制器:
添加G120变频器:
添加V90伺服:
配置IP地址:
G120变频器关键参数:
plaintext复制P15 = 3 (PROFINET通讯启停)
P2040 = 100 (过程数据周期,单位ms)
P922 = 1 (使能BICO参数化)
V90伺服关键参数:
plaintext复制P29003 = 3 (控制模式:PROFINET)
P29010 = 1 (使能报文配置)
P29011 = 1 (标准报文3)
我开发的FB_G120包含以下核心功能:
调用示例:
ST复制"FB_G120_DB1"(
Start := "启动按钮",
Stop := "停止按钮",
Speed := "速度设定值",
FaultReset := "复位按钮",
StatusWord => "变频器状态",
ActualSpeed => "实际转速");
FB_V90主要实现:
典型应用场景:
ST复制"FB_V90_DB1"(
Mode := 1, // 1=位置模式
Position := 100.0, // 目标位置100mm
Velocity := 50.0, // 速度50mm/s
Execute := "启动命令",
Done => "定位完成",
Busy => "伺服忙",
Error => "故障状态");
在KTP700上创建以下关键画面:
主监控画面:
参数设置画面:
报警画面:
通讯中断:
伺服使能失败:
变频器报F07900:
完整的项目文档应包括:
电气图纸(PDF+CAD格式)
参数备份(GSD文件+驱动参数)
程序注释规范:
版本控制:
在实际项目中,我习惯将FB块设计成"黑盒"模式,使用者只需关注接口参数而不需要了解内部实现。这种模块化设计使得程序维护和功能扩展变得非常方便。例如当需要增加第三台变频器时,只需实例化新的FB并连接对应IO即可。