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

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

    关注

    213

    文章

    30634

    浏览量

    219779
  • 储存
    +关注

    关注

    3

    文章

    203

    浏览量

    22963
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索RISC-V在机器人领域的潜力

    Pro则运行控制节点,通过Wi-Fi网络接收Gazebo发布的传感信息(如激光雷达数据),并发布控制指令(速度指令)来驱动机器人模型移动和避障。 • 体验: MUSE Pi Pro的K1 CPU在处理
    发表于 12-03 14:40

    高精度机器人控制的核心——基于 MYD-LT536 开发板的精密运动控制方案

    处理,支持 1.8 GHz 主频,并集成2Tops NPU、G2D、VPU 4K高清视频编解码,为复杂控制算法与视觉融合计算提供充足算力。米尔MYD-LT536开发板 在“高精度机器人
    发表于 11-14 15:48

    RK3576机器人核心:三屏异显+八路摄像头,重塑机器人交互与感知

    更多"、"互动更流畅"是开发者面临的核心挑战。传统的单一屏幕和有限的视觉输入已成为提升机器人智能化水平的瓶颈。而瑞芯微RK3576高性能处理出现
    发表于 10-29 16:41

    自制巡线解迷宫机器人(上)

    作为上层决策单元,是整个机器人硬件架构中的核心。在本次的巡线解迷宫机器人中,它主要用于采样红外反射传感回传的模拟数据并根据PID算法进行数学运算,最后将计算结果以逻辑电平信号的形式反
    发表于 10-20 10:39

    机器人竞技幕后:磁传感芯片激活 “精准感知力”

    。 同时,磁传感还是多传感融合中的 “稳定锚点”。在机器人运动系统的融合定位中,它常作为核心基准。以 “足球机器人” 项目为例,当视觉传感
    发表于 08-26 10:02

    工业机器人的特点

    机器人是关键。工业互联网是通过端上的数据传输,经过大数据分析和云计算处理,再进行智能化决策的一整个过程,其中端的数据传输是基础。工业互联网的端包括机器人、传感等一切线下连接端口。因此
    发表于 07-26 11:22

    利用PLC调用ABB机器人程序号教程

    PP TO MAIN 程序是用来使机器人里的程序回到 MAIN 主程序的。
    的头像 发表于 07-04 15:34 5244次阅读
    利用PLC调用ABB<b class='flag-5'>机器人</b><b class='flag-5'>程序</b>号教程

    明远智睿SSD2351开发板:语音机器人领域的变革力量

    的四核1.4GHz处理器具备强劲的运算性能,能够高效处理语音机器人运行过程中的复杂任务。语音识别和合成需要大量的计算资源,该处理可以快速对语音信号进行分析、处理和转换。在实时语音交互
    发表于 05-28 11:36

    盘点#机器人开发平台

    地瓜机器人RDK X5开发套件地瓜机器人RDK X5开发套件产品介绍 旭日5芯片10TOPs算力-电子发烧友网机器人开发套件 Kria KR260机器人开发套件 Kria KR260-
    发表于 05-13 15:02

    【「# ROS 2智能机器人开发实践」阅读体验】机器人入门的引路书

    ROS的全称:Robot Operating System 机器人操作系统 ROS的 目的 :ROS支持通用库,是通信总线,协调多个传感 为了解决机器人里各厂商模块不通用的问题,让机器人
    发表于 04-30 01:05

    【「# ROS 2智能机器人开发实践」阅读体验】+内容初识

    规划:导航是机器人自主运行的关键功能。书中详细介绍了基于 ROS 2 的导航系统,包括地图创建、路径规划和导航控制等环节。首先,通过激光雷达等传感获取环境信息,使用 SLAM(Simultaneous
    发表于 04-27 11:24

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

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

    《具身智能机器人系统》第10-13章阅读心得之具身智能机器人计算挑战

    阅读《具身智能机器人系统》第10-13章,我对具身智能机器人的工程实践有了全新认识。第10章从实时性角度剖析了机器人计算加速问题。机器人定位
    发表于 01-04 01:15

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

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

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

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