『7x24小时有问必答』
  

博途里组态了S7-1200的PTO轴,程序写了MC_MoveAbsolute,下载之后轴纹丝不动?好不容易使能成功了,跑起来位置偏得一塌糊涂,齿轮比算到怀疑人生?

更别提回原点、限位、加减速……一堆参数摆在那里,根本不知道从哪下手。

一、先搞清楚:S7-1200运动控制的"家底"

S7-1200的运动控制,核心就两件事:发脉冲 —— PTO(Pulse Train Output)管脉冲 —— 工艺对象(Technology Object)
打个比方:PTO是"嘴巴",负责喊"走一步、走两步";工艺对象是"大脑",负责算"走多快、走多远、什么时候停"。光有嘴巴没有大脑,喊出来的就是乱码;光有大脑没有嘴巴,想好了也白搭。

1.1 PTO到底能干嘛?

S7-1200的晶体管输出型CPU(DC/DC/DC),本体上的特定输出点(如Q0.0、Q0.1等)可以输出高速脉冲。

CPU型号
PTO最高频率
最多可用轴数
1211C DC/DC/DC
100kHz
2轴
1212C DC/DC/DC
100kHz
2轴
1214C DC/DC/DC
100kHz
4轴
1215C DC/DC/DC
100kHz
4轴
️ 关键提醒:只有DC/DC/DC型号才有PTO功能,继电器型(DC/DC/RLY)不支持!PTO占用的输出点不能当普通DO用,一旦组态为PTO,这个点就专用于脉冲输出。1214C最多支持4轴,别贪多组态,超了系统不认。
  

1.2 工艺对象是啥?

在博途里,工艺对象(TO)就是把一个物理轴的所有控制逻辑打包成一个数据块来管理。不需要自己写脉冲发生、加减速计算、位置跟踪这些底层代码——工艺对象全包了。
S7-1200支持的轴类工艺对象:
工艺对象
功能
适用场景
TO_Axis_PTO
脉冲接口轴(基础轴)
步进电机、简易伺服定位
TO_PositioningAxis
定位轴(继承基础轴)
需要精确定位的场合
TO_SpeedAxis
速度轴
只控速度不控位置,如传送带
TO_SynchronousAxis
同步轴
电子齿轮、主从同步
TO_ExternalEncoder
外部编码器
只做位置检测,不驱动电机
继承关系一句话记住:速度轴 ← 定位轴 ← 同步轴。功能越往上越强,参数也越多。大多数定位场景,用定位轴(TO_PositioningAxis) 就够了。

二、组态实战:从零配出一个能跑的定位轴

第一步:硬件组态——启用PTO

打开博途 → 设备视图 → 双击CPU属性 → 常规 → 找到"高速计数器/脉冲发生器"勾选你要用的PTO通道(如PTO1 → Q0.0),工作模式选"PTO"
关键参数:
参数
说明
建议值
时基
脉冲频率精度单位
选"微秒",精度更高
初始脉冲频率
启动频率
设低一些(如500Hz),防止丢步
最大脉冲频率
速度上限
根据电机和驱动器能力设置,如10000Hz
方向输出
指定一个DO点控制方向
如Q0.4,高电平正转/低电平反转
️ 踩坑警告: 方向输出点必须是未被PTO占用的普通DO点。如果你把Q0.0~Q0.3都给了PTO,那方向点只能用Q0.4及以后的。

第二步:创建工艺对象

项目树 → 工艺对象 → 右键"新增对象"选择 TO_Axis_PTO(或 TO_PositioningAxis)命名(如"X_Axis"),确认

第三步:配置轴参数

进入工艺对象的参数视图,你会看到四大配置区域:
① 基本参数常规:选择脉冲输出通道、方向输出点驱动器:选择驱动接口类型为"PTO"
② 扩展参数机械参数(最核心!):
参数
含义
举例
电机每转的脉冲数
驱动器接收多少脉冲电机转一圈
步进电机通常设1000~10000(细分后)
电机每转的负载位移
电机转一圈,负载走多远
丝杠导程5mm就填5.0mm
所允许的旋转方向
双向/仅正向/仅反向
一般选"双向"

齿轮比换算口诀:电机转一圈发多少脉冲 → 看驱动器细分设置电机转一圈负载走多少 → 看丝杠导程或皮带周长两者一除 → 得到"每个脉冲对应多少毫米"比如:驱动器细分10000脉冲/圈,丝杠导程5mm → 每个脉冲=0.0005mm

位置限制
参数
作用
最小/最大硬件限位
接外部限位开关的输入点,碰到就急停
最小/最大软件限位
在程序里设定的安全范围,不接物理开关也能保护
③ 动态参数
参数
含义
建议
最大速度
轴允许的最高速度(工程单位/秒)
不超过电机额定转速对应的速度
起始速度
启动时的初始速度
设低一些,防丢步
最大加速度
速度变化的快慢
根据负载惯量调,太大振动、太小响应慢
最大减速度
停止时的减速快慢
通常≥加速度
急停减速度
急停时的减速快慢
设最大安全值
④ 回原点参数
模式
说明
适用场景
主动回原点
轴自己找原点开关
有原点传感器的设备
被动回原点
外部信号触发后设当前位置为零点
简单定位、无传感器场景
直接设零点
MC_Home指令直接指定
调试阶段临时使用

三、编程实战:五大核心指令搞定一切

工艺对象组态完成后,编程就简单了——调用PLCopen标准的运动控制指令即可。这些指令在博途指令库 → 工艺 → 运动控制 目录下。

3.1 MC_Power —— 轴使能

这是一切的起点。不使能,轴就不动。
要点:Enable 置 TRUE 后,等待 Status 变为 TRUE,表示使能成功bDriveMeanReady:对于PTO轴,一般直接给TRUE(表示"驱动器准备好了")使能失败?检查:①PTO组态是否正确 ②方向输出点是否冲突 ③限位是否触发

3.2 MC_MoveAbsolute —— 绝对定位

走到指定位置,最常用。
要点:Position 是工程单位(mm),不是脉冲数!工艺对象自动换算Execute 需要上升沿触发,建议用按钮的上升沿或中间继电器的上升沿定位完成后 Done 输出 TRUE

3.3 MC_MoveRelative —— 相对定位

在当前位置基础上再走一段距离。
适用场景:  点动微调、增量进给、不确定绝对位置的场合。

3.4 MC_MoveVelocity —— 恒速运行

不限位置,一直以设定速度跑,直到被停止。
适用场景:  传送带、送料机构等不需要精确定位但需要控速的场景。

3.5 MC_Home —— 回原点

️ 回原点顺序不能错:上电 → MC_Power使能 → MC_Home回零 → 才能开始定位没有回零就定位,位置基准是乱的,走到哪算哪。

3.6 MC_Stop / MC_Halt —— 停止

指令
效果
场景
MC_Stop
按急停减速度停止,轴进入"停止"状态
急停、故障处理
MC_Halt
按正常减速度暂停,可随时恢复运动
暂停、等待信号

四、完整程序框架示例

  下面是一个单轴定位的典型程序框架:
多步定位的顺序控制技巧:不要同时触发多个定位指令!用 Done 信号做级联:A点定位完成(Done=TRUE)→ 触发B点定位的Execute
五、调试避坑清单(10条血泪经验)

#
坑
症状
解决方法
1
CPU选错型号
找不到PTO选项
必须用DC/DC/DC型,RLY不行
2
方向输出点冲突
编译报错或轴不动
方向点不能和PTO脉冲点重叠
3
齿轮比算错
位置偏差大,走1mm实际走了10mm
重新核算:脉冲数÷导程=脉冲当量
4
没回原点就定位
位置全乱
每次上电后先MC_Home
5
加减速设太大
电机丢步、振动、过冲
降低加减速值,逐步上调找临界
6
起始速度设太高
电机启动时"嗡"一声不走
起始速度设0或很低,让电机缓启动
7
软件限位和硬件限位搞混
碰到限位轴停了但报不同的错
硬件限位=急停级,软件限位=停止级
8
多条运动指令同时触发
轴行为不可预测
用Done/Busy做互锁,确保串行执行
9
OB91周期没关注
多轴时运动不流畅
单轴默认即可;多轴时检查OB91周期
10
工艺对象编译有警告没处理
下载后部分功能异常
编译必须零错误零警告再下载

六、PTO轴 vs PROFINET总线轴:选哪个?

对比项
PTO脉冲轴(S7-1200)
PROFINET总线轴(S7-1200 G2/1500)
通信方式
脉冲+方向线
以太网报文
适用驱动器
脉冲型步进/伺服
PROFINET伺服(V90PN、S210等)
最大轴数
4轴
可达30+轴
精度
受脉冲频率限制
更高,支持等时同步
接线复杂度
每轴需要脉冲线+方向线
网线串联,接线简单
成本
低(脉冲驱动器便宜)
高(总线驱动器贵)
适用场景
2~4轴简单定位
多轴同步、高精度定位
一句话选型建议:4轴以内、预算有限、精度要求不极端 → PTO多轴、高精度、需要电子齿轮/凸轮 → PROFINET总线
七、速查表:S7-1200运动轴配置速查

往期推荐

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码