☰
西门子S7-1200与V90伺服PTI控制实战指南
2026/10/6 5:31:46 网站建设 项目流程

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 硬件清单与准备

在动手接线之前,先把需要的东西备齐。我列一下我这套配置的清单:

序号名称型号/规格数量备注
1PLC西门子1215C DC/DC/DC1固件V4.5
2伺服驱动器西门子V90 PN版1固件V1.05
3伺服电机西门子1FL6系列1配V90
4开关电源24V/10A1给PLC和驱动器供电
5屏蔽电缆双绞屏蔽线若干脉冲信号用
6断路器根据电机功率选1主回路保护
7编码器电缆V90配套1电机到驱动器

这里重点说一下屏蔽电缆。脉冲信号频率高,抗干扰能力差,如果用普通导线,很容易出现丢脉冲、电机抖动的问题。我试过用普通线临时测试,结果电机走位偏差很大,换成双绞屏蔽线之后立刻稳定了。屏蔽层要单端接地,一般接在驱动器侧。

3.2 V90 PTI接口引脚定义

V90的PTI接口是一个50针的SCSI接口(具体型号是X8),引脚比较多,但点对点控制只需要用到其中几个。我把关键引脚整理成表格:

引脚号信号名称功能说明接PLC侧
1PULSE+脉冲信号正DQ输出点
2PULSE-脉冲信号负0V(公共端)
3DIR+方向信号正DQ输出点
4DIR-方向信号负0V(公共端)
5ENABLE+使能信号正DQ输出点
6ENABLE-使能信号负0V(公共端)
7READY+就绪信号正DI输入点
8READY-就绪信号负0V(公共端)
9ALM+报警信号正DI输入点
10ALM-报警信号负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控制模式11=PTI模式
p29010脉冲当量10000每转脉冲数
p29011电子齿轮比分子1根据实际调整
p29012电子齿轮比分母1根据实际调整
p29020脉冲输入形式00=脉冲+方向
p29021脉冲滤波根据频率设高频时减小
p29030使能信号逻辑11=高电平使能

这里重点解释脉冲当量和电子齿轮比的关系。脉冲当量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。然后在设备视图里配置脉冲输出。具体步骤:

  1. 双击CPU进入设备视图
  2. 在属性面板里找到“脉冲发生器”或者“PTO”选项
  3. 启用PTO1,分配输出点为Q0.0(脉冲)和Q0.1(方向)
  4. 设置脉冲输出格式为“脉冲+方向”
  5. 设置最大频率,一般设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 调试步骤与现场记录

我的调试顺序是这样的:

  1. 静态检查:接线完成后,先不送电,用万用表检查各回路通断,确认没有短路。
  2. 送电测试:先送24V控制电,观察PLC和驱动器指示灯是否正常。V90的READY灯应该亮绿色。
  3. 使能测试:在PLC程序里强制Q0.2输出,听驱动器是否有使能声音(继电器吸合声),同时确认I0.0变为ON。
  4. 点动测试:用MC_MoveJog指令,给一个很小的速度,观察电机是否转动,方向是否正确。
  5. 回零测试:触发回零指令,观察电机是否往原点开关方向走,碰到开关后是否停止并置零。
  6. 定位测试:给一个目标位置,比如100mm,观察电机是否走到位,用尺子量一下实际距离,和理论值对比。
  7. 精度测试:反复走几个位置,记录实际值和理论值的偏差,如果偏差大,调整电子齿轮比或脉冲当量。

我实测下来,这套配置走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 位置偏差大

位置偏差大通常是脉冲当量或电子齿轮比设置不对。排查步骤:

  1. 确认驱动器p29010和工艺对象里的每转脉冲数一致
  2. 确认电子齿轮比计算正确
  3. 检查机械传动比是否和设置的一致
  4. 用实际测量验证:让电机走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方式简单可靠,维护成本低,我觉得是性价比很高的选择。如果你也在做类似的应用,希望这篇记录能帮你少走点弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询