SM3_Robotics,轴组函数调用

news2024/12/26 22:45:39

1轴组状态:  AXIS_GROUP_REF_SM3 (FB)

 

2使能:    MC_GroupEnable (使能

默认在: MC_GroupDisable  (轴组关闭)位置

1:用 MC_GroupEnable (使能)进入   GroupStandby (轴组待命)状态

2:另外  SMC_GroupPower (轴上电)是批量调用  MC_Power

enable不必再调用Power,但可以利用单一轴上电去激活轴组使能

2回零:MC_GroupReadStatus () 

可配置:移动,回零,错停,待命,停止,关闭

3定位:MC_COORD_REF 笛卡尔坐标

 a:轴坐标,c:笛卡尔坐标,v:坐标数组

https://content.helpme-codesys.com/en/libs/SM3_Robotics/Current/SM3_Robotics/fld-SM3_Robotics.html

MC _ move circular absolute     绝对循环运动
MC _ movecircularlrelative      相对循环运动

MC_MoveDirectAbsolute    绝对定位
MC_MoveDirectRelative    相对定位

MC_MoveLinearAbsolute    线性绝对移动
MC_MoveLinearRelative    线性相对移动

SMC _ GroupEnableResumeAfterError   带故障恢复的运动
SMC_GroupUpdateContinueData         下一个坐标
SMC_GroupWait            运动间隔(秒)

点动:  SMC_GroupJog2

保存轴位置: SMC_GroupSaveContinueData 

继续:  MC_GroupContinue

急停:  MC_GroupHalt   (突然停止)

暂停:  MC_GroupInterrupt

MC_GroupInterrupt    运动中断(运动突然停止)
MC_GroupInterruptAt,在特定位置执行停止

 停止:  MC_GroupStop

脱机:  MC_GroupDisable

上电:        SMC_GroupPower 

使能:    MC_GroupEnable 

复位:  MC_GroupReset 

零点坐标设置:    MC _ group set position

增一个轴:   MC _ AddAxisToGroup

删一个轴:   MC_RemoveAxisFromGroup

 刀具偏移:  SMC _ group read tool     SMC_GroupSetTool

传送带工件:  MC _ trackcelpetorbelt

转盘上工件:   MC _ TrackRotaryTable 

 活动坐标工件:    SMC_SetDynCoordTransformEx

附加轴:  获取附加轴坐标:  SMC_POSINFO (STRUCT)

 刀具修正:

CNC加工流程:

1  SMC_CNC_REF            实例对象
2  SMC_NCDecoder          G代码解析(存储在SMC_OUTQUEUE)
3  SMC_Interpolator       插补器
xp:ARRAY[1..2] OF REAL:= [100,50];
yp:ARRAY[1..2] OF REAL:= [0,100];
PROGRAM Path
VAR
        iState : INT;
        QUEUE : SMC_OUTQUEUE;
        BUF : ARRAY[0..49] OF SMC_GEOINFO;
                // Memory allocation
        GEO : SMC_GEOINFO:=(dT1:=0, dT2:=1, dToolRadius:=0, dVel:=100, dVel_End:=100, dAccel:=200, dDecel:=500, iObj_Nr:=0);
                // Initial path element
        n : INT := 0;
        QUEUE.nSize := SIZEOF(BUF);
END_VAR

CASE iState OF
0:
        QUEUE.pbyBuffer := ADR(BUF[0]);
                // Initialize QUEUE
        SMC_SetQueueCapacity(ADR(QUEUE), SIZEOF(BUF));
        iState := iState + 1;

1:
        // Fill QUEUE
        WHILE NOT QUEUE.bFull DO
                // When QUEUE is full, wait until it has been processed by the following FBs
                n := n + 1;
                GEO.iSourceLine_No := n;
                GEO.piStartPos := GEO.piDestPos;
                        // Copying last destination
                GEO.iMoveType := LIN;
                        // Generating linear movement
                GEO.iObjNo := GEO.iObjNo + 1;
                        // Calculating number
                GEO.piDestPos.dX := xp[n];
                        // Generatint position
                GEO.piDestPos.dY := yp[n];
                SMC_CalcLengthGeo(pg := ADR(GEO));
                        // Calculating length of object with the help of the standard function
                SMC_AppendObj(poq:=ADR(QUEUE), pgi:=ADR(GEO));
                        // Appending object to QUEUE
                IF n = SIZEOF(xp)/SIZEOF(xp[1]) THEN
                        // All target positions processed
                        QUEUE.bEndOfList := TRUE;
                        n := 0;
                        iState := 2;
                        EXIT;
                END_IF
        END_WHILE

2:
        //Done
        ;
END_CASE

CheckVel(bExecute:=TRUE , poqDataIn:=ADR(queue)); // Preprocessing

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

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

相关文章

chatgpt赋能python:Python怎么定义主函数:完整指南

Python怎么定义主函数:完整指南 Python是当今最流行的编程语言之一,因为它提供了简单易学、高效率、高度可读性和可维护性的代码编写方式。在Python中定义主函数是一个重要的编程技能,使您能够将Python程序变成可执行的Python应用程序。在本…

chatgpt赋能python:Python多次输入——如何自动化处理数据输入

Python多次输入——如何自动化处理数据输入 作为一名有10年Python编程经验的工程师,我曾遇到过很多需要重复输入数据的情况。这不仅浪费时间,而且容易出错,影响我们的工作效率和准确性。作为程序员,我们需要借助Python的自动化技…

openGauss5 企业版之SQL语法和数据结构

文章目录 1.openGauss SQL 语法2. 数据类型2.1数值类型2.2 布尔类型2.3 字符类型2.4 二进制类型2.5日期/时间类型2.6 几何类型2.7 网络地址类型2.8 位串类型2.9 文本搜索类型2.10 UUID数据类型2.11 JSON/JSONB类型2.11 HLL数据类型2.12 范围类型2.13 索引2.14 对象标识符类型2.…

【MySQL】SQL的高阶用法

文章目录 函数聚合函数Count()Max()Min()Sum()Avg() 其他常用函数时间函数字符串函数数学函数 条件查询使用关系运算符查询使用IN关键字查询使用BETWEEN AND关键字查询使用空值查询使用AND关键字查询使用OR关键字查询使用LIKE关键字查询(模糊查询)使用LIMIT限制查询结果的数量使…

用ChatGPT生成测试数据

大家好,欢迎来到 Crossin的编程教室 ! 在之前的文章 用ChatGPT写一个数据采集程序 中,我们演示了如何用 ChatGPT 辅助编写代码。 除了直接让ChatGPT写代码,我们也可以让它生成一些开发中使用的测试数据。 比如在开发和测试时&…

Alloy Tutorial(3)Traces Modelling —— Cache Memory

文章目录 Cache Memory完整代码 Cache Memory //Addresses and data sig Addr {} sig Data {}//A cache system consists of main memory and cached memory, but mapping addresses to data one sig CacheSystem {var main, cache: Addr -> lone Data }//Initially there …

yolov5——从未见过注释比代码还多的源码解析You Only Look Once And You get it——训练部分

目录 一:前言 二:先介绍v5源码中必须知道的一些文件(了解的可直接加入第三代码部分) ​编辑 三:训练 参数配置 模式选择 搭建网络 加载预训练和自定义模型的参数 是否需要冻结层数 定义累计梯度的次数 设置…

零基础小白如何自学 Unity 游戏开发?(送 Unity 教程)

如何自学 Unity?初级阶段:学习编程语言初级阶段:编程实践中级阶段:继续学习编程语言 Unity 教程赠书活动内容简介作者简介赠书方式 如何自学 Unity? 有很多同学对 游戏开发 很感兴趣,但都不知道从何学起&a…

PostgreSQL如何查看事务所占有的锁?

表级锁命令LOCK TABLE 在PG中,显式地在表上加锁的命令为“LOCK TABLE”,此命令的语法如下: LOCK [TABLE] [ONLY] name [,...][IN lockmode MODE] [NOWAIT]语法中各项参数说明如下: name:表名lockmode:表…

GPT1,2,3

GPT1 transformer解码器因为有掩码所以不看后面的东西 gpt就是transformer的解码器,bert 是transformer的编码器 gpt核心卖点:不管输入如何,transformer模型不会变 半监督:先在没有标号上进行训练,再到有标号上进行微…

配置Nexus私服

私服是一种特殊的远程仓库,它代理广域网上的远程仓库,供局域网下的maven用户使用。 目前Nexus3的官方下载地址为 https://help.sonatype.com/repomanager3/product-information/download ,由于下载较慢(真的很慢)&…

【MySQL】库和表的增删查改

目录 一、库的操作 1、创建数据库 2、数据库所使用的编码 2.1查询编码集和校验集 2.2查看数据库的字符集和校验集 2.3创建数据库指定字符集和校验集 2.4不同的校验集所筛选的数据结果不一样 3、查看数据库 4、修改数据库 5、删除数据库 6、数据库的备份和恢复 6.1备…

数字图像处理期末复习习题 SCUEC part2

1.连续图像在空间位置上的离散化称为采样;图像空间分辨率由灰度级决定。 2.坐标的离散化叫采样,幅值的离散化叫量化。 3. 4.图像分割方法多种多样,一般可以根据像素灰度取值的特性将分割方法分为两类(阈值分割,区域分割…

软件工程开发文档写作教程(15)—概要设计书的编写

本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl本文参考资料:电子工业出版社《软件文档写作教程》 马平,黄冬梅编著 概要设计书的编写 按照国家《概要设计说明书GB8567—88)所定义的标准&#xff0…

算法刷题-链表-链表相交

链表相交 面试题 02.07. 链表相交思路其他语言版本JavaPythonGojavaScript 面试题 02.07. 链表相交 同:160.链表相交 力扣题目链接 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0…

chatgpt赋能python:Python如何填充空值

Python如何填充空值 在数据处理过程中,经常会遇到数据集中存在空值的情况。这些空值(或缺失值)可能会影响数据分析的准确性,因此我们需要对这些空值进行填充。Python作为一种流行的编程语言,提供了许多有效的方法来处…

【C++ 笔记四】STL 标准模板库 —— 容器基础

【C 笔记四】STL 标准模板库 —— 容器基础 文章目录 【C 笔记四】STL 标准模板库 —— 容器基础I - 概述 STL1.1 - 范围与定义1.2 - 组成与关系1.3 - 实用举例 II - 概述容器2.1 - 迭代器2.2 - 容器的结构与分类2.3 - 序列式容器2.4 - 关联式容器2.5 - 不定序容器2.6 - 总述 I…

.mdf.locked加密sql server完美恢复---惜分飞

有可能用友ERP软件的sql server 数据库所在机器被勒索病毒加密,扩展名为.locked和昨天恢复的基本类似(.locked加密勒索数据库级别恢复),通过分析确认sql server被这种病毒加密,也可以完美恢复 通过恢复之后数据库正常挂载成功 测试应用一切正常 对于类似这种被加密的勒索的数…

【Python开发】FastAPI 10:SQLAlchemy 数据库操作

在 FastAPI 中使用 SQL 数据库可以使用多个 ORM 工具,例如 SQLAlchemy、Tortoise ORM 等,类似 Java 的 Mybatis 。这些 ORM 工具可以帮助我们方便地与关系型数据库进行交互,如 MySQL 、PostgreSQL等。本篇文章将介绍如何使用 SQLAlchemy 来完…

chatgpt赋能python:Python的安装方法

Python的安装方法 简介 Python是一种非常流行的编程语言,它可以用于多种应用场景。Python简单易懂,可读性强,易于维护。因此,它成为了数据科学家、软件工程师和Web开发者的首选编程语言之一。 安装环境 在安装Python之前&…