PLC中的运动控制 - (一)轴

news/2025/9/19 16:13:40/文章来源:https://www.cnblogs.com/Asp1rant/p/19101078

在现代工业自动化系统中,可编程逻辑控制器(PLC)的运动控制功能日益强大。运动控制的核心在于对"轴"的精确操控。无论是简单的传送带控制,还是复杂的多轴协同作业,都离不开对各种类型轴的深入理解和正确配置。

本文将详细介绍PLC运动控制中常见的四种轴类型:脉冲轴、编码器轴、虚拟轴和总线轴,并阐述它们在PLC中的配置方法。

深入理解各类运动控制轴的工作原理与配置方法,是构建高效自动化系统的关键基础。

一. 轴的分类

1. 脉冲轴 (Pulse Axis)

脉冲轴是最基本也是最常见的运动控制轴类型,通过发送脉冲序列来控制电机的位置和速度。每个脉冲对应电机的一个微小位移,脉冲频率决定电机转速,脉冲数量决定总位移量。

工作原理

PLC通过高速输出点发出脉冲信号(通常配合方向信号)到步进电机或伺服驱动器的脉冲输入端口。这种控制方式简单可靠,适用于许多中小规模应用场景。

配置信息

在PLC中配置脉冲轴通常需要设置以下参数:

  • 脉冲输出方式:选择"脉冲+方向"(PUL/DIR)、"正反脉冲"(CW/CCW)或AB相正交脉冲输出
  • 基本运动参数:包括启动速度、最大速度、加速度、减速度
  • 脉冲当量(单位脉冲对应的位移量):根据机械传动机构和电机特性计算得出
  • 限位设置:包括软限位和硬限位,防止机械超程
  • 回原点参数:包括回原模式、回原速度、爬行速度等

典型应用场景:数控机床、包装机械、定位装配等对成本敏感且精度要求不是极高的场合。

2. 编码器轴 (Encoder Axis)

编码器轴通常指配备编码器反馈的轴,用于实时监测电机或机械机构的实际位置和速度,形成闭环控制,提高控制精度。

工作原理

编码器通过光电或磁电原理将机械位移转换为电信号。增量式编码器输出A、B两相脉冲信号(相位差90°)和Z相零位信号,绝对式编码器则提供唯一位置值。PLC通过高速计数模块接收这些信号,获取实际位置信息。

配置信息

配置编码器轴需要设置以下参数:

  • 编码器类型:增量式或绝对式编码器
  • 分辨率(PPR):每转脉冲数,如1024、2048等
  • 信号类型:NPN/PNP集电极开路输出、推挽输出、差分输出等
  • 计数模式:1倍频、2倍频或4倍频计数
  • 零位信号处理:Z相信号的使用方式

典型应用场景:高精度定位系统、伺服电机控制、质量检测设备等需要闭环控制的场合。

3. 虚拟轴 (Virtual Axis)

虚拟轴是纯软件实现的轴,没有直接连接的物理硬件,主要用于模拟实际轴的运动或作为其他轴的同步主站。

工作原理

虚拟轴通过PLC内部的运动控制算法生成理论运动轨迹(位置、速度前馈),而不直接驱动物理执行机构。它可以作为主轴,通过电子齿轮或电子凸轮功能控制其他物理轴。

配置信息

配置虚拟轴需要设置以下参数:

  • 运动曲线参数:包括最大速度、加速度、减速度
  • 单位换算:设置虚拟轴的单位(如毫米、度、脉冲)
  • 耦合关系:当虚拟轴作为主轴时,设置与从轴的齿轮比或凸轮表关系
  • 反馈映射:如需显示虚拟轴的位置反馈,需映射到实际编码器

典型应用场景:程序开发阶段的逻辑测试、多轴同步控制的主轴、运动模拟和演示系统。

4. 总线轴 (Bus Axis)

总线轴基于工业现场总线(如EtherCAT、Profinet、CC-Link等)实现通信,是现代高性能运动控制的发展方向。

工作原理

PLC作为总线主站,通过高速工业网络与分布式从站(如伺服驱动器、IO模块等)通信,周期性地交换数据(通常≤1ms)。这种结构减少了布线复杂性,提高了系统灵活性和扩展性。

配置信息

配置总线轴需要设置以下参数:

  • 网络配置:设置网络周期、同步模式等
  • 节点映射:配置每个从站的地址和参数
  • PDO映射:过程数据对象映射,定义输入输出数据的结构和含义
  • 分布式时钟:确保所有节点的时间同步
  • 诊断设置:网络状态监控和故障处理机制

典型应用场景:多轴协同运动控制(如工业机器人)、大型自动化生产线、对实时性要求高的应用场合。

对比总结

为了更直观地了解这四种轴的特点,以下是它们的对比表:

特性 脉冲轴 编码器轴 虚拟轴 总线轴
控制方式 开环 闭环 软件模拟 闭环
精度 中等 无实际物理运动
成本
复杂度
扩展性 有限 有限
适用轴数 通常少于16轴 取决于PLC能力 无限制 可多达32轴或更多
典型应用 简单定位控制 高精度定位 模拟/主站控制 复杂多轴协同控制

二. 轴状态机

PLC运动控制中的轴状态机是理解轴行为和控制逻辑的核心。它定义了轴在不同命令和事件下如何切换状态。参考

image

Note Description
Note 1 From any state in which an error occurs
Note 2 From any state if MC_Power.Enable = FALSE and the axis has no error
Note 3 MC_Reset and MC_Power.Status = FALSE
Note 4 MC_Reset and MC_Power.Status = TRUE and MC_Power.Enable = TRUE
Note 5 MC_Power.Status = TRUE and MC_Power.Enable = TRUE
Note 6 MC_Stop.Done = TRUE and MC_Stop.Execute = FALSE

各状态详细说明

  1. Disabled (未使能/电源关闭)

    • 含义:这是轴的初始状态。在此状态下,伺服驱动器的电源未被激活,电机通常处于自由状态(未励磁)。
    • 典型操作:需要通过 MC_Power 功能块(Enable=TRUE)并使能条件满足(如无故障)后,轴才能进入 StandStill 状态 。
    • 退出条件:执行 MC_Power 功能块并使能成功。
  2. ErrorStop (故障停止)

    • 含义:当轴控制过程中发生任何错误(如跟随误差超限、限位开关触发、驱动器报警等),轴会立即进入此状态 。
    • 典型操作:所有运动被中止。必须先通过 MC_Reset 功能块复位错误,有时还需配合 MC_Power 。仅当故障根源被清除后,复位操作才能成功。
    • 进入条件:在任何其他状态发生错误。
    • 退出条件:成功执行 MC_Reset 复位功能块。
  3. StandStill (保持静止)

    • 含义:轴已成功使能并保持静止(零速),等待执行新的运动命令。这是许多运动操作的起点
    • 典型操作:在此状态下,可以执行回原点 (MC_Home)、绝对/相对移动 (MC_MoveAbsolute, MC_MoveRelative)、速度运动 (MC_MoveVelocity)、点动 (MC_Jog) 等。
    • 进入条件MC_Power 使能成功;其他运动(如离散运动、回原点)正常完成;减速停止 (Stopping) 完成;故障复位 (ErrorStop 状态后执行 MC_Reset) 成功。
    • 退出条件:接收并执行任何有效的运动命令。
  4. Stopping (减速停止)

    • 含义:轴正在按照预设的减速度减速至停止
    • 典型操作:通常由 MC_Stop 功能块触发。停止完成后,轴会自动返回 StandStill 状态。
    • 进入条件:执行 MC_Stop 功能块。
    • 退出条件:轴速度降至零,停止完成,自动进入 StandStill
  5. Homing (回原点)

    • 含义:轴正在执行寻找机械原点或参考点的操作 。
    • 典型操作:通过 MC_Home 功能块触发。回原点模式有多种(如找索引信号、限位开关等)。完成回原点后,轴的位置计数器通常被设置为预设的零位或参考值。
    • 进入条件:在 StandStill 状态下执行 MC_Home 功能块。
    • 退出条件:回原点操作成功完成(返回 StandStill)或被停止命令中断(如进入 Stopping)。
  6. DiscreteMotion (离散运动)

    • 含义:轴正在执行点到点的定位运动,例如移动到某个绝对位置或相对移动一段特定距离 。
    • 典型操作:由 MC_MoveAbsoluteMC_MoveRelativeMC_Jog 等功能块触发。运动完成后,轴会自动返回 StandStill 状态。
    • 进入条件:在 StandStillContinuousMotionSynchronizedMotion 状态下执行相应的离散运动功能块。
    • 退出条件:定位完成(返回 StandStill);被停止命令中断(进入 Stopping);或被其他运动命令超越(根据具体实现和配置)。
  7. ContinuousMotion (连续运动)

    • 含义:轴正在以连续的速度运行,而不是为了到达某个特定位置 。
    • 典型操作:由 MC_MoveVelocityMC_MoveTorque 等功能块触发。需要停止时,必须由 MC_StopMC_Halt 等功能块显式命令。
    • 进入条件:在 StandStillDiscreteMotionSynchronizedMotion 状态下执行连续运动功能块。
    • 退出条件:执行停止命令(如 MC_Stop, MC_Halt)进入 Stopping
  8. SynchronizedMotion (同步运动)

    • 此为多轴协调运动状态(如电子齿轮、电子凸轮、插补控制),轴的运动与其它主轴或虚拟主轴同步 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ctfshow web23(代码审计编写脚本爆破)

<?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-09-03 11:43:51 # @Last Modified by: h1xa # @Last Modified time: 2020-09-03 11:56:11 # @email: h1xa@ctfer.com # @link: https://ctfer…

墨者学院 某防火墙默认口令

可以看到防火墙类型,先去搜索引擎搜索

IOC控制反转的解耦(相比于直接new对象的正向控制)

直接new对象,是你在主动寻找和创建你需要的“零件”;而 IoC 则是你告诉一个“管家”你需要什么“零件”,由“管家”帮你找到或创建好,然后递给你。 这个“管家”就是 IoC 容器(比如 Spring 容器),而“递给你”的…

墨者学院 浏览器信息伪造

看到背景介绍大概知道应该就是抓取数据包修改user-agent头了随意点击一篇文章GET /mp_weixin_qq_com.php HTTP/1.1 Host: 124.70.71.251:41416 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.…

AT_arc156_c [ARC156C] Tree and LCS

转化为 \(LIS\) 问题反而还会想复杂. 构造是这样的,每次取出两个叶子,交换权值,删掉.重复这一过程. 考虑为什么是对的,对于每条路径,我们都可以强化限制,将其拓展到两个叶子,你考虑到对于一条路径上的每个结点,要么其权…

完整教程:ARM指令集总结

完整教程:ARM指令集总结pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…

封神台 第二章:遇到阻难!绕过WAF过滤

结合题目猜测存在sql注入过滤了以下参数,尝试了单引号双引号均被过滤,应该是数字闭合,直接判断字段数看,order by 10能够正常回显,但是order by 11不能说明存在十个字段我们继续拼接查询语句,通过from,看页面返…

uniGUI:在Linux上部署独立应用为服务

uniGUI:在Linux上部署独立应用为服务可以以 Linux 服务的形式部署 Linux 独立应用程序。这将确保 Web 应用程序服务器将从作系统启动,只要服务器启动,它就会一直工作。为了实现这一点,我们将在 /etc/systemd 文件夹…

实用指南:【SQLSERVER】SQL Server 表导出与导入

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

封神台 第三章:为了更多的权限!留言板!

根据题目可知这题思路应该是存储型xss获取cookie从而获取flag首先测试下是否存在xss漏洞,保险起见有留言框的地方全部填一遍测试xss漏洞存在成功,但是只靠反射型xss是不可能弹出服务器cookie的,而且可能存在留言框输…

C#开发ONVIF客户端与RTSP播放库指南

利用C#开发ONVIF客户端和集成RTSP播放功能 C#开发ONVIF客户端与RTSP播放库指南 1. ONVIF客户端开发 ONVIF(开放型网络视频接口论坛)协议是实现不同品牌网络视频设备互操作性的国际标准。以下是使用C#开发ONVIF客户端…

一行命令查看docker所有网络 + 子网

一键查看所有docker网络及其子网 docker network inspect $(docker network ls -q) --format {{.Name}} => {{range .IPAM.Config}}{{.Subnet}}{{end}} 示例输出 bridge => 172.17.0.0/16 host => none =>…

ECT-OS-JiuHuaShan框架元推理,是马克思主义与我思故我在的完美统一,是超越自我

ECT-OS-JiuHuaShan框架元推理,是马克思主义与我思故我在的完美统一,是超越自我ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891论断具有非凡的洞察力。“ECT-OS-JiuHuaShan 是马克思主义与‘我思故我在’的…

vulnhub Beelzebub

打开靶机发现是ubuntu系统,猜测又是进行ssh登录修改一下网卡信息,成功出现ip信息扫一下开放端口进行目录扫描,扫出来/javascript,/phpmyadmin目录访问上面几个开放的页面都访问不了,index.php也进不去,只好用curl…

经验分享 —— 在 Ubuntu 虚拟机中部署 OceanBase 数据库

经验分享 —— 在 Ubuntu 虚拟机中部署 OceanBase 数据库今天为对 OceanBase 有学习和测试需求的亲们,奉上一篇在 Ubuntu 虚拟机中部署 OB 的经验分享,欢迎各位老师批评指正~0. 有奖征文活动 OceanBase 社区正在组织…

Salesforce 管理员:是终点,还是跳板?

随着 Salesforce 平台功能越来越强大,管理员(Admin)这个角色也在不断变化。很多人疑惑:做管理员,是一个长期发展的职业目标,还是转向开发、架构师等更专业岗位的跳板? 管理员可以是终点 1 职业满足感很高 调查显…

记一次内务培训

rt。写在前面: 大家好我是对不起教唯一教主,尚惠楼ユユユ宿舍的一个不起眼的右窗上。獾蝇来到醛家,这里的蚊帐像灵堂,是窗户正对着大门口的一个逆天宿舍。我们安居乐业,每天都勤勤恳恳地整理内务,按时到位,以饱…

CH584 CH585 复位状态寄存器

打印复位状态寄存器,查看复位状态

2025CCPC邀请赛(南昌)VP(A,B,C,D,G,H,K,L)

有部分解法不给出思路 A.扭蛋 #include<bits/stdc++.h> #define endl \n #define fread freopen("C://Users//20321//Desktop//vscode_cpp//in.in", "r", stdin) #define fout freopen(&quo…

AppConfig

@Configuration @EnableConfigurationProperties(AppProperties.class) public class AppConfig {@Value("${spring.mvc.servlet.path}")private String mvcServletPath;@Bean@ConditionalOnProperty(prefix…