Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >P00程序解析1

P00程序解析1

作者头像
用户4442670
发布于 2023-09-02 03:21:59
发布于 2023-09-02 03:21:59
1.7K0
举报
文章被收录于专栏:机器人小农机器人小农

大家好!今天我们来说说P00这个程序

P00程序与外部自动配置息息相关,外部自动所配置的这些变量在P00里面都有详细的检查和执行

P00,是KUKA出厂自带的一个程序,主要使用用于Cell中。这个模块在R1/TP中

既然在系统中那就说明这个程序是可以被用户调用的,所以要知道其中包含了哪些模块,都是什么功能,下图就是P00程序中所包含的模块

接下来一个一个分析

主程序P00

主程序是一个功能调用程序,仅包含一个switch。用于提供外部调用。

其中包含了几个参数:

COMMAND:枚举类型参数,在config中声明了P00_COMMAND枚举,包含四个元素INIT_EXT,EXT_PGNO,CHK_HOME,EXT_ERR,正对应了SWITCH中的4个CASE。

PGNO_FUNCT:同样是config中声明的枚举类型,包含了3个元素,PGNO_GET,PGNO_ACKN,PGNO_FAULT,用于作为EXT_PGNO( )程序的参数进行传递。

P_ID[ ]和E_NO同是EXT_ERR( )程序的参数,分别是字符串和整数。

当主程序被调用,并且传入对应的参数时,其中的SWITCH,即可调用对应的程序了


INIT_EXT

从名字就可以看出,这是个初始化程序,初始了以下内容:

输出端:程序请求信号

输出端:程序运行中

输出端:故障发送给PLC

输出端:程序号镜像初始化为0

检查IO是否激活:

程序号类型

63 SWITCH PGNO_TYPE根据程序好类型进行分支

65 CASE 1,2 ;bci-coding,bcd-coding 二进制和 BCD

程序号长度判断

68 IF (PGNO_LENGTH<1) THEN 如果长度小于1输出错误报警

69 ERROR=TRUE ;pgno_length

70 MsgQuit("PgNo_LengthRangeWrong", "P00")

71 ENDIF

72 IF (PGNO_TYPE==1) THEN ;bci-coding如果类型等于1

73 IF (PGNO_LENGTH>16) THEN 如果长度大于16输出报警

74 ERROR=TRUE ;pgno_length

75 MsgQuit("PgNo_LengthRangeWrong", "P00")

76 ENDIF

77 ENDIF

78 IF (PGNO_TYPE==2) THEN ;bcd-coding 如果类型等于2

79 SWITCH PGNO_LENGTH 如果程序号长度为4,8,12,16输出报警(这个switch的用法很不错)

80 CASE 4,8,12,16

81 DEFAULT

82 ERROR=TRUE ;pgno_length

83 MsgQuit("PgNo_LengthWrong", "P00")

84 ENDSWITCH

85 ENDIF

86 ;***** CHECK PGNO_FBIT *****

87 IF (PGNO_FBIT<1) THEN 检查程序号第一位是否小于1

88 ERROR=TRUE ;pgno_fbit

89 MsgQuit("PgNo_FBitWrong", "P00")

90 ENDIF

91 ;***** CHECK PGNO_REQ *****

92 IF (PGNO_REQ==0) THEN 检查程序好请求是否等于0

93 ERROR=TRUE ;pgno_req

94 MsgQuit("PgNo_ReqWrong", "P00")

95 ENDIF

96 IF (PGNO_REQ>0) THEN ;active high程序号请求大于0时初始化信号

97 $OUT[PGNO_REQ]=FALSE ;reset

98 WAIT SEC 0.2 ;delay for plc

99 ENDIF

100 IF (PGNO_REQ<0) THEN ;active low程序号请求为小于0时初始化

101 $OUT[PGNO_REQ*(-1)]=TRUE ;reset

102 WAIT SEC 0.2 ;delay for plc

103 ENDIF

104 ;*********************************************************

105 CASE 3 ;one out of n程序号类型为3“N 选 1”

106 ;*********************************************************

107 ;***** CHECK PGNO_LENGTH *****

108 IF (PGNO_LENGTH<1) THEN 程序号长度小于1报警

109 ERROR=TRUE ;pgno_length

110 MsgQuit("PgNo_LengthRangeWrong", "P00")

111 ENDIF

112 IF (PGNO_LENGTH>16) THEN 程序号长度小于16 报警

113 ERROR=TRUE ;pgno_length

114 MsgQuit("PgNo_LengthRangeWrong", "P00")

115 ENDIF

116 ;***** CHECK PGNO_FBIT *****

117 IF (PGNO_FBIT<1) THEN 程序号第一位小于1报警

118 ERROR=TRUE ;pgno_fbit

119 MsgQuit("PgNo_FBitWrong", "P00")

120 ENDIF

121

122 ;*********************************************************

123 DEFAULT ;PGNO_TYPE wrong type 程序号类型不为1,2,3时报警

124 ;*********************************************************

125 ERROR=TRUE ;pgno_type

126 MsgQuit ("PgNo_TypeWrong", "P00")

127 ENDSWITCH

128 ;***********************************************************

129 UNTIL (ERROR==FALSE) ;ERROR为假时结束循环

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器人小农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
P00程序解析2
HELLO 各位小伙伴,上次看到有朋友后台留言“始终人口回归”非常感慨,原本计划的一些推文也一直没完成,所以今天继续更新一下P00程序分析。
用户4442670
2024/04/19
3060
P00程序解析2
外部自动(PLC启动机器人)
近期很多朋友都在问kuka机器人的外部自动怎么用,PLC如何才能启动机器人,所以我再次关于外部启动啰嗦一遍,会的朋友别嫌烦。
用户4442670
2022/06/29
2.1K0
外部自动(PLC启动机器人)
Interrupt怎么用
Hi 大家好,大家都知道kuka机器人的程序是顺序执行的,那么如何能实现某个信号的连续监控呢。或者说某个信号触发后,机器人就立即停止当前的任务去执行另外一个任务。
用户4442670
2022/06/29
5.1K0
Interrupt怎么用
outfeet-搬运程序分析-main
HELLO 各位小伙伴,大家好,今天带来一套程序,这也不是我写的程序,不过思路还是很不错的,分享出来大家可以在自己写程序时借鉴一下。
用户4442670
2023/02/20
3910
outfeet-搬运程序分析-main
KUKA子程序/函数怎么建立和使用方法
HI各位小伙伴你们好,又到了小农说机器人的时间了。前段时间有人反映说小农越来越懒了,推文也不写技术文章了。听得我是十分的惭愧。所以今天必须来点没啥技术含量的。
用户4442670
2022/06/29
4.3K0
KUKA子程序/函数怎么建立和使用方法
串口YMODEM实现IAP程序升级(附完整工程)
上篇文章说了IAP升级的要点,本篇文章通过串口YMODEM实现IAP程序升级。
ManInRoad
2022/02/09
9.4K139
串口YMODEM实现IAP程序升级(附完整工程)
程序分析之CELL
HELLO各位小伙伴大家好,前几天我有幸接触到一套老外写的程序,感觉思路和我们的思路完全不一样,今天我把它拿来和大家分析一下,我的理解不一定都对,就当抛砖引玉了,大家一起学习一下。
用户4442670
2023/02/20
8310
程序分析之CELL
go-sql-driver源码分析
https://github.com/go-sql-driver 实现了基本的sql操作
golangLeetcode
2022/08/02
1.6K0
go-sql-driver源码分析
C sharp实例:华盾武器门数据接收和解析
项目介绍: 本实例主要是接收安检金属门的数据解析并显示到界面上,只做功能实现,不做界面美化 硬件:金属门一个、网线一根、电脑主机,金属门网线可以直接接到电脑主机上 开发环境:vs2017 系统:win10 涵盖知识点:tcp通讯、文件写入、多线程,委托、类型转换等
zls365
2020/08/19
4680
C sharp实例:华盾武器门数据接收和解析
技术分享 | MySQL 字段长度限制的计算方法
之前在《MySQL Text 字段的限制》一文中讲过了关于 MySQL 在 Server 层和 InnoDB 层的限制,但是限制的算法没有详细展开,这里进行补充说明,先回顾一下 MySQL 的两个限制:
爱可生开源社区
2020/03/13
6.2K0
环保 HJ212协议解析
由于是做环保相关的,有时需要对212协议进行拆包和解包。HJ212协议是一种字符串协议,数据传输通讯包主要由包头、数据段长度、数据段、CRC校验、包尾组成,其中“数据段”内容包括请求编码、系统编码、命令编码、密码、设备唯一标识、总包数、包号、指令参数。请求编码为请求的时间戳,系统编码ST统一规定为22,命令编码CN为该数据包的时间类型,访问密码、设备唯一标识在对接时由平台提供,指令参数为数据内容。通讯协议的数据结构如图4所示。
ccf19881030
2020/09/22
3.3K0
环保 HJ212协议解析
程序解析之MAIN
HELLO 各位小伙伴,大家好,上次我们分析了CELL程序,今天我们继续分析这一套程序。main()模块是这套程序中的主模块。CELL程序通过PGNO调用了唯一的一个case--main()接下来我们打开这个模块
用户4442670
2023/02/20
7330
程序解析之MAIN
嵌入式软件开发的框架思维
做一件事情,先有全局视角,拆分出系统的模块,然后根据不同的模块确认出待办顺序,并从全局的角度考虑多个模块的整合,是否需要公共模块,模块之间的依赖关系是什么样的,然后整合后,逐条去解决!
呱牛笔记
2023/05/02
7310
嵌入式软件开发的框架思维
嵌入式linux之go语言开发(四)go语言8583协议报文解析
原来的pos用c语言开发的,与银联后台通信走的是8583协议。那么用go来做,得实现个go语言8583协议报文解析
杨永贞
2020/08/04
1.2K0
分分钟钟让你从上位机小白变为大佬
我现在从事的C#工控机的开发,所以接下来会写一个系列关于上位机如何和工控机/PLC/各种仪表通信。希望能帮助到有需要的人(我假设你有过windows C#编程经验的)。
苏州程序大白
2021/08/13
3.6K0
分分钟钟让你从上位机小白变为大佬
PostgreSQL pgbackrest 参数与优化 与 “小作文和售货员”
最近热度最大的新闻,可能就是“小作文”和“售货员”,这里我特别想对曾经的某“售货员”曾经不经意说的一句话进行转载:
AustinDatabases
2023/12/19
2890
PostgreSQL  pgbackrest 参数与优化  与  “小作文和售货员”
GenerateOopMap.java
/* * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU Gen
一个会写诗的程序员
2020/09/07
6860
【计算机网络】序列化与反序列化
通过打包的方式,将结构体message发送给对方 对方收到后就会报告给上层QQ客户端
lovevivi
2023/11/27
3310
【计算机网络】序列化与反序列化
CVE-2017-16943 Exim UAF漏洞分析
感恩节那天,meh在Bugzilla上提交了一个exim的uaf漏洞:https://bugs.exim.org/show_bug.cgi?id=2199,这周我对该漏洞进行应急复现,却发现,貌似利用
Seebug漏洞平台
2018/03/30
1.2K0
CVE-2017-16943 Exim UAF漏洞分析
作者:Hcamael@知道创宇404实验室 发表时间:2017年12月1日 感恩节那天,meh在Bugzilla上提交了一个exim的uaf漏洞:https://bugs.exim.org/show_
Seebug漏洞平台
2018/03/15
2.4K1
相关推荐
P00程序解析2
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档