0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

KUKA变成STRUC:定义结构类型升级版

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-04-20 17:41 次阅读

STRUC:定义结构类型

ccee67ca-db9c-11ed-bfe3-dac502259ad0.png

结构类型的定义 (=STRUC 数据类型)。在此将多个数据类型汇总为一个新的数据类型。

STRUC 名称 结构类型 数据类型 1 组件 1A 组件 1B,, 数据类型 2 组件 2A, 组件 2B,

GLOBAL: 在 $CONFIG.DAT 中不允许使用用关键词 GLOBAL 定义的数据类型。

名称结构类型: 新结构类型的名称。自定义数据类型的名称应以 _TYP 结尾,以便可将其与变量名称进行区分。

如果要组合不同的数据类型,阵列则不适合,必须使用联接的更多形式。使用声明

语句STRUC,预先定义好的不同数据类型或预定数据类型的组合构成一个新的复合数据类型。 特殊情况,其它复合和阵列也可以构成复合的一部分。

复合使用的一个典型例子是标准数据类型POS。它由文件$OPERATE.SRC中声明的6个实数值和2个整数值组成:

STRUC POS REAL X,,Y,Z,A,B,C,INT S,T

如果,例如您现在使用结构数据类型的一个POSITION变量,您可以使用分离点给个别的元素分配值:

POSITION.X=34.4

POSITION.Y=-23.2

POSITION.Z=100.0

POSITION.A=90

POSITION.B=29.5

POSITION.C=3.5

POSITION.S=2

POSITION.T=6

或使用所谓的集合共同分配值:

POSITION={X34.4,Y-23.2,Z100.0,A90,B29.5,C3.5,S2,T6}

集合受下列条件的支配:

● 集合的值可以是简单的常量或它们自己的集合。

● 不是必须在集合中指定结构中的所有组成。

● 成分的指定顺序不必依照它们定义的顺序。

● 集合中每个成分可能只包含一次。

● 在由结构组成阵列的情况下,一个集合定义一个单独的阵列元素的值。

● 结构类型的名称可在一个集合的开头指定-以冒号分开。

因此对于POS变量允许下列分配,例如:

POSITION={B100.0,X29.5,T6}

POSITION={A54.6,B-125.64,C245.6}

POSITION={POS:X230,Y0.0,Z342.5}

数据类型: 类型:任意的数据类型,即使结构类型也允许用作数据类型。

部件: 组件的名称。在结构类型之内只允许进行一次。只在栏拥有 CHAR 类型且是一维时,才允许将其用作结构类型的组件。为此,在结构类型的定义中,在栏的名称上将栏限制用方括号括起来。

给以 STRUC 数据类型为基础的变量分配值有 2 种方法:

给变量的多个分量分配值:用集合

给一个变量的单个分量分配一个值:用点分隔符

集合提示:

一个集合的值可以是简单的常数或集合本身,但是它们不能是变量

在一个集合中不必指定结构的所有分量。

分量不需要按已定义的顺序指定。

在一个集合中只允许含有每个分量一次。

在集合的开头,通过冒号隔开的结构类型名称可能已指定。

示例:

用 REAL 数据类型的分量 NUMBER 和 CHAR 数据类型的数组分量 TEXT[80] 定义结构类型 S_TYP。

STRUC S_TYP REAL NUMBER, CHAR TEXT[80]

将集合用作集合值的示例:

STRUC INNER_TYP INT A, B, C

STRUC OUTER_TYP INNER_TYP Q, R

DECL OUTER_TYP MYVAR

...

MYVAR = {Q {A 1, B 4}, R {A 3, C 2}}

状态 (S) 和转角方向 (T) 是数据类型 POS 和 E6POS 的组成部分:

STRUC POS REAL X, Y, Z, A, B, C, INT S, T

STRUC E6POS REAL X, Y, Z, A, B, C, E1, E2, E3, E4, E5, E6, INT S, T

AXIS 结构类型

A1 至 A6 是指与机器人轴 1 至 6 相关运行的角度值 (旋转轴)或平移值(平移轴)。

STRUC AXIS REAL A1, A2, A3, A4, A5, A6

对于POS、E6POS、AXIS、E6AXIS和FRAME结构缺少的成分不能被改变。而对于其它集合,则不存在的成分被设置为无效的成分。

建立您自己的结构变量的步骤使用下列例子解释:

在一个弧焊的子程序中,在变量S_PARA中转换下列信息

REAL V_WIRE 焊丝速度

INT CHARAC 特征0...100%

BOOL ARC 带/不带弧 (用于模拟)

变量S_PARA必须由3个不同数据类型的元素组成。首先,必须建立一个满足这个要求的新的数据类型:

STRUC WELDTYPE REAL V_WIRE,INT CHARAC,BOOL ARC

建立了一个名称为WELDTYPE的新的数据类型(WELDTYPE不是一个变量!)。WELDTYPE由V_WIRE、CHARAC和ARC三个成分组成。您现在可以任何新数据类型的变量,例如:

DECL WELDTYPE S_PARA

这样您就建立了一个数据类型为WELDTYPE的变量S_PARA。可以通过点分开单独寻址各个成分和通过集合-如上说明来寻址。

S_PARA.V_WIRE=10.2

S_PARA.CHARAC=66S_PARA.A

RC=TRUE

S_PARA={V_WIRE 10.2,CHARAC 50,ARC TRUE}

为了更容易区分自定义数据类型和变量,新数据类型的名称以…TYPE结束。

cd255b0e-db9c-11ed-bfe3-dac502259ad0.png

根据机器人轴1…6指定轴的运动,结构AXIS的成分A1...A6是角度值(旋转轴)或平移值(平移轴)。

在结构E6AXIS中使用附加成分E1...E6可寻址外部轴。

在结构FRAME 您可以定义空间的3个位置值(X,YandZ)和3个空间方位(A,B和C)。空间中的一个点可以用术语位置和方位明确地被定义。

有的使用几个轴位置的机器人可以寻址一个和空间中的相同点,结构POS 中的整数型变量S和T用于明确地定义一个轴的位置。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    210

    文章

    28086

    浏览量

    205789
  • Typ
    Typ
    +关注

    关注

    0

    文章

    3

    浏览量

    10644
  • KUKA
    +关注

    关注

    3

    文章

    217

    浏览量

    16469

原文标题:KUKA变成 STRUC:定义结构类型升级版V4.15

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    上海升级版超级电容公交车投运

    `上海升级版超级电容公交车投运2013-02-17 16:09:33 来源: 作者: 【大 中小】 浏览:55次 评论:0条   早在2006年就在上海市投入公交运营的超级电容公交车,在上海市科委
    发表于 06-09 16:22

    [推荐] (不看后悔)Android开发资料分享- 免积分(升级版

    非常好的Android开发资料,大家来看看吧[推荐] (不看后悔)Android开发资料分享- 免积分(升级版)http://www.arm-cn.com/bbs/forum.php?mod=viewthread&tid=231&fromuid=2872(出处: 风火轮技术论坛)
    发表于 01-09 16:36

    labview读取USB数据的升级版

    本帖最后由 yuxuaa 于 2016-7-20 10:29 编辑 labview读取USB数据的升级版
    发表于 07-18 16:20

    传感器十大综合实验【基础实验的升级版

    传感器十大综合实验【基础实验的升级版
    发表于 12-25 16:02

    结构体-共用体和用户定义类型

    结构体-共用体和用户定义类型
    发表于 01-31 10:48

    用户自定义结构数据怎么存储成VARIANT类型

    将用户自定义的C结构数据存储成VARIANT类型,需要时再将VARIANT类型转为用户自定义结构
    发表于 08-02 07:08

    结构类型定义的一般格式

    体它是将若干个不同类型的数据变量有序地组合在一起而形成的一种数据集合体。一般来说,结构体中各个变量之间是存在某些联系的,例如时间的时分秒,日期中的年月日1.结构类型
    发表于 12-08 07:13

    定义结构数据类型-STRUC

    例如:对一辆汽车而言,发动机功率或里程数为整数型。对价格而言,实数型最适用。而空调设备的存在则与此相反,更应为布尔型。所有部分汇总起来可描述一辆汽车。
    的头像 发表于 06-30 15:49 2705次阅读

    DIY ARDUINO PRO MINI 2.0(升级版

    电子发烧友网站提供《DIY ARDUINO PRO MINI 2.0(升级版).zip》资料免费下载
    发表于 07-01 14:27 0次下载
    DIY ARDUINO PRO MINI 2.0(<b class='flag-5'>升级版</b>)

    STRUC定义结构类型

    部件: 组件的名称。在结构类型之内只允许进行一次。只在栏拥有 CHAR 类型且是一维时,才允许将其用作结构类型的组件。为此,在
    的头像 发表于 08-03 15:10 2066次阅读

    用户定义数据类型结构

    用户定义数据类型(UDTs)是你自己创建的特殊数据结构。因用户数据类型指派了名字,他们可以用很多次。一旦他们被定义,就可在CPU程序的任意点
    的头像 发表于 08-19 10:06 1416次阅读

    KUKA ENUM定义计数类型简析

    在 $CONFIG.DAT 中不允许使用用关键词 GLOBAL 在数据列表中定义的数据类型
    的头像 发表于 01-16 10:28 1395次阅读
    <b class='flag-5'>KUKA</b> ENUM<b class='flag-5'>定义</b>计数<b class='flag-5'>类型</b>简析

    C语言如何定义结构类型变量

    定义结构体变量后,系统会为之分配内存单元。根据结构类型中包含的成员情况,在Visual C++中占63个字节。 * 这种声明方式是声明类型
    的头像 发表于 03-10 15:35 1161次阅读

    KUKA变成STRUC定义结构类型

    部件: 组件的名称。在结构类型之内只允许进行一次。只在栏拥有 CHAR 类型且是一维时,才允许将其用作结构类型的组件。为此,在
    的头像 发表于 04-14 11:41 977次阅读

    KUKA E6POS结构类型的变量定义

    $POS_ACT 当前笛卡尔机器人位置 E6POS结构类型的变量定义了TCP相对于BASE坐标系的设定点位置。  X、Y、Z:原点沿轴的偏移,单位为[mm]  A、B、C:轴角度的旋转偏移,单位
    的头像 发表于 05-22 14:57 5688次阅读
    <b class='flag-5'>KUKA</b> E6POS<b class='flag-5'>结构</b><b class='flag-5'>类型</b>的变量<b class='flag-5'>定义</b>