1. 为什么这套组合值得单独写一篇实操记录
西门子S7-1200系列PLC搭配V90伺服驱动器,在中小型自动化设备里算是非常常见的一套组合。尤其是1215C DC/DC/DC这个型号,本体自带脉冲输出功能,做点对点(PTO)位置控制的时候,不需要额外加定位模块,硬件成本能压下来不少。但实际做项目的时候我发现,很多人卡在几个地方:一是PTI接线到底怎么接,手册翻来翻去还是不确定;二是PLC侧和驱动器侧的参数怎么对应,脉冲当量、电子齿轮比这些概念容易绕晕;三是调试阶段电机不动或者方向反了,不知道从哪查起。
这篇内容就是把我自己从选型、接线、组态、编程到联调整个流程踩过的坑和验证过的做法整理出来。适合刚接触伺服控制的朋友,也适合之前只用过变频器做速度控制、现在要升级到位置控制的同行。整套方案的核心思路是:用1215C本体集成的脉冲输出点,通过PTI(Pulse Train Input)接口直接驱动V90,位置环在驱动器内部闭合,PLC只负责发脉冲和方向信号。这种点对点控制方式结构简单、响应快,在单轴定位场景里性价比很高。
需要提前说明的是,下面涉及的具体参数值是基于我手头这台V90 PN版(固件版本V1.05)和1215C DC/DC/DC(固件V4.5)实测整理的,不同固件版本菜单路径可能略有差异,但核心逻辑一致。接线图我会用文字加表格的方式详细说明,方便你直接对照操作。
2. 方案选型与核心思路拆解
2.1 为什么选1215C DC/DC/DC而不是其他型号
S7-1200系列里,CPU 1215C DC/DC/DC这个型号有几个关键特性值得关注。首先是本体集成4路高速脉冲输出,支持PTO(Pulse Train Output)模式,最高频率可以到100kHz(具体取决于固件版本和输出点),对于大多数中小型伺服应用来说够用了。其次是集成14点DI和10点DQ,做点对点控制的时候,除了脉冲和方向信号,通常还需要使能、报警复位、限位这些辅助信号,本体点数基本能覆盖,不用额外扩展模块。
对比一下其他方案:如果用1214C,脉冲输出路数少一些,做单轴够用但扩展性差;如果用1212C,点数更紧张。1215C算是性能和成本比较平衡的选择。另外DC/DC/DC意味着数字量输入是24V直流,数字量输出是晶体管输出(不是继电器),这一点很关键——只有晶体管输出才能发高速脉冲,继电器输出频率跟不上,这点新手容易忽略。
V90这边,我选的是PN版(PROFINET接口),但这次用的是PTI控制方式,也就是走脉冲+方向信号。为什么不直接用PROFINET总线控制?因为总线控制需要配置工艺对象、组态报文,调试门槛更高,而且对于单轴简单定位来说,PTI方式响应更直接,编程也更直观。当然如果你后续要扩展多轴或者做插补,那还是建议走总线。
2.2 PTI控制的核心原理
PTI全称Pulse Train Input,翻译过来就是脉冲串输入。它的工作逻辑是这样的:PLC的脉冲输出点按照设定的频率发出脉冲,脉冲的数量决定电机转动的角度(位置),脉冲的频率决定电机转动的速度。方向信号则是一个高低电平,决定电机正转还是反转。
这里有个关键概念叫电子齿轮比。V90驱动器内部会把接收到的脉冲数按照电子齿轮比进行换算,再对应到电机的实际转数。举个例子:如果电机编码器是20位(1048576脉冲/转),而你希望PLC发10000个脉冲电机转一圈,那电子齿轮比就要设置成让驱动器把10000个输入脉冲对应到1048576个编码器脉冲。这个比值设置对了,位置控制才准确。
注意:电子齿轮比的分子分母设置不当,会导致电机实际走的距离和理论计算不符,或者出现电机抖动、异响。建议先用默认值测试,确认基本动作后再精调。
2.3 整体控制架构
整套系统的信号流向是这样的:PLC程序里用工艺对象或者直接指令控制脉冲输出→脉冲和方向信号通过屏蔽电缆传到V90的PTI接口→V90内部完成位置环和速度环控制→驱动电机运动。同时,V90的报警信号、到位信号可以反馈回PLC的输入点,形成闭环监控。
这种架构的好处是PLC的扫描周期不影响位置控制精度,因为位置环在驱动器内部以很高的频率闭合,PLC只负责发指令。缺点是PLC无法实时知道电机当前的确切位置(除非读编码器反馈),但对于点对点定位来说,通常只需要知道“到了没有”,用到位信号就够了。
3. 硬件接线详解与PTI接口说明
3.1 硬件清单与准备
在动手接线之前,先把需要的东西备齐。我列一下我这套配置的清单:
| 序号 | 名称 | 型号/规格 | 数量 | 备注 |
|---|---|---|---|---|
| 1 | PLC | 西门子1215C DC/DC/DC | 1 | 固件V4.5 |
| 2 | 伺服驱动器 | 西门子V90 PN版 | 1 | 固件V1.05 |
| 3 | 伺服电机 | 西门子1FL6系列 | 1 | 配V90 |
| 4 | 开关电源 | 24V/10A | 1 | 给PLC和驱动器供电 |
| 5 | 屏蔽电缆 | 双绞屏蔽线 | 若干 | 脉冲信号用 |
| 6 | 断路器 | 根据电机功率选 | 1 | 主回路保护 |
| 7 | 编码器电缆 | V90配套 | 1 | 电机到驱动器 |
这里重点说一下屏蔽电缆。脉冲信号频率高,抗干扰能力差,如果用普通导线,很容易出现丢脉冲、电机抖动的问题。我试过用普通线临时测试,结果电机走位偏差很大,换成双绞屏蔽线之后立刻稳定了。屏蔽层要单端接地,一般接在驱动器侧。
3.2 V90 PTI接口引脚定义
V90的PTI接口是一个50针的SCSI接口(具体型号是X8),引脚比较多,但点对点控制只需要用到其中几个。我把关键引脚整理成表格:
| 引脚号 | 信号名称 | 功能说明 | 接PLC侧 |
|---|---|---|---|
| 1 | PULSE+ | 脉冲信号正 | DQ输出点 |
| 2 | PULSE- | 脉冲信号负 | 0V(公共端) |
| 3 | DIR+ | 方向信号正 | DQ输出点 |
| 4 | DIR- | 方向信号负 | 0V(公共端) |
| 5 | ENABLE+ | 使能信号正 | DQ输出点 |
| 6 | ENABLE- | 使能信号负 | 0V(公共端) |
| 7 | READY+ | 就绪信号正 | DI输入点 |
| 8 | READY- | 就绪信号负 | 0V(公共端) |
| 9 | ALM+ | 报警信号正 | DI输入点 |
| 10 | ALM- | 报警信号负 | 0V(公共端) |
实际接线的时候,PULSE和DIR是必须的,ENABLE建议接上,这样PLC可以控制驱动器使能。READY和ALM是反馈信号,接上之后PLC能知道驱动器状态,调试和排查问题的时候很有用。
提示:不同版本的V90,PTI接口引脚定义可能有细微差异,接线前务必对照你手头驱动器的说明书确认。我曾经因为参考了旧版手册,把DIR+和DIR-接反了,结果电机方向不受控,查了半天才发现是引脚定义变了。
3.3 PLC侧接线要点
1215C DC/DC/DC的脉冲输出点是有固定分配的。根据西门子官方文档,CPU 1215C的脉冲输出点默认是Q0.0到Q0.3这四路。我这次用Q0.0做脉冲输出,Q0.1做方向输出,Q0.2做使能输出。
接线的时候注意几点:
- 公共端接法:晶体管输出是PNP型(源型输出),公共端1M接24V负极(0V),输出点导通时输出24V正电压。所以V90侧的PULSE-、DIR-、ENABLE-要接到0V,形成回路。
- 限流电阻:V90的PTI输入口内部有光耦,一般不需要额外加限流电阻,但如果你的PLC输出电流较大,建议串一个1kΩ左右的电阻保护一下。
- 屏蔽层处理:脉冲和方向信号的屏蔽层接在V90侧的金属外壳上,PLC侧悬空,避免形成地环路。
我实际接线的时候,用的是PLC自带的24V输出给V90的使能信号供电,但脉冲和方向信号是单独走的屏蔽线。这里有个细节:PLC的24V输出容量有限,如果同时给多个信号供电,要注意总电流不要超过额定值。1215C的24V输出最大好像是400mA(具体查手册),带几个光耦没问题,但别接大负载。
3.4 完整接线图说明
由于不能画图,我用文字描述一下完整的接线关系:
主回路部分:三相电源经过断路器接到V90的L1、L2、L3,V90的U、V、W接到电机。这部分按常规接线,注意相序不要接错。
控制回路部分:
- 24V开关电源的正极接到PLC的L+和V90的24V输入正极
- 24V开关电源的负极接到PLC的M和V90的0V
- PLC的Q0.0接到V90的引脚1(PULSE+)
- PLC的Q0.1接到V90的引脚3(DIR+)
- PLC的Q0.2接到V90的引脚5(ENABLE+)
- V90的引脚2、4、6接到0V
- V90的引脚7(READY+)接到PLC的I0.0
- V90的引脚9(ALM+)接到PLC的I0.1
- V90的引脚8、10接到0V
这样接完之后,PLC可以通过Q0.0发脉冲、Q0.1控方向、Q0.2控使能,同时通过I0.0和I0.1读取驱动器状态。
4. 驱动器参数设置与PLC组态
4.1 V90驱动器关键参数设置
V90的参数可以通过面板操作,也可以用V-ASSISTANT软件。我建议用软件,因为参数多,面板操作太慢。关键参数如下:
| 参数号 | 名称 | 设置值 | 说明 |
|---|---|---|---|
| p29003 | 控制模式 | 1 | 1=PTI模式 |
| p29010 | 脉冲当量 | 10000 | 每转脉冲数 |
| p29011 | 电子齿轮比分子 | 1 | 根据实际调整 |
| p29012 | 电子齿轮比分母 | 1 | 根据实际调整 |
| p29020 | 脉冲输入形式 | 0 | 0=脉冲+方向 |
| p29021 | 脉冲滤波 | 根据频率设 | 高频时减小 |
| p29030 | 使能信号逻辑 | 1 | 1=高电平使能 |
这里重点解释脉冲当量和电子齿轮比的关系。脉冲当量p29010设置的是“电机转一圈需要多少个脉冲”。如果你设成10000,那PLC发10000个脉冲,电机就转一圈。电子齿轮比是在此基础上做微调,比如机械结构需要电机转2圈工作台走1mm,那可以通过电子齿轮比来补偿。
我一般先把p29010设成10000,电子齿轮比设1:1,测试基本动作。确认没问题后,再根据实际机械传动比精调。比如丝杠导程是10mm,电机转一圈工作台走10mm,那10000个脉冲对应10mm,每个脉冲对应0.001mm,这个精度对大多数应用够了。
注意:修改参数后需要保存并重启驱动器才生效。我有一次改完参数直接测试,发现没变化,以为参数错了,后来才发现是没重启。
4.2 PLC侧硬件组态
在TIA Portal里新建项目,添加1215C DC/DC/DC。然后在设备视图里配置脉冲输出。具体步骤:
- 双击CPU进入设备视图
- 在属性面板里找到“脉冲发生器”或者“PTO”选项
- 启用PTO1,分配输出点为Q0.0(脉冲)和Q0.1(方向)
- 设置脉冲输出格式为“脉冲+方向”
- 设置最大频率,一般设100kHz
组态完成后,系统会自动分配工艺对象或者你可以用指令直接控制。我这次用的是工艺对象(Technology Object)方式,因为TIA Portal对工艺对象的支持比较完善,编程更直观。
4.3 工艺对象配置要点
添加一个“定位轴”工艺对象,然后配置以下参数:
- 驱动器类型:选择“PTO”或者“脉冲接口”
- 脉冲输出:选择之前组态的PTO1
- 机械参数:设置丝杠导程、减速比等
- 位置限制:设置软限位,防止撞机
- 速度限制:设置最大速度,保护电机
机械参数这块要仔细填。比如丝杠导程填10mm,减速比填1:1,那工艺对象会自动计算脉冲当量。如果你前面在驱动器里已经设了脉冲当量,这里要对应上,否则位置计算会错。
我踩过的坑是:工艺对象里的“每转脉冲数”和驱动器里的p29010必须一致。有一次我驱动器设的10000,工艺对象里默认是4096,结果电机走的距离只有理论值的40%左右,查了好久才发现是这个不匹配。
5. 程序编写与调试实操
5.1 基本控制程序框架
程序结构我一般分成三块:使能控制、运动控制、状态监控。
使能控制比较简单,用一个按钮控制Q0.2输出,同时检测I0.0(READY信号)确认驱动器就绪。这里加一个延时,等驱动器准备好之后再发运动指令。
运动控制用工艺对象的指令块,比如MC_Power、MC_MoveAbsolute、MC_MoveRelative、MC_Home等。这些指令块在TIA Portal的“工艺”库里有现成的,直接拖出来用。
状态监控就是读I0.1(ALM信号),如果报警了,程序里做相应处理,比如停止运动、输出报警指示。
5.2 回零与定位程序
回零是伺服控制里比较关键的一步。V90支持多种回零方式,我常用的是主动回零,就是PLC控制电机往一个方向走,碰到原点开关后停止,然后把当前位置设为零点。
程序里用MC_Home指令,配置好回零模式和原点开关输入点。回零速度要设慢一点,避免冲过原点。我一般设成正常速度的10%左右。
定位程序用MC_MoveAbsolute,给定目标位置和速度。位置值根据工艺对象的单位来,如果工艺对象设的是mm,那直接填mm数就行。
提示:第一次调试的时候,建议先用MC_MoveJog手动点动,确认电机方向、速度都正常,再跑自动程序。直接跑定位程序万一方向反了,很容易撞限位。
5.3 调试步骤与现场记录
我的调试顺序是这样的:
- 静态检查:接线完成后,先不送电,用万用表检查各回路通断,确认没有短路。
- 送电测试:先送24V控制电,观察PLC和驱动器指示灯是否正常。V90的READY灯应该亮绿色。
- 使能测试:在PLC程序里强制Q0.2输出,听驱动器是否有使能声音(继电器吸合声),同时确认I0.0变为ON。
- 点动测试:用MC_MoveJog指令,给一个很小的速度,观察电机是否转动,方向是否正确。
- 回零测试:触发回零指令,观察电机是否往原点开关方向走,碰到开关后是否停止并置零。
- 定位测试:给一个目标位置,比如100mm,观察电机是否走到位,用尺子量一下实际距离,和理论值对比。
- 精度测试:反复走几个位置,记录实际值和理论值的偏差,如果偏差大,调整电子齿轮比或脉冲当量。
我实测下来,这套配置走100mm,实际偏差在0.05mm以内,重复定位精度也不错。对于大多数包装、搬运、切割类应用足够了。
5.4 参数计算实例
假设你的机械结构是:丝杠导程5mm,减速比2:1(电机转2圈,丝杠转1圈),要求定位精度0.01mm。
计算过程:
- 电机转一圈,丝杠转0.5圈,工作台走2.5mm
- 要定位精度0.01mm,那电机转一圈需要分成2.5/0.01=250份
- 所以脉冲当量至少设250,但实际一般取整,设成1000或者10000
- 如果设10000,那每个脉冲对应2.5/10000=0.00025mm,远高于要求的0.01mm,没问题
电子齿轮比如果设1:1,那PLC发10000个脉冲,电机转一圈,工作台走2.5mm。如果你想让PLC发10000个脉冲工作台走10mm,那电子齿轮比要设成4:1(分子4,分母1)。
这个计算逻辑你套用到自己的设备上就行。
6. 常见问题与排查技巧实录
6.1 电机不转或抖动
这是最常见的问题,原因可能有以下几种:
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| 电机完全不转 | 使能信号没给 | 检查Q0.2输出和I0.0状态 |
| 电机完全不转 | 脉冲信号没输出 | 用示波器测Q0.0是否有脉冲 |
| 电机抖动不转 | 脉冲频率太高 | 降低速度试试 |
| 电机抖动不转 | 电子齿轮比设置错误 | 恢复默认值测试 |
| 电机抖动不转 | 接线干扰 | 检查屏蔽层接地 |
我遇到过一次电机抖动,查了半天发现是脉冲线太长(超过5米),而且没屏蔽,换成屏蔽线并缩短到2米后正常了。所以脉冲信号线尽量短,且必须屏蔽。
6.2 方向反了怎么办
方向反了有两种改法:一是把DIR+和DIR-对调,二是改驱动器参数里的方向取反位。我一般改参数,因为改接线麻烦。V90里有个参数p29020可以设置方向取反。
还有一种情况是方向信号正常但电机走的方向和预期相反,那可能是机械安装方向的问题,这种就要改程序里的方向逻辑或者改机械。
6.3 位置偏差大
位置偏差大通常是脉冲当量或电子齿轮比设置不对。排查步骤:
- 确认驱动器p29010和工艺对象里的每转脉冲数一致
- 确认电子齿轮比计算正确
- 检查机械传动比是否和设置的一致
- 用实际测量验证:让电机走10圈,量工作台实际移动距离,反推脉冲当量
我有一次偏差了整整一倍,后来发现是减速比设反了,本来应该是2:1,我设成了1:2。
6.4 报警代码处理
V90报警时,面板会显示报警代码。常见的有:
- F31100:过流,检查电机线是否短路
- F31101:过压,检查供电电压是否过高
- F7452:位置偏差过大,检查脉冲当量设置
- F8501:通讯故障,检查PTI接线
报警后需要断电重启或者用报警复位信号清除。程序里我一般加一个复位按钮,触发ALM复位。
提示:调试阶段建议把驱动器的报警输出接到PLC,这样程序里能实时监控,出问题第一时间知道。
6.5 干扰问题排查
伺服系统对干扰比较敏感,常见干扰源有变频器、继电器、接触器。排查方法:
- 脉冲线远离动力线,至少保持20cm距离
- 屏蔽层单端接地
- 在驱动器电源输入端加滤波器
- PLC和驱动器共地
我有个项目现场,旁边有台大功率变频器,一开始电机总是偶尔丢步,后来把脉冲线换成双绞屏蔽线并单独走线槽,问题就解决了。
7. 实操心得与扩展建议
这套1215C加V90的PTI控制方案,我从第一次接触到现在做了不下十个项目,有几个心得值得分享。
第一,接线一定要规范。我见过太多因为接线不规范导致的奇怪问题,比如电机偶尔抖动、定位偶尔偏差。后来我养成了习惯:所有信号线必须屏蔽,屏蔽层必须接地,线号必须标清楚。这些看似麻烦,但能省下大量排查时间。
第二,参数备份很重要。V90的参数调好之后,一定要用V-ASSISTANT软件备份一份。我有一次现场调试完忘了备份,后来驱动器故障更换,所有参数要重新设,花了整整半天。现在我的习惯是每调好一台设备,参数文件立刻存两份,一份在电脑,一份在U盘。
第三,先手动后自动。调试的时候千万别一上来就跑自动程序。先用点动确认方向、速度正常,再跑回零,最后跑定位。这个顺序能避免大部分撞机事故。
第四,留余量。选型的时候,脉冲输出频率、电流、点数都要留20%以上的余量。比如你算下来需要80kHz脉冲频率,那就选支持100kHz的。余量足了,后续扩展或者工况变化都不怕。
第五,文档要写。每次做完项目,把接线图、参数表、程序框架整理成文档。下次做类似项目直接参考,效率能提高一倍。我现在手头有一套自己的模板,新项目改改就能用。
这套方案后续还可以扩展,比如加一个编码器反馈做全闭环,或者换成总线控制做多轴联动。但就单轴点对点定位来说,PTI方式简单可靠,维护成本低,我觉得是性价比很高的选择。如果你也在做类似的应用,希望这篇记录能帮你少走点弯路。