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

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

    关注

    214

    文章

    31634

    浏览量

    224522
  • 储存
    +关注

    关注

    3

    文章

    205

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    人形机器人关节扭矩传感的详细应用场景及解决方案

    详细应用场景 高精度力控与柔顺操作(上肢与手部) 场景描述:机器人需要抓取鸡蛋、拧螺丝、装配精密零件或使用人类工具。若仅靠位置控制,极易损坏物体或自身。 传感作用 :实时感知末端工具与工件接触
    发表于 05-20 17:40

    基于米尔RK3576核心板的国产割草机器人解决方案

    割草机器人需在户外复杂环境中长期稳定运行,对主控芯片的可靠性、算力及功耗提出了极高要求。米尔RK3576核心板以全国产化方案,精准回应了行业痛点。 1. 自主架构的异构计算平台 米尔RK3576核心板
    发表于 04-24 17:31

    为什么说关节扭矩传感是高端机器人的“触觉神经”?

    如果把高端机器人比作一个“”,那么关节扭矩传感就是遍布全身的“触觉神经”。没有它,机器人就像得了末梢神经麻痹——能按程序动,却感受不到外
    发表于 04-17 17:27

    Neway电机方案在机器人技术方面的优势

    ,确保电机控制系统在长时间运行中不易出现故障。五、高效能与低损耗,提升系统能效背景:工业机器人关节需高精度、高响应速度的电机控制,电源模块需提供稳定直流电压并减少能量损耗。Neway方案:电源模块效率
    发表于 03-30 09:39

    探索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

    小萝卜机器人的故事

    经过我的申请, 马老师发放了, 小萝卜机器人的, 开发权限, 原来的小萝卜公司, 因为经营不善倒闭, 作为科研产品, 几个技术对此惋惜, 自掏腰包, 要让小萝卜机器人, 再生, 每次听到小萝卜说
    发表于 10-23 05:24

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

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

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

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

    工业机器人的特点

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

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

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

    轮式移动机器人电机驱动系统的研究与开发

    【摘 要】以嵌入式运动控制体系为基础,以移动机器人为研究对象,结合三轮结构轮式移动机器人,对二轮差速驱动转向自主移动机器人运动学和动力学空间模型进行了分析和计算,研究和设计了自主移动
    发表于 06-11 14:30

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

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

    存储芯片方案发力,率先适配宇树、智元机器人

    的训练到边缘AI的应用,需要云端存储到边缘端分级存储方案的支持。据称,一台人形机器人至少需要使用48片以上的各种类型存储芯片。近期来看,多家
    的头像 发表于 05-26 09:21 8469次阅读