SM3_CNC,轴组,G代码解析,CNC运动控制

news2024/10/7 18:23:28

硬件要求:

中型PLC(汇川AM600,禾川HCQ0),且带 SM3_CNC.library 库(3.5.6支持离线仿真)

G代码标准: DIN66025 

DIN66025-1标准

G0    运动定位
G1    线性插补
G2    顺圆插补
G3    逆圆插补
G4    等待
G6    抛物线插补
G8    椭圆插补

M指令块:SMC_Interpolator  插补算法(按时间节拍,截取位置)

SMC_Interpolator    //插补器(遇到M指令会暂停)

bAcknM置位(继续插补)
wM输出M指令值

H点胶指令:开关量

SMC_Interpolator    //插补器(遇到H指令不停顿)
N90    G1 X20
N100   G1 X100 H2 L20  H-2 L-10  //起点加20位置点胶,终点-10位置取消
                                // H指令不会影响运动速度

辅助轴:

插补轴:X,Y,Z
辅助轴:A,B,C,P,Q,U,V,W    // 8个辅助轴
轴排序:ALL := 16#FFFF;
X := 2#1 ;
Y := 2#10 ;
Z := 2#100 ;
A,B,C,P,Q,U,V,W,A6,ALL,

 

库的用法:解析G代码文件

SMC_Interpolator  插补算法(按时间节拍,截取位置)

SMC_OutQueue,SMC_CNC_REF,File    //位置流,带参位置流,文件流

SMC_ReadNCFile        // G代码文件读取//仿真路径
                      // C:\ProgramData\CODESYS\Simulation\PlcLogic\

SMC_NCDecoder         // G代码文件解码》输出poqDataOut(位置坐标流/轨迹坐标)
SMC_ToolCorr          // 工具参数
SMC_SmoothPath  // 轨迹平滑
SMC_CheckVelocities   // 轨迹速度检查》输出的轨迹数据要给插补器 poqDataOut

SMC_Interpolator      // 插补器,运算: 》输入:轨迹数据poqDataOut
                      //               》输出:piSetPosition
SMC_TRAFO_Gantry3     // 解析出3轴坐标  》输入:pi
                      //               》输出:dx,dy,dz分发给轴定位控制

SMC_ControlAxisByPos   // X axis  轴定位 XYZABC

1读取G代码文件解析

G代码文件》保存到 _cnc文件夹内

NC文件路径: STRING := '_cnc/gcode.cnc'; //PLC参考路径在本体主根目录下,G代码放在_cnc文件夹内
                                   // (后续以这个路径参考点再添加文件深度)

放该文件夹内 ,文件名例如: SouJiKe.txt     // 雕刻手机壳的G代码文件

2插补运算:SMC_Interpolator插补器,  poqDataOut轨迹

利用 SMC_CheckVelocities(轨迹速度检查)的输出做输入
poqDataOut轨迹流

SMC_Interpolator  插补算法(按时间节拍,截取位置)
                  piSetPosition   输出以时间为节拍的坐标流

SMC_TRAFO_Scara2   解析出节拍坐标位置》并发给对应的伺服电机

 库函数:POU 功能块

SM3_CNC  , ( 3.5.8.0 )
SM_CNC_POUs》SoftMotion CNC》SoftMotion Function Blocks
SM3_CNC, 3.5.8.0
Project Information        // get项目信息
SM_CNC_Data types          // SM_CNC_数据类型
SM_CNC_POUs                // CNC程序块  SMC_ReadNCFile文件  SMC_ReadNCQueue队列
SM_Trafo_Data type         // 轴组,龙门,机器人,数据类型
SM_Trafo_POUs              // 轴组转换功能块  Gantry systems龙门系统
Visu_Templates             // 模板
Visu_Templates_New         // 新模板

轴组:龙门轴组,6轴机械臂,码垛机,行架 等

添加轴组后,可以选轴组类型,龙门数控或者搬运机械臂等。。。

 

转换FB块为5轴_龙门。
5轴由:X,Y,Z,A,B 轴组成
4是A轴:是旋转轴。(垂直于Z轴旋转,比如刀片)
3是B轴:是倾斜轴。(与Z角度角度调节,如铣刀倒角)

 

刀具长度(u) :

双X轴龙门:

这里涉及到2个电机:x1轴和x2轴
x1轴为主,x2轴为从,x2轴一直去追赶x1轴的坐标位置。

在齿条型的X大梁,x2轴如果与x1轴位置超差过大,会导致X大梁卡死。所以x2轴要配置成:(力矩加定位)的混合模式。

函数使用:  MC_GearIN    电子齿轮功能  (注:注意从轴的追赶速度值大小)
脱开:      MC_GearOut   断开耦合

另一种方案是:
            新建一个虚轴。
            x1和x2去追赶虚轴的坐标。

圆弧插补:

SMC_RoundPath

轴组状态:

 SMC_GroupPower    电源

MC_GroupEnable        使能

MC_MoveLinearAbsolute     直线绝对运动

MC_AddAxisToGroup        添加轴组

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

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

相关文章

决策树案例以及决策树可视化

一、案例背景 泰坦尼克号沉没是历史上最臭名昭著的沉船之一。1912年4月15日,在她的处女航中,泰坦尼克号在与冰山相撞后沉没,在2224名乘客和机组人员中造成1502人死亡。在这个案例中,我们要求完成对哪些人可能存活的分析。特别是&…

【C++系列Pn】引用——背刺指针的神秘刺客“吃我一棍”

前言 大家好吖,欢迎来到 YY 滴 C系列 ,热烈欢迎!如标题所示,本章主要内容主要来侃侃“引用”这个刺客!如下就是大纲啦~ 一.引用 1.含义与特点 引用,即取别名。它的最大特点是编译器不会为引用变量而开辟空间…

202313读书笔记|《山居七年》————我只想在广袤璀璨的星河里享受生的鲜活,独自飞,游走

202313读书笔记|《山居七年》————我只想在广袤璀璨的星河里享受生的鲜活,独自飞,游走 《山居七年》 作者张二冬,选择隐士山居是一种很自由随性的生活态度,我觉得这不是普通人可以拥有的,比如我,并未入…

Office project 2007安装

哈喽,大家好。今天一起学习的是project 2007的安装,Microsoft Office project项目管理工具软件,凝集了许多成熟的项目管理现代理论和方法,可以帮助项目管理者实现时间、资源、成本计划、控制。有兴趣的小伙伴也可以来一起试试手。…

xmind思维导图转成禅道测试用例

xmind思维导图用来编写用例胜在效率高,可以快速的理清楚需求。缺点在于没法上传禅道,但是公司有要求每次迭代要有禅道的测试用例。直接写禅道的测试用例的话,又很耗时,效率低下,与提高人效的公司年度战略不符&#xff…

apache虚拟主机头的实现方式

目录 一:基于不同的IP地址 二:基于不同的端口 三:基于不同的域名 一:基于不同的IP地址 步骤一:修改主配置文件 vim /usr/local/apache/conf/httpd.conf 声明监听不同的IP地址的80端口 Listen 192.168.2.20:80 Listen…

ChatGPT工作提效之使用python开发对接百度地图开放平台API的实战方案(批量路线规划、批量获取POI、突破数量有限制、批量地理编码)

ChatGPT工作提效系列文章目录 ChatGPT工作提效系列 ChatGPT工作提效之初探路径独孤九剑遇强则强ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)ChatGPT工作提效之生成开发需求和报价单并转为Excel格式ChatGPT工作提效之小…

URLConnection(四)

文章目录 1. 配置客户端请求HTTP首部2. 向服务器写入数据3. URLConnection的安全考虑4. HttpURLConnection 1. 配置客户端请求HTTP首部 HTTP客户端(如浏览器)向服务器发送一个请求行和一个首部,如下: web服务器可以根据这个信息…

Visual Studio 远程调试工具(Remote Debugger)使用方法

一、关于Remote Debugger 当项目在测试环境上有bug,需要运行代码调试一下,这时就需要在测试环境上安装一个调试工具(Remote Debugger),然后在本地运行代码,远程链接到测试环境服务器来调试代码&#xff1b…

算法基础学习笔记——⑦位运算

✨博主:命运之光 ✨专栏:算法基础学习 目录 ✨位运算 ✨操作一 🍓十进制转化成二进制、八进制、十六进制(连除法) 🍓二进制、八进制、十六进制转化成十进制 🍓关于原码,反码&am…

Unity四叉树地图

当使用Unity构建大规模的游戏地图或场景时,使用四叉树数据结构可以提高性能和效率。四叉树是一种基于分割的数据结构,将空间划分为四个相等的子区域,并以递归方式构建树结构。在游戏开发中,四叉树常用于空间分区、碰撞检测和可视化…

Eclipse 教程Ⅱ

Eclipse 修改字符集 默认情况下 Eclipse 字符集为 GBK,但现在很多项目采用的是 UTF-8,这是我们就需要设置我们的 Eclipse 开发环境字符集为 UTF-8, 设置步骤如下: 在菜单栏选择 Window -> Preferences -> General -> W…

python的统计函数库scipy.stats是一个很棒的统计包

描述:在Scipy的模块中,有一个统计的木块——States,其中函数有描述统计(describe)、峰度(kurtosis)、偏度(skew)、众数(mode)、n阶矩。 分布:还有一些分布函数,正泰分布(norm)、对数正态分布(lognorm)、…… 计算:针…

Go语言介绍以及Go语言环境安装

初步介绍: Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源&am…

Manjaro linux 安装svn 并在文件管理器里显示相关图标

需要先安装svn linux版打开终端执行 1 sudo pacman -S svn 安装完成后执行一下 1 svn --version 出现这个就说明svn已经安装完成了,这个时候我们可以执行 1 svn checkout [路径] 就可以检出svn服务器上相关内容了 但是这个有的时候我们打开文件管理器想要看到被…

并发编程的三大特性之原子性

原子性 这个定义是一种规定,描述了Java中的理想就是为了能实现一个操作不能分割,不可中断,一个线程在执行的时候,另一个线程不会去影响他。 Java中的原子性可以理解为多线程操作临界资源,预期的结果和最终的结果一致。…

STM32基本外设超详细44000字教程

GPIO GPIO(General Purpose Input Output)通用输入输出口可配置为8种输入输出模式引脚电平:0V~3.3V,部分引脚可容忍5V输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等输入模式下可…

ML | 5 Logistic回归

ML | 5 Logistic回归 文章目录 ML | 5 Logistic回归Logistic回归思想基于Logistic回归和Sigmoid函数分类基于最优化方法的最佳回归系数确定梯度上升法**梯度上升法例子:**梯度下降法 训练算法:使用梯度上升找到最佳参数画出决策边界 训练算法&#xff1a…

本地是如何开启Nginx服务的?

一、window 配置Nginx服务器 1、Nginx下载地址 http://nginx.org/en/download.html 选择一个适合自己的版本 2、下载后直接解压 3、修改Nginx启动端口 配置文件位置:nginx-1.22.0/conf/nginx.conf 默认80,以防端口被重用,改为8056 4&…

PFEA112-20 3BSE050091R20 张力控制器

您的张力测量系统包括: 张力电子PFEA111或PFEA112–PFEA111是一款经济高效的紧凑型用户友好型张力电子产品,提供 来自两个称重传感器的精确可靠的快速模拟SUM信号,用于控制 和/或监测。显示器可以显示SUM、单个A&B和差异信号小尺寸和DIN导…