十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【非标自动化】3、AutoShop快读理解(配置-运动控制轴)

【非标自动化】3、AutoShop快读理解(配置-运动控制轴) 正确的理解顺序应该是设备需要完成什么机械动作 → 选步进还是伺服 → 选脉冲控制还是总线控制 → 怎么接线 → 驱动器怎么配置 → AutoShop怎么添加轴 → 怎么调试 → Main程序怎么调用。下面就按照一个真实项目把“运动控制轴”从头走一遍。一、什么时候才需要配置“运动控制轴”先看设备里有没有这样的需求工作台准确移动到100 mm伺服转盘准确旋转90°丝杆模组以50 mm/s移动输送带每走200 mm切一次两个伺服轴按固定比例同步多根轴做直线、圆弧、电子凸轮运动。只要PLC需要控制或计算位置速度加速度回零正负限位多轴同步通常就要在AutoShop中配置一根“运动控制轴”。需要配置运动轴的典型设备现实元件是否通常配置运动轴EtherCAT伺服电机是总线伺服轴脉冲型伺服电机是本地脉冲轴步进电机步进驱动器是本地脉冲轴输送带测长编码器是本地编码器轴或总线编码器轴普通电机接触器只启停一般不需要普通电机变频器只调转速一般不需要运动轴气缸电磁阀不需要电动缸内部是伺服或步进通常需要因此这个配置确实主要与伺服电机、步进电机、编码器以及精确运动控制有关。Easy523本身就是带EtherCAT运动控制能力的PLC支持总线轴、本地脉冲轴和虚拟轴等运动资源AutoShop还支持EtherCAT从站扫描和伺服轴配置。(英诺云)二、构建一个真实项目场景假设现在要做一台视觉检测设备其中有一根X轴直线模组。工艺要求X轴需要有效行程0500 mm移动到拍照位置100 mm拍照后移动到下料位置400 mm运行速度100 mm/s上电后先回零两端有正负限位要求定位准确。机械结构为伺服电机 ↓ 联轴器 ↓ 滚珠丝杆导程10 mm ↓ 直线工作台这里就需要一根运动控制轴例如Axis_0 X轴接下来需要决定这个伺服驱动器是采用EtherCAT总线控制还是脉冲控制三、第一种方案EtherCAT总线伺服轴截图中选择的是轴类型总线伺服轴 输出设备ES810所以当前项目准备采用的是Easy523通过EtherCAT控制ES810伺服驱动器。ES810本身支持EtherCAT通信以及位置、速度、转矩控制。(汇川技术)整个硬件关系是AutoShop中的Axis_0 ↓ Easy523 EtherCAT主站 ↓ EtherCAT网线 ES810伺服驱动器 ↓ 动力线 伺服电机 ↓ 丝杆模组注意伺服电机不能直接接到PLC上。PLC控制的是伺服驱动器驱动器再控制伺服电机。四、现实中伺服系统到底有哪些线不能简单说“伺服电机有几根线”因为实际是几组不同功能的电缆。以常见EtherCAT伺服系统为例至少有下面几组。1. 伺服驱动器输入电源线电柜电源接到伺服驱动器。可能是单相220V L、N、PE 三相380V L1、L2、L3、PE具体是220V还是380V必须看伺服驱动器完整型号和硬件手册不能只看“ES810”系列名称决定。2. 驱动器到电机的动力线常见为驱动器U → 电机U 驱动器V → 电机V 驱动器W → 电机W PE → 电机外壳保护地这是驱动器向电机输出三相可变频率、可变电压电源的线路。这几根线不接PLC。3. 电机编码器线连接关系是伺服电机编码器接口 ↓ 伺服驱动器编码器接口伺服驱动器通过编码器知道电机转了多少角度当前转速转动方向实际位置是否发生位置偏差。编码器线同样不是直接接PLC。驱动器读取编码器后再通过EtherCAT把实际位置等数据发给PLC。4. 抱闸线如果是Z轴升降机构伺服电机可能带电磁抱闸。一般有抱闸电源线 抱闸控制线抱闸负责在断电或伺服未使能时防止Z轴因重力下坠。抱闸不能随意直接接普通PLC输出通常要经过驱动器抱闸输出、中间继电器或专用控制电路具体按驱动器手册设计。5. EtherCAT网线连接方式通常是Easy523 EtherCAT口 ↓ 第1台伺服驱动器 EtherCAT IN ↓ 第1台伺服驱动器 EtherCAT OUT ↓ 第2台伺服驱动器 EtherCAT IN因此多根总线伺服轴通常不需要每根轴从PLC单独拉一组脉冲线而是通过EtherCAT级联。Easy52X的EtherCAT接口用于实时总线通信官方手册要求使用相应的屏蔽通信线缆。(英诺云)6. 原点和正负限位线X轴机械上通常还要安装负限位传感器 原点传感器 正限位传感器这些传感器通常接PLC数字量输入例如负限位 → X0 原点 → X1 正限位 → X2具体接线还要确定传感器是PNP还是NPNPLC输入是源型还是漏型传感器是常开还是常闭使用24V还是其他电压。这三个信号再在Axis_0的“原点返回设置”和“模式/参数设置”里进行分配。7. 急停与STO急停通常不是只写一段PLC程序。常见安全链路为急停按钮 ↓ 安全继电器 ↓ 伺服驱动器STOSTO触发后驱动器停止产生电机转矩。普通PLC程序里的MC_Stop是运动停止指令不等于安全回路。高压动力线、STO和驱动器主电源应由具备资质的电气人员根据准确型号手册进行设计和接线不能根据通用示意图直接施工。五、接好硬件之后先配置什么不是一接好伺服电机就直接添加Axis_0。实际顺序是1. 配置伺服驱动器 2. 建立EtherCAT网络 3. AutoShop扫描驱动器 4. 添加运动轴 5. 把运动轴绑定到驱动器 6. 设置单位和机械参数 7. 设置限位和回零 8. 在线调试 9. 编写Main程序六、第一步先把伺服驱动器本身调通驱动器至少需要确认驱动器和电机型号是否匹配电机编码器类型电机额定功率驱动器供电是否正常编码器通信是否正常电机抱闸是否正常驱动器是否存在报警EtherCAT通信模式伺服刚性和惯量参数正反转方向最大转速和转矩限制。如果驱动器自己都在报警AutoShop里的Axis配置再正确也不能运动。对于刚搭建的设备通常先使用驱动器调试软件进行电机识别 → 点动测试 → 惯量辨识 → 刚性调整 → 检查编码器确认“驱动器能够单独控制电机正常低速转动”再进入PLC控制阶段。七、第二步在AutoShop中配置EtherCAT设备首先应该在AutoShop的EtherCAT配置中连接PLC扫描EtherCAT从站找到实际连接的伺服驱动器确认从站顺序确认驱动器型号确认EtherCAT通信正常让从站进入正常运行状态。AutoShop工程里的ES810是EtherCAT设备对象。而Axis_0是PLC运动控制对象。这两个对象不是一回事。需要建立Axis_0 → ES810的绑定关系。八、第三步添加Axis_0并选择轴类型现在才进入截图中的配置 → 运动控制轴 → 添加轴 → Axis_0对于当前场景应选择轴类型总线伺服轴原因是电机由伺服驱动器控制PLC和驱动器之间使用EtherCAT需要位置和速度控制需要读取驱动器实际位置和状态。然后配置输出设备ES810这里的“输出设备”可以理解为Axis_0计算出来的目标位置和目标速度发送给哪一个实际伺服驱动器。九、截图中的过程数据为什么全部“未分配”截图显示Controlword 未分配 Set Position 未分配 Set velocity 未分配 Set torque 未分配 Modes of operation 未分配 Statusword 未分配 ……这说明现在只是选中了ES810但Axis_0还不知道哪个数据是驱动器控制字哪个数据是目标位置哪个数据是目标速度哪个数据是驱动器状态字哪个数据是实际位置哪个数据是实际速度。可以把这些过程数据理解成PLC和驱动器之间固定周期交换的“数据通道”。例如PLC发送给驱动器 控制字 目标位置 目标速度 目标转矩 控制模式 驱动器返回PLC 状态字 实际位置 实际速度 实际转矩 报警状态如果设备描述文件支持可以尝试勾选自动映射让AutoShop自动匹配。映射完成后至少要检查Controlword Set Position Modes of operation Statusword Actual Position Actual Velocity是否已经正确绑定。所以根据截图判断当前Axis_0还没有完成可运行配置仅仅选中了ES810过程数据仍然未映射。十、第四步配置单位换算这是把“电机旋转”转换成“工作台移动”的关键步骤。假设实际机械参数是编码器一圈1048576个位置计数 丝杆导程10 mm 减速机无截图中的16#100000是十六进制换算后是1048576应该这样配置用户单位毫米 电机/编码器旋转一圈的脉冲数 16#100000 不使用变速装置 工作台旋转一圈的移动量 10.0 mm表示电机转1圈 编码器变化1048576个计数 丝杆转1圈 工作台移动10 mm配置完成以后在Main程序里写目标位置 100.0PLC理解的就是工作台移动到100 mmAutoShop会在内部换算成对应的驱动器位置计数。如果选择“脉冲”作为用户单位那么程序里只能写位置 10485760脉冲 速度 某个脉冲/s虽然也能控制但是做设备时非常难理解。对于丝杆直线模组通常应该选择毫米对于转盘通常选择度对于输送带测长通常也是毫米因此截图中当前选择“脉冲”更像是默认配置还没有根据实际机械结构完成工程单位设置。十一、如果中间有减速机怎么办假设电机转5圈 减速机输出轴转1圈 转盘旋转360°那么就要选择使用变速装置并把齿轮比例配置进去。配置的依据不是猜测而是机械设计资料减速机减速比主动齿轮齿数从动齿轮齿数同步轮齿数丝杆导程转盘每圈角度。因此运动轴配置需要同时参考伺服驱动器手册 电机编码器参数 丝杆或模组图纸 减速机参数 机械设计图AutoShop自己不会知道电机后面接的是5 mm丝杆还是10 mm丝杆必须由设备工程师告诉它。十二、第五步设置线性模式、限位和速度当前场景是0500 mm直线模组因此配置模式设置线性模式 软件负限位0 mm 软件正限位500 mm不是旋转模式。编码器模式截图里有增量模式 绝对模式这里描述的是轴位置基准的保存和识别方式不是指以后只能做增量运动或绝对运动。增量编码器上电后通常不知道工作台在哪里需要上电 → 回零 → 建立0 mm位置 → 再运行绝对编码器可以保存电机位置但第一次安装时仍要建立机械零点。选哪个取决于电机编码器型号驱动器设置是否有多圈绝对值功能是否配置绝对值电池。不能仅根据个人希望选择。最大速度怎么配置不能因为界面默认是最大速度1000就直接使用1000 mm/s。假设电机最高转速3000 rpm 丝杆导程10 mm理论直线速度为3000 ÷ 60 × 10 500 mm/s但实际最大速度还要受到直线模组允许速度丝杆临界转速负载重量电机功率加速距离机械振动定位稳定时间限制。所以可能最终设计为轴最大速度200 mm/s Jog最大速度20 mm/s 最大加速度500 mm/s²这些数值应由机械能力和实际调试决定不应直接照抄默认值。十三、第六步配置硬件限位假设接线为X0原点 X1负限位 X2正限位那么Axis_0中要分配原点信号X0 负限位X1 正限位X2还需要根据实际接线判断逻辑。例如使用常闭传感器正常时输入ON 触发或断线时输入OFF那么限位有效逻辑可能需要设置成对应的负逻辑。使用常闭回路通常还有一个好处传感器线断开时也能被当成异常而不是永远认为没有触发。在正式点动之前应该先手动遮挡或触发传感器在PLC监控界面确认原点输入是否变化 正限位是否变化 负限位是否变化不能先让电机高速撞过去再看限位是否有效。十四、第七步配置原点返回当前场景是增量编码器直线轴因此上电后需要回零。回零过程可能是轴低速向负方向运动 ↓ 碰到原点传感器 ↓ 减速或反向离开 ↓ 低速重新寻找传感器边沿 ↓ 把当前位置设为0 mm截图中的回零方式26不能仅凭编号就认为适合当前设备。必须看界面下方的时序图是否与实际机构一致原点在正方向还是负方向有没有正负限位有没有编码器Z相检测传感器进入边沿还是离开边沿先找原点还是先找限位。假设原点在左侧可以配置类似原点返回方向负方向 原点返回速度10 mm/s 原点接近速度2 mm/s 原点返回加速度100 mm/s² 超时时间50000 ms回零完成后还可以设置原点偏移。例如传感器触发位置并不是机械工作零点而实际工作零点在其右侧20 mm原点偏移20 mm十五、第八步在线调试的实际顺序不是一上来就输入500 mm高速运行。建议按下面顺序调试。1. 不使能电机检查输入先查看原点正限位负限位急停驱动器报警EtherCAT通信状态。手动触发每个传感器确认PLC监控状态正确。2. 清除驱动器报警确认驱动器无报警 EtherCAT通信正常 轴错误为空 伺服错误为空3. 低速使能执行伺服使能。正常情况下电机轴进入保持状态手推工作台会感觉有阻力驱动器显示运行或使能状态不应突然高速旋转。如果使能瞬间电机乱跑应立即停机检查电机型号编码器线反馈方向控制模式参数匹配。4. 低速Jog点动先设置Jog速度15 mm/s短时间点动正方向确认工作台是否向规定的正方向移动实际位置是否增加正限位是否在正方向一侧负限位是否在负方向一侧。如果机械向右移动但PLC位置减少需要处理轴方向或反馈方向不能继续带着错误方向调试。5. 检查限位不要直接撞限位。可以先手动触发正限位尝试正向点动确认正向运动被禁止确认仍能负向离开。负限位同理。6. 执行回零以低速执行原点回归观察回零方向原点输入是否减速是否寻找正确边沿回零完成后位置是否变为0。7. 验证单位换算先命令移动10 mm用直尺、百分表或激光测距确认实际移动是否接近10 mm。如果命令10 mm实际移动100 mm说明丝杆导程编码器计数减速比单位换算至少有一项配置错误。然后逐步测试10 mm 50 mm 100 mm不要一开始直接跑满行程。8. 逐渐提高速度确认低速位置和方向正确后再逐渐提高速度加速度减速度。同时观察实际位置目标位置跟随误差实际速度实际转矩机械振动驱动器报警。十六、配置完成后Main程序如何控制伺服完成Axis_0配置以后Main程序不再直接操作ES810的某几个字节也不直接输出电机U/V/W。而是使用运动控制指令控制Axis_0一个完整程序通常按照下面的状态流程安全条件满足 ↓ 清除轴报警 ↓ 伺服使能 ↓ 执行回零 ↓ 等待回零完成 ↓ 移动到拍照位置 ↓ 等待运动完成 ↓ 触发拍照 ↓ 移动到下料位置十七、Main程序常用的运动指令1. MC_Reset轴复位用于清除可以复位的轴错误或驱动器错误。逻辑上相当于按下复位按钮 → 执行MC_Reset → 等待Done → 确认Error消失2. MC_Power伺服使能用于让Axis_0进入可运动状态。安全回路正常 并且急停未按下 并且驱动器无报警 并且EtherCAT正常 → MC_Power使能完成后才能执行定位、速度运行和回零。3. MC_Home原点回归上电后调用MC_Home Axis Axis_0回零完成后记录X轴已回零 TRUE后续自动动作必须增加条件只有X轴已回零 才允许绝对定位4. MC_MoveAbsolute绝对定位例如移动到拍照位置轴Axis_0 目标位置100.0 mm 目标速度50.0 mm/s 加速度200.0 mm/s² 减速度200.0 mm/s²这里控制的是工作台移动到100 mm。电机到底需要转多少圈由单位换算自动计算。因为丝杆导程是10 mm所以工作台从0移动到100 mm电机需要转10圈。5. MC_MoveRelative相对定位例如当前位置是100 mm需要再向前移动20 mm相对距离20 mm最终到达120 mm6. MC_MoveVelocity连续速度运行适合输送带卷料轴连续旋转轴长时间恒速运动。例如Axis_0以100 mm/s正向连续运行直到执行停止指令或撤销运行条件。如果Axis_0是旋转轴用户单位选择“度”那么速度可能表达为90°/sPLC通常控制的是最终机械速度而不是要求程序员始终直接写电机rpm。7. MC_Stop减速停止按照指定减速度停止Axis_0。适用于正常流程停止不替代急停和STO。十八、Main程序应该怎样组织不建议直接写成按钮按下 → 立即MC_MoveAbsolute而应做成设备状态机。例如状态0等待复位 状态10伺服使能 状态20执行回零 状态30等待启动 状态40移动到100 mm 状态50等待定位完成 状态60触发视觉拍照 状态70移动到400 mm 状态80循环结束 状态900故障处理每一次运动前都要检查急停未按下 安全门关闭 伺服已使能 轴无报警 EtherCAT正常 没有触发运动方向限位 已经完成回零 目标位置没有超过软件限位这才是实际设备程序而不仅是让电机转起来。十九、如果项目用的是步进电机流程有什么不同假设换成Easy523 → PLC高速脉冲输出 → 步进驱动器 → 步进电机 → 丝杆模组此时AutoShop选择轴类型本地脉冲轴现实接线主要包括PLC脉冲输出 → 驱动器PUL PLC方向输出 → 驱动器DIR PLC使能输出 → 驱动器ENA可选 驱动器报警输出 → PLC输入可选还有驱动器电源 驱动器到步进电机的A/A-/B/B- 原点传感器 正负限位传感器配置依据假设步进驱动器细分后电机转一圈需要10000个脉冲 丝杆导程5 mmAutoShop配置轴类型本地脉冲轴 用户单位毫米 电机一圈脉冲数10000 工作台一圈移动量5 mm这样1 mm 2000脉冲程序使用的仍然可以是MC_Power MC_Home MC_MoveAbsolute MC_MoveRelative MC_MoveVelocity MC_Stop也就是说上层程序仍然控制Axis_0区别主要在Axis_0底层绑定的是EtherCAT伺服还是本地高速脉冲输出。二十、四种轴类型应该怎么选现在就可以从实际项目角度理解截图里的四个选项。总线伺服轴现实设备PLC → EtherCAT → 伺服驱动器 → 伺服电机使用场景EtherCAT伺服精确定位多轴同步电子凸轮电子齿轮插补运动。本地脉冲轴现实设备PLC高速脉冲输出 → 步进驱动器或脉冲伺服驱动器 → 电机使用场景步进电机脉冲型伺服简单定位成本较低轴数较少。总线编码器轴现实设备编码器 → EtherCAT编码器模块 → PLC它主要读取位置不主动驱动电机。例如输送带测长飞剪主轴电子凸轮主轴外部光栅尺。本地编码器轴现实设备编码器A/B/Z相 → PLC本地高速输入同样主要用于位置和速度测量。例如测长轮手轮输送带编码器旋转主轴检测。二十一、直接根据截图判断Axis_0目前做到哪一步截图中的Axis_0当前状态可以判断为轴类型总线伺服轴 输出设备ES810 用户单位脉冲 编码器模式增量模式 轴模式线性模式 软件限位01000脉冲 原点未分配 正负限位未分配 过程数据未分配所以它现在还不是一根真正调通的伺服轴。至少还缺确认ES810具体控制哪台电机完成EtherCAT过程数据映射根据编码器参数填写每圈计数根据丝杆导程填写每圈移动量用户单位从脉冲改为毫米根据实际行程设置软件限位分配原点输入分配正负限位输入选择符合机械结构的回零方式在线低速点动验证10 mm命令是否实际移动10 mm最后在Main程序中调用MC运动指令。因此“运动控制轴”在项目中的真实作用可以归纳为当设备选用了伺服电机、步进电机或编码器后通过运动控制轴把驱动器、电机、编码器、丝杆、减速机、原点、限位和机械单位全部组织成一个PLC可以直接控制的Axis_0。之后Main程序不再关心底层脉冲和编码器计数只需要命令Axis_0移动到多少毫米、以多大速度运行。
返回列表