电子齿轮比和伺服工艺对象设置

前言:最近有个项目用了西门子1215PLC和台达的ASD-B2伺服驱动,电机是台达17位的编码器型号。

在这里插入图片描述
项目用电机带动拖链,导程是304.8mm,电机减速器是1:100。

博图工艺对象

我用的是1215自带的PTO
在这里插入图片描述
主要是这页
在这里插入图片描述

台达伺服驱动设置

在这里插入图片描述
电子齿轮比N/M=160/1
这里有个问题困扰我好久,就是台达伺服电机的每转脉冲数的值,如果按17位来算=1310172pulse/转,结果实际跑的值有误差。直到我看了这页。
在这里插入图片描述
可以看到它17位的是16000p/r,看了论坛似乎台达的每转脉冲数按照基数的几倍来算,不是2的幂数来算。

电子齿轮比计算和工艺对象设置

导程D=304.8;
每转脉冲数F=16000;
减速器转速比a/b=1/100;
电子齿轮比N/M设置了160/1;
工艺对象设置电机每转脉冲数f=1000;
负载每转位移d为计算值;
计算公式:
(F/D)(M/N)(a/b)=f/d;
(16000/304.8)(1/160)(100/1)=1000/d;
d=3.048;
故在博图工艺对象设置
在这里插入图片描述
当然,有的时候为了方便计算脉冲数和负载位移的关系,先定好工艺对象每转脉冲数和负载位移量,比如1000pulse对应1mm,这样只要根据公式,把电子齿轮比N/M改成(160/3.048/1),为了精确需要写成分子分母即16000/3048。

<think>好的,我现在要帮助用户找到S7-1200 PLC通过FB块控制松下伺服电机的脉冲代码示例或实现方法。首先,我应该回顾用户提供的引用内容,看看是否有相关的信息。根据引用[1],里面提到了博途1200/1500 PLC的轴控功能块Servo_Axis,这可能与脉冲控制有关。另外,引用[2]中提到了西门子1200 PLC的硬件介绍一些伺服硬件的选型,但具体代码示例没有直接提到。 用户明确想要的是FB块的示例代码,所以可能要结合西门子PLC的编程方法松下伺服的参数设置。首先,S7-1200通常使用博途软件进行编程,脉冲控制可能涉及到PTO(脉冲串输出)或者通过工艺对象配置轴控制。松下伺服通常设置控制模式为位置模式,并配置正确的电子齿轮脉冲输入方式。 接下来,我应该考虑如何构造一个FB块,可能包括初始化伺服参数、发送脉冲、方向控制等部分。要用到PLC的脉冲输出功能,比如配置高速输出点,设置脉冲频率。同时,FB块可能要集成错误处理状态监控。 还要参考松下伺服的通信协议或脉冲控制要求,比如脉冲+方向信号,或者双脉冲模式。此外,伺服的使能信号也要在程序中处理,确保电机正确使能。 可能遇到的难点包括脉冲输出的精确控制,以及如何通过FB块参数化轴参数。另外,要确保PLC的硬件配置正确,比如输出点的选择组态。 总结步骤应该是:配置PLC的脉冲输出,创建FB块并定义输入输出变量,编写脉冲生成逻辑,处理方向信号,集成伺服使能控制,添加错误处理,最后测试调试程序。同时,参考现有的示例或文档,如引用中提到的轴控功能块,可能会有帮助。</think>### S7-1200 PLC通过FB块控制松下伺服电机的实现方法 #### 1. 硬件配置与基础设置 - **PLC脉冲输出配置** S7-1200 PLC的PTO(脉冲串输出)功能通过组态实现。在博途软件中配置高速输出点(如Q0.0/Q0.1),设置脉冲类型(PULSE+DIR或CW/CCW)及最大频率(如100kHz)[^1]。 - **松下伺服参数设置** 伺服驱动器中设置以下参数(以A6系列为例): - `Pr0.01=0`(位置控制模式) - `Pr0.06=1`(脉冲+方向输入) - `Pr0.08`(电子齿轮分子) - `Pr0.09`(电子齿轮分母) #### 2. FB块功能设计 ```pascal FUNCTION_BLOCK "FB_PanasonicServo" VAR_INPUT Enable: BOOL; // 使能控制 Position: DINT; // 目标位置(脉冲数) Velocity: UDINT; // 脉冲频率(Hz) Direction: BOOL; // 方向信号 ResetError: BOOL; // 错误复位 END_VAR VAR_OUTPUT Status: WORD; // 状态字 ActualPos: DINT; // 实际位置 ErrorCode: INT; // 错误代码 END_VAR VAR // 内部变量 Axis: TO_Axis; // 工艺对象 MC_Power: TON; // 使能延时 END_VAR ``` #### 3. 关键代码实现 ```pascal // 工艺对象初始化 #Axis( Axis := 'ServoAxis', Config := %DB2, Enable := #Enable, Position := #Position, Velocity := #Velocity); // 方向信号输出 IF #Direction THEN Q0.1 := 1; // 方向信号 ELSE Q0.1 := 0; END_IF; // 错误处理 IF #Axis.Error THEN #ErrorCode := #Axis.ErrorID; IF #ResetError THEN #Axis.Reset(); END_IF; END_IF; ``` #### 4. 调用示例 ```pascal CALL "FB_PanasonicServo" Enable := "Servo_Enable", Position := 10000, // 发送10000个脉冲 Velocity := 50000, // 50kHz频率 Direction := FALSE, ResetError := "Reset"; ``` #### 5. 注意事项 1. **硬件接线** PLC脉冲输出(Q0.0)接伺服PP,方向信号(Q0.1)接SIGN,伺服使能单独控制(可通过DO点实现)。 2. **电子齿轮比计算** 计算公式: $$ \text{实际位移} = \frac{\text{PLC脉冲数} \times \text{Pr0.08}}{\text{Pr0.09} \times \text{编码器分辨率}} $$ 3. **加减速配置** 在工艺对象设置S曲线加减速参数,建议初始值: - 加速时间:200ms - 减速时间:200ms - 急停时间:50ms [^1]: 具体参数设置参考松下A6系列伺服手册第4章位置控制模式配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值