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

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

3天内不再提示

机器人程序运行中出现的各种计算值的存储器变量是什么?

lhl545545 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2020-06-10 11:33 次阅读

关于变量命名对于编程者都有自己的习惯,而别人却不一定懂得或理解,所以对于一个公司必须有统一的规范,否则调试编程人员需要去适应其他编程调试人员。基于之前在GB公司的工作经验,他们在公司标准化方面确实做得成熟,正是那段经历让我收获颇多。后面我也会分享Excel及Excel VBA或者Python在标准化上面的示例。(本文只是个人习惯,不代表其他人)

1.1 变量命名规则

KRL是KUKA的编程语言,在对机器人进行编程时,变量是在机器人程序运行中出现的各种计算值的存储器。每个变量都属于一个专门的数据类型,在应用前必须声明数据类型;变量按照存储位置可划分为局部变量和全局变量。一个全局变量,适用于所有程序。一个局部变量建立于某程序模块中,因此仅适用于此程序模块。变量定义规则如下:①变量名称长度最多允许24个字符。②变量名称允许含有字母 (A ~ Z)、数字 (0 ~ 9) 以及特殊字符“_” 和“$”。③变量名称不允许以数字开头。④变量名称不允许使用系统关键词。⑤变量名称不区分大小写(但还是建议使用驼峰规则来定义变量)。⑥变量命名最好没有下划线,推荐使用驼峰命名规则。当变量没有下划线时,可以在KCP快速访问变量,而且没必要变量名中是否有下划线。⑦变量应根据其数据类型添加前缀,并且其名称应以简洁的方式简短地说明其功能

1.1.1 变量名称

1.输入输出信号变量:①单个输入信号 (1 位)-以前缀i开始表示单个输入信号: SIGNAL iVacuumOk $IN[1]

②多个输入信号(》 1 位)-以前缀gi开始表示输入信号组: SIGNAL giSt12PlateType $IN[1281] TO $IN[1296]

③单个输出信号 (1 位)-以前缀o开始表示单个输入信号: SIGNAL oErrorTarget $OUT[1265]

④多个输出信号(》 1 位)-以前缀go开始表示输出信号组: SIGNAL goStartValueEnc1 $OUT[705] TO $OUT[721]

模拟输入信号-以前缀ai开始表示模拟输入信号: SIGNAL aiWeldVoltage $ANIN[1]

⑥模拟输出信号-以前缀ao开始表示模拟输出信号: SIGNAL aoActPower $ANOUT[1]

2.布尔型变量-以前缀b开始表示布尔类型: DECL BOOL bGripperEmpty= TRUE

3.有符号整形变量-以前缀z开始表示布尔类型: DECL INT zTarget = 2

4.单精度浮点类型变量-以前缀r开始表示布尔类型: DECL REAL rCenterOffset= 0.0

5.FRAME型变量-以前缀f开始表示布尔类型: DECL FRAME fStackCorrection[2]

6.枚举型变量-以前缀e开始表示布尔类型: DECL ENUM ePostion HOME,STACK12,STACK34,CULLET,DROPOFF_CONV,RAZING

DECL ePostion POSITION = #HOME

7.结构体类型变量-以前缀s定义结构体类型但变量定义前无任何前缀: DECL STRUC sRackData INT nActType,… DECL sRackData Stack[2] Stack[1]= {nActType 1,…}

8.POS / AXIS/E6POS/E6AXIS位置类型变量-以前缀x定义变量: ①计算获得的变量-以前缀mx定义变量: DECL POS mxAfterTouched[2]

②通过示教获得的位置变量-以前缀x定义变量: DECL E6POS xStack12A = {X … }

9.字符及字符串类型变量-以前缀s定义变量: DECL CHAR sCharacter= “A”

1.1.2 基本准测1.对于所有变量类型,常量前面都带有c,然后紧接着变量前缀(见1.1.1): DECL INT czCompMin = 30

2.对于所有变量类型,局部变量均以l (local)开头: DECL INT lzCompMin = 30

3.对于所有变量类型,运行过程变量前面都带有一个n: DECL INT nzActStack

4.对于通过外部信号插入程序的所有变量类型,若为输入信号,则第二个字符为i;若为输出信号,则第二个字符为o: DECL BOOL biProgramEnd= FALSE

DECL INT zoPlateType = 1

5.坐标点/坐标位置命名规则必须保持标准化的点名称,以使运动易于阅读。

⑴起点/ 终点:例如xHomeA,xStack12A,等。①从一个工站到另一个工站的运动永远不会使用起点。②点的名称总是指定位置,而不是功能!(例如xConveyor1而不是xDropOff)。③每个路径都有单独的起点和终点!

⑵从一个工站到另一个工站的运动:每个起点基本上都有两条通向每个目标点的路径,只从Home位开始的这些工站除外:① ServicePosition ②Cullet1 ③ Cullet2例如:沿着路径A从原点Home到工站Stack12的运动路径: Home_Stack12(#A) ①起始预备点: xHome_Stack12A1 (最接近起点的点或距离终点最远的点) ②中间点: xHome_Stack12A2(注释掉,如果没有必要) ③中间点: xHome_Stack12A3 (注释掉,如果没有必要) ④终点预备点: xHome_Stack12A4 (距离终点最近的点) ⑤终点: xStack12A例如:沿着路径A从工站Stack12到工站Stack34的运动路径: Stack12_Stack34(#A) ①起始预备点: xStack12_Stack34A1 (最接近起点的点或距离终点最远的点) ②中间点: xStack12_Stack34A2 (注释掉,如果没有必要) ③中间点: xStack12_Stack34A3 (注释掉,如果没有必要) ④终点预备点: xStack12_Stack34A4 (距离终点最近的点) ⑤终点: xStack34A例如:沿着路径B从工站Stack12到工站Stack34的运动路径: Stack12_Stack34(#B)

①起始预备点: xStack12_Stack34B1 (最接近起点的点或距离终点最远的点) ②中间点: xStack12_Stack34B2 (注释掉,如果没有必要) ③中间点: xStack12_Stack34B3 (注释掉,如果没有必要) ④终点预备点: xStack12_Stack34B4 (距离终点最近的点) ⑤终点: xStack34B

1.1.3 变量位置/路径:1. 必须在全局系统文件R1System$Config.Dat中声明对外部设备或站的输入和输出2. 全局变量必须在R1ProgramDat文件夹中的相应数据类型文件中声明,例如,必须在文件b_bool.dat中声明一个布尔变量。数据文件说明

b_bools.dat 存放所有用户定义的全局Bool类型变量

z_intergers.dat 存放所有用户定义的全局Int类型变量

r_reals.dat存放所有用户定义的全局Real类型变量

f_frames.dat存放所有用户定义的全局Frame类型变量

Structs.dat存放所有用户定义的全局Struc类型变量

e_enums.dat存放所有用户定义的全局Enum类型变量

x_Points_Movements.dat存放所有直接运动或间接运算的全局且固定位置点变量

mx_Points.dat存放所有可变的全局位置点类型变量

Strings.dat存放所有用户定义的全局CHAR类型变量(如:报警信息

3. 尽可能避免使用常量,而应使用变量.4. 运动点: ①外部计算或模拟的点将传输到全局公共“DA文件”。点坐标和相关参考空间参数(BASE,TOOL)必须在文件x_points_movements.dat中全局声明。②计算和计算的点也存储在单独的全局公共“DAT文件”中。点坐标和相关参考空间参数(Base,TCP)必须在以下文件中全局声明:x_points.dat③可变点数据必须在mx_points.dat中声明。

1.2 子程序及函数

⑴ fl前缀: 局部函数

⑵ ul前缀: 局部子程序⑶ ip前缀: 中断程序⑷ o前缀: 将输出变量写入控制器输出信号的函数⑸ i前缀: 从控制器输入信号读取输入变量的函数
责任编辑:pj

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

    关注

    211

    文章

    28512

    浏览量

    207505
  • 储存
    +关注

    关注

    3

    文章

    201

    浏览量

    22394
收藏 人收藏

    评论

    相关推荐

    【「具身智能机器人系统」阅读体验】2.具身智能机器人的基础模块

    具身智能机器人的基础模块,这个是本书的第二部分内容,主要分为四个部分:机器人计算系统,自主机器人的感知系统,自主机器人的定位系统,自主
    发表于 01-04 19:22

    开源项目!能够精确地行走、跳舞和执行复杂动作的机器人—Tillu

    。 执行指令时确保与正在进行的动作无冲突。 2.4. 清理 用于重置机器人并优雅停止正在运行的进程的实用函数。 3. 主程序main() 函数: 以中立眨眼表情开始。 在单独的线程中启动
    发表于 01-02 17:24

    舜铭存储铁电存储器SF24C512(MB85RS512)工厂自动化系统机器人HMI中的应用

    舜铭存储铁电存储器SF24C512(MB85RS512)工厂自动化系统机器人HMI中的应用
    的头像 发表于 12-20 09:56 147次阅读
    舜铭<b class='flag-5'>存储</b>铁电<b class='flag-5'>存储器</b>SF24C512(MB85RS512)工厂自动化系统<b class='flag-5'>机器人</b>HMI中的应用

    鸿蒙机器人与鸿蒙开发板联动演示

    鸿蒙机器人与鸿蒙开发板联动演示,机器人的角色为迎宾机器人,开发板负责人宾客出现监听
    发表于 12-02 14:55

    存储器主要用来存储什么

    存储器(内部存储器)是计算机硬件的重要组成部分,它直接与中央处理(CPU)相连,用于存储正在运行
    的头像 发表于 10-14 09:55 917次阅读

    存储器分为随机存储器和什么

    存储器计算机系统中用于临时存储数据和程序的关键部件,它直接影响到计算机的运行速度和性能。内
    的头像 发表于 10-14 09:54 1231次阅读

    计算存储器的分类及其区别

    计算存储器计算机系统中不可或缺的重要部分,用于存放程序和数据。随着科技的进步,存储器的种类越来越多,功能和性能也日益丰富。一般来说,
    的头像 发表于 09-05 10:40 1798次阅读

    ram存储器和rom存储器的区别是什么

    定义: RAM(Random Access Memory):随机存取存储器,是一种易失性存储器,主要用于计算机和其他设备的临时存储。 ROM(Read-Only Memory):只读
    的头像 发表于 08-06 09:17 733次阅读

    外部存储器是ROM还是RAM

    与RAM(随机存取存储器)和ROM(只读存储器)有所不同,下面我们将介绍这三者的区别和特点。 1. RAM(随机存取存储器) RAM是计算机的主要工作内存,用于
    的头像 发表于 08-06 09:13 1700次阅读

    Al大模型机器人

    丰富的知识储备。它们可以涵盖各种领域的知识,并能够回答相关问题。灵活性与通用性: AI大模型机器人具有很强的灵活性和通用性,能够处理各种类型的任务和问题。持续学习和改进: 这些模型可以通过持续的训练
    发表于 07-05 08:52

    ABB机器人的基本程序数据有哪些

    ABB机器人是一种广泛应用于工业自动化领域的智能设备,其基本程序数据是实现机器人自动化控制的基础。本文将详细介绍ABB机器人的基本程序数据,
    的头像 发表于 06-17 09:20 1279次阅读

    PLC存储器故障的原因分析

    ,在实际应用中,PLC的存储器可能会出现各种故障,导致程序丢失、数据损坏或系统崩溃等问题。本文将从多个方面深入探讨PLC存储器故障的原因,并
    的头像 发表于 06-12 11:15 1353次阅读

    存储器与外存储器的主要区别

    计算机系统中,存储器是不可或缺的核心部件,它负责存储和处理各种数据和信息。根据存储位置和功能的不同,
    的头像 发表于 05-22 18:16 5466次阅读

    存储器的定义和分类

    存储器,作为计算机系统中的核心部件之一,扮演着存储和检索数据的角色。无论是程序的执行,还是数据的处理,都离不开存储器的支持。本文将对
    的头像 发表于 05-12 16:56 1404次阅读

    工业4.0中的机器人向协作机器人演进

    工业机器人出现在工业3.0的黎明,沿着计算机控制和自动化,并经过多年的发展,成为各种行业和过程的专业化。机器人是为大规模生产而设计的;它们通
    的头像 发表于 04-30 17:30 4712次阅读