KUKA 机器人SPS.SUB程序解析

&ACCESS  RVO
&COMMENT PLC on control
DEF  SPS ( )
  ;FOLD DECLARATIONS
  ;FOLD BASISTECH DECL
  ;Automatik extern

  DECL STATE_T STAT

定义STATE_T类型的变量。该结构为:
STRUC STATE_T 
CMD_STAT RET1, CMD_STAT是枚举类型数据,组成了STATE_T结构的第一个数据RET1
INT HITS ,
INT LENGTH  
其中CMD_STAT是枚举类型的数据:
ENUM CMD_STAT  CMD_OK, CMD_TIMEOUT, DATA_OK, DATA_BLK, DATA_END, CMD_ABORT, CMD_REJ, CMD_PART, CMD_SYN, FMT_ERR 

CWRITE有关的返回值如下表:


    变量类型 MODUS_T(结构类型)定义多少通道写入,有下列值 SYNC语句直到数据发送还没有执行 ASYNC语句没有执行直到通道驱动已经证实数据已经被承认。
   DECL MODUS_T MODE  
  ;ENDFOLD (BASISTECH DECL)
  ;FOLD USER DECL
  ;Please insert user defined declarations

  ;ENDFOLD (USER DECL)
  ;ENDFOLD (DECLARATIONS)
  ;FOLD INI
  ;FOLD DEFAULT MSG_T 
   信息显示的结构:
  $MSG_T={MSG_T: VALID FALSE,RELEASE FALSE,TYP #NOTIFY,MODUL[] " ",KEY[] " ",PARAM_TYP #VALUE,PARAM[] " ",DLG_FORMAT[] " ",ANSWER 0}
  ;ENDFOLD (DEFAULT MSG_T)
  ;FOLD AUTOEXT INIT
  中断函数声明,当系统变量$PRO_STATE1(机器人解释程序的进程状态为P_FREE(不选择程序)调用RESET_OUT ()):
  INTERRUPT DECL 91 WHEN $PRO_STATE1==#P_FREE DO RESET_OUT ()
  INTERRUPT ON 91
  $LOOP_MSG[]="                                                            "
  
   变量类型MODUS_T(结构类型)定义多少通道写入,它有下面的值:SYNC 语句直到数据已经发送还没有执行。ASYNC 语句没有执行    直到通道驱动已经证实数据已经被承认。
  MODE=#SYNC  ;
  $H_POS=$H_POS

  ;Automatik extern  果外部模式,则启动CELL()。$CMD显示命令通道的分配号。将CELL写入命令通道,机器人上电启动之后,如果$MODE_OP==#EX处于外部模式,则启动CELL程序。  命令通道可能为库卡内部的命令切换通道。T1、T2、EXT?
  IF $MODE_OP==#EX THEN      
    CWRITE($CMD,STAT,MODE,"RUN /R1/CELL()")
    注释:STAT被调用后的返回值是否可以在这调用,例如 IF (STAT.RET1=CMD_OK) THEN $OUT[200]=TRUE 验证是否调用成功

\KRC\STEU\Mada中定义的通道        CMD通道的定义?
CHANNEL :SER_1 :SER_1 $PSER_1
CHANNEL :SER_2 :SER_2 $PSER_2
CHANNEL :SER_3 :SER_3 $PSER_3
CHANNEL :SER_4 :SER_4 $PSER_4
 
 ENDIF


  ;ENDFOLD (AUTOEXT INIT)
  ;FOLD USER INIT
  ;Please insert user defined initialization commands

  ;ENDFOLD (USER INIT)
  ;ENDFOLD (INI)

  LOOP
     WAIT FOR NOT($POWER_FAIL)  掉电等待
     TORQUE_MONITORING()        扭矩监视

     ;FOLD GRIPPER TECH PLC;%{E}%MKUKATPGRP,%CSPS,%VSPS,%P
    IF (ZANGEN_FUNKT>0) THEN    ;;夹持技术
       H50 (5,AKT_ZANGE,DUMMY,GDEFAULT )
       ZANGEN_FUNKT=0
    ENDIF
    ;ENDFOLD (GRIPPERTECH PLC)
    ;FOLD USER PLC
    ;Make your modifications here

    ;ENDFOLD (USER PLC)
  ENDLOOP
END


中断函数声明,当系统变量$PRO_STATE1(机器人解释程序的进程状态为P_FREE(不选择程序)调用RESET_OUT ()):
DEF  RESET_OUT ( )
  INT N
  $LOOP_MSG[]="                                                            "

  INT REFLECT_PROG_NR=0 ; enable mirroring of program number inputs (1=enabled, 0=disabled)  声明于config.dat文件:
  使能程序号输入镜像,将输入程序号返回PLC
  IF REFLECT_PROG_NR == 1 THEN 
    FOR N = 0 TO PGNO_LENGTH - 1   config.dat文件: PGNO_LENGTH=8 ;length of ext. pgno (max. 16)
      $OUT[PGNO_FBIT_REFL + N] = FALSE
config.dat文件:INT PGNO_FBIT_REFL=999 ;first bit of ext. pgno reflection output $OUT[]
                                        ext. pgno 输出的第一位   output $OUT[1000]=FALSE 
    ENDFOR
  ENDIF

  IF (PGNO_REQ>0) THEN  INT PGNO_REQ=134 ;request ext. pgno input
      $OUT[PGNO_REQ]=FALSE          $OUT[134]=FALSE 停止对PLC程序号请求
      ELSE          高电平请求有效/低电平请求有效
         IF (PGNO_REQ<0) THEN     
            $OUT[-PGNO_REQ]=TRUE
         ENDIF
  ENDIF

END

;FOLD USER SUBROUTINE
;Integrate your user defined subroutines

;ENDFOLD (USER SUBROUTINE)
;ENDFOL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jquery validate表单验证插件

1 表单验证的准备工作 在开启长篇大论之前&#xff0c;首先将表单验证的效果展示给大家。 1.点击表单项&#xff0c;显示帮助提示         2.鼠标离开表单项时&#xff0c;开始校验元素    3.鼠标离开后的正确、错误提示及鼠标移入时的帮助提醒 对于初学者而言&…

【Python位运算】——左移操作(<<)右移操作>>

目录 左移操作 右移操作 其他博主的理解 应用——力扣题目78. 子集 解法 深度优先搜索 位运算 参考文献 左移操作 # 左移操作&#xff0c;左移一位相当于乘以b&#xff0c;a<<b,a a*(2^b) print(2<<3) # 2*2^3 16&#xff0c;2的二进制10&#xff0c;向…

sql中字段名中包含特殊字符的查询方法

sql中字段名章包含特殊字符的查询方法&#xff1a;例如包含""&#xff0c;student表中字段为&#xff1a;id“学号”、name"姓名"。 解决办法&#xff1a;用英文下的 ""&#xff08;Tab键上面那个键,不需要shift&#xff09;把字段名包起来。如&…

ABB RAPID SOCKET编程

相传在2009年6月11日&#xff0c;微博的鼻祖t-w-i-t-t-e-r还没有被封锁的时候&#xff0c;于仁颇黎写了了一个东西可以将staubli机器人在运行时的状态&#xff0c;实时发送上去&#xff0c;可以被实时的查看&#xff0c;任何一个人都可以查看&#xff0c;于是就有了这个名为TWI…

机器人 工具坐标系的标定

概念 工具坐标系是把机器人腕部法兰盘所握工具的有效方向定为Z轴&#xff0c;把坐标定义在工具尖端点&#xff0c;所以工具坐标的方向随腕部的移动而发生变化。 工具坐标的移动&#xff0c;以工具的有效方向为基准&#xff0c;与机器人的位置、姿势无关&#xff0c;所以进行相…

Linux内核分析— —计算机是如何工作的(20135213林涵锦)

实验部分 &#xff08;以下命令为实验楼64位Linux虚拟机环境下适用&#xff0c;32位Linux环境可能会稍有不同&#xff09; 使用 gcc –S –o main.s main.c -m32命令编译成汇编代码&#xff0c; int g(int x){ return x 6;} int f(int x){ return g(x);} int main(void){ r…

【测试开发】测试用例讲解

文章目录 目录 文章目录 前言 一、测试用例的基本要素 二、测试用例的设计方法 1.基于需求的设计方法 对日历根据web界面的功能布局分析出的功能框图如下&#xff1a; 继续举一个例子百度云盘非功能测试的案例&#xff1a; 2.等价类 3.边界值 5.正交表 6.场景设计法 7…

Hadoop分布式系统的安装部署

1、关于虚拟机的复制 新建一台虚拟机&#xff0c;系统为CentOS7&#xff0c;再克隆两台&#xff0c;组成一个三台机器的小集群。正常情况下一般需要五台机器&#xff08;一个Name节点&#xff0c;一个SecondName节点&#xff0c;三个Data节点。&#xff09; 此外&#xff0c;为…

Windows线程调度学习(一)

前言 Windows 线程调度器的实现分散在内核各处&#xff0c;并且与许多组件都有关联&#xff0c;很难进行系统地学习&#xff0c;所以我打算写几篇文章来记录下自己学习过程中的思考和分析&#xff0c;同时也方便日后查阅&#xff0c;此文可以看作是《Windows内核原理与实现》中…

scapy 安装及简单测试

关于scapy Scapy的是一个强大的交互式数据包处理程序&#xff08;使用python编写&#xff09;。它能够伪造或者解码大量的网络协议数据包&#xff0c;能够发送、捕捉、匹配请求和回复包等等。它可以很容易地处理一些典型操作&#xff0c;比如端口扫描&#xff0c;tracerouting&…

JavaScript 基础知识 - BOM篇

前言 本篇文章是JavaScript基础知识的BOM篇&#xff0c;如果前面的《JavaScript基础知识-DOM篇》看完了&#xff0c;现在就可以学习BOM了。 注意&#xff1a; 所有的案例都在这里链接: 提取密码密码: yvxo&#xff0c;文章中的每个案例后面都有对应的序号。 1. BOM 基本概念 B…

全球首例机器人自杀事件 因受够无聊家务

据凤凰网,一个奥地利家庭购买一小机器人,每天工作就是倒垃圾、倒垃圾。一天完工后,它竟自己启动,爬到炉边&#xff0c;推开上面的锅&#xff0c;把自己活活烧死…专家称这个机器人实在受够了无聊的家务琐事&#xff0c;才毅然选择自杀机器人也是有尊严的!为这有骨气的robot点根…

【python基础】——数据类型(列表、字典、集合)

骏马金龙——python语法基础 python基础 变量与运算 符号//%**意义整除整除取余幂次方数据种类 #mermaid-svg-7nSRRijcYFCYwTDr .label{font-family:trebuchet ms, verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-7nSRRijcYFCYw…

机器人实现屠宰自动化

当 WESTFLEISCH 注册合作社考虑在 Coesfeld 肉类加工中心内自动化原有的人工屠宰设备过程时&#xff0c;首先在“剔除直肠”及“切开盆腔骨及腹部”两个流程中测试使用了两台库卡机器人。在此过程中&#xff0c;机器人主要以它工作的质量及经济效益说服了使用者。 实施措施/解…

python数据结构《排序专题复习》

目录 常见的三种排序方法 冒泡排序 插入排序 选择排序 其他经典的排序方法 快速排序 堆排序 归并排序 希尔排序 不同排序方法的各维度对比 排序方式的稳定性&#xff1a;若两个相同的元素在排序前后的相对位置不发生改变的排序为稳定排序&#xff0c;否则不稳定排序 常…

BZOJ2844 albus就是要第一个出场

AC通道&#xff1a;http://www.lydsy.com/JudgeOnline/problem.php?id2844 这题貌似HDU上有一道差不多的题&#xff0c;不过我没做过&#xff0c;也就没管了。 首先讲一个线性基的东西&#xff0c;大概就是这样&#xff1a; 然后就是一个什么性质&#xff1a;S异或起来会出现重…

HTG Explains: Why Linux Doesn’t Need Defragmenting

If you’re a Linux user, you’ve probably heard that you don’t need to defragment your Linux file systems. You’ll also notice that Linux distributions don’t come with disk-defragmenting utilities. But why is that? To understand why Linux file systems d…

Spring AOP 实战运用

Spring AOP 实战 看了上面这么多的理论知识, 不知道大家有没有觉得枯燥哈. 不过不要急, 俗话说理论是实践的基础, 对 Spring AOP 有了基本的理论认识后, 我们来看一下下面几个具体的例子吧.下面的几个例子是我在工作中所遇见的比较常用的 Spring AOP 的使用场景, 我精简了很多有…

大话设计模式之策略模式

第二章&#xff1a;商场促销——策略模式 策略模式的定义:策略模式是一种定义一系列算法的方法&#xff0c;从概念上来看&#xff0c;所有这些算法完成的都是相同的工作&#xff0c;知识实现不同&#xff0c;他可以以相同的方式调用所有的算法&#xff0c;减少了各类算法类与使…

【Python学习】——语言风格(变量赋值、深浅拷贝、for循环陷阱)

目录 1、赋值 2、赋值的分类——引用赋值、值赋值 1) 不可变对象引用赋值——字符串、数值、元组等 2&#xff09;可变对象引用赋值——列表、集合、字典 3&#xff09;可变与不可变对象的引用赋值内部分析 4&#xff09;在py文件中&#xff0c;和作用域有关&#xff0c;如…