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

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

3天内不再提示

KUKA机器人高级编程CWRITE的用法

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-04-03 18:00 次阅读

CWRITE

CWRITE 将数据写入打开的串行接口或加载的 LD_EXT_OBJ 类型的外部模块。在加载的 LD_EXT_FCT 类型的外部模块中,CWRITE 调用一个函数。

CWRITE 将命令写入命令通道。

CWRITE 触发提前运行停止。

CWRITE ( Handle or $CMD, State, Mode, Format, Var1 <, ..., Var10>)

Handle/$CMD

类型:INT

句柄:由 COPEN 传输到 WRITE 的变量,用于标识通道

$CMD:用于写入命令通道的预定义变量

State:Type: STATE_T

自动返回到 WRITE 的状态

Mode : Type: INT

类型:MODUS_T

写入模式, 必须初始化模式。

Format: Type: CHAR[]

在将 Var 变量写入字符串之前转换它们。必须为每个 Var 变量指定格式.

Var:

其数据写入字符串的变量。每个语句最多可以有 10 个变量。

写模式Mode

写入模式由 MODUS_T 类型的变量确定。MODUS_T 是一个预定义的枚举类型:

ENUM MODUS_T SYNC, ASYNC, ABS, COND, SEQ 对于 CWRITE,只有 SYNC 和 ASYNC 相关:

SYNC同步

一旦伙伴控制器从接收缓冲区中取出传输的数据,则认为该语句已执行。

ASYNC异步

写入 LD_EXT_FCT 类型的外部模块时,不允许 ASYNC 模式!

以下适用于所有其他通道:一旦数据到达伙伴控制器的接收缓冲区,则认为该语句已执行。

优于 SYNC:程序执行速度更快。

与 SYNC 相比的缺点:可能会丢失数据。

其他价值

如果模式具有 SYNC 或 ASYNC 以外的值,则默认在 SYNC 模式下执行写入。

State.RET1=#DATA_OK:函数成功执行 State.RET1=#CMD_ABORT:功能已取消,但出现错误

例如:

CWRITE($CMD,STAT,MODE,"RUN /R1/CELL ()")程序执行CELL程序

$CMD

通过命令通道$ CMD进行通信

CWRITE可以通过命令通道将语句传输到程序解释器。示例:通过RUN启动程序并使用STOP将其停止。

317458d8-d005-11ed-bfe3-dac502259ad0.png

与命令通道$ CMD通信

命令通道:启动、停止和取消选择程序

程序 A6.SRC 将通过命令通道启动、停止和取消选择。这是通过 SUB 文件中的以下程序行来完成的。

DECL STATE_T STAT

DECL MODUS_T MODE

MODE=#SYNC

...

;选择程序A6()

;要启动程序,请单击“开始”按钮或

;需要外部启动信号

IF $FLAG[1]==TRUE THEN

CWRITE($CMD,STAT,MODE,"RUN/R1/A6()")运行程序

$FLAG[1]=FALSE

ENDIF

;stop program A6()

IF $FLAG[2]==TRUE THEN

CWRITE($CMD,STAT,MODE,"STOP 1")程序停止

$FLAG[2]=FALSE

ENDIF

;cancel program A6()

IF $FLAG[3]==TRUE THEN

CWRITE($CMD,STAT,MODE,"CANCEL 1") 退出程序

$FLAG[3]=FALSE

ENDIF

哪个变量的格式?

一方面,CREAD和SREAD以及CWRITE和SWRITE的格式使用相同。

对于大多数数据类型,有几种允许的格式,例如CHAR数组的“%s”和“%1.r”。需要选择哪种格式取决于伙伴控制器发送或接收数据的方式。

对于数组,规范“Z”可用于定义要考虑的数组元素的数量。如果没有为“Z”指定值,则考虑所有数组元素。进程在第一个未初始化的值处被中止。格式r是一个例外。在这种情况下,进程不会中止。相反,为尚未初始化的变量或数组元素输出随机值。

CREAD或SREAD的格式规范具有以下结构:“%U” 数组的格式规范具有以下结构:“%>U” W要读取的最大字符数。可选择的 Z要写入的数组元素数。可选择的 U转换字符

CWRITE/SWRITE的“格式”变量

CWRITE或SWRITE的格式规范具有以下结构:“%U”

数据类型BOOL

每个不等于零的值都转换为TRUE

数据类型ENUM

系统检查该值是否为允许的ENUM值。如果不是,读取将中止。第一个ENUM常量的值为1。

阵列的格式规范

如果没有足够的数据可用于满足格式规范(例如“%2.5r”,但只有7个字节),则此格式不读取任何内容,CREAD语句将中止。忽略的数据仍然可以读取。

Format %r

只能读取变量所能容纳的字节数。其余的仍然可以阅读。如果数组足够大,但字节数不是数组元素大小的倍数,则冗余字节仍可用于读取(对于以下格式或下一个CREAD语句)。

31988f8c-d005-11ed-bfe3-dac502259ad0.png

31a2caec-d005-11ed-bfe3-dac502259ad0.png

31bde12e-d005-11ed-bfe3-dac502259ad0.png

转换示例:

例子1

整数变量 VI 的值以十进制和十六进制 ASCII 表示法传输。第一个 CWRITE 语句传输字符 123。第二个 CWRITE 语句传输字符 7B。

INT VI

VI=123

CWRITE(HANDLE,SW_T,MW_T,"%d",VI)

CWRITE(HANDLE,SW_T,MW_T,"%x",VI)

例子2

整数变量 VI 的值以二进制表示法传输:

INT VI

VI=123

CWRITE(HANDLE,SW_T,MW_T,"%r",VI)

例子3

传输数组的所有数组元素:

REAL VR[10]

CWRITE(HANDLE,SW_T,MW_T,"%r",VR[])

使用“%r”格式时,系统不会检查变量或数组元素是否已初始化。为尚未初始化的数组元素传输随机值。

例子4

数组的前五个数组元素以二进制表示法传输:

REAL VR[10]

CWRITE(HANDLE,SW_T,MW_T,"%.5r",VR[])

20 个字节以二进制表示法传输。

例子5

传输直到第一个未初始化元素的所有数组元素:

CHAR VS[100]

CWRITE(HANDLE,SW_T,MW_T,"%s",VS[])

例子6

传输前 50 个数组元素:

CHAR VS[100]

CWRITE(HANDLE,SW_T,MW_T,"%s",VS[])

例子7

ENUM 常量的内部值以 ASCII 符号传输。对应号码转:

DECL ENUM_TYP E

CWRITE(HANDLE,SW_T,MW_T,"%d",E)

例子8

两个 REAL 值与附加文本一起传输:

REAL V1,V2

V1=3.97

V2=-27.3

CWRITE(...,...,...,"value1=%+#07.3f value2=+#06.2f",V1,V2)

传输以下数据:

value1=+03.970

value2=-27.30

CWRITE和命令界面

31cffa12-d005-11ed-bfe3-dac502259ad0.png

CELL.SRC可通过CWRITE语句和RUN从SPS.SUB程序中选择。呼叫仅在冷启动时生效。

CWRITE可以通过命令通道$CMD将语句传输到解释器。除了机器人口译员和系统提交外,扩展提交也可在多提交模式下用于此目的。

与单一提交模式相比,以下命令的含义发生了变化:

RUN[口译员ID]

STOP[口译员ID]

重置[口译员ID]

取消[口译员ID]

口译员ID:

0:所有提交口译员

1:机器人翻译

2:系统提交解释器

3:扩展提交解释器1

4:扩展提交解释器2

9:扩展提交解释器7

此外,RUN还扩展了可选元素[>口译员ID]。

CWRITE ($CMD, STAT, MODE, "RUN/R1/CELL()")

单次提交模式下的行为: 启动程序CELL()。由于CELL()是一个SRC程序,因此它在机器人解释器中启动。

多提交模式下的行为: 与单次提交模式相同。该程序行可用于系统提交或扩展提交。

CWRITE ($CMD, STAT, MODE, "RUN/R1/SPS()") 单次提交模式下的行为: 启动程序SPS()。

由于SPS()是一个SUB程序,它在系统提交解释器中启动(=仅在单次提交模式下提交解释器)。

多提交模式下的行为: 启动程序SPS()。由于SPS()是SUB程序,它在系统提交解释器中启动。

CWRITE ($CMD, STAT, MODE, "STOP 0")

这个程序行只在机器人程序中有意义。 单次提交模式下的行为: 停止系统提交解释器。 多提交模式下的行为: 停止所有正在运行的提交解释器。

CWRITE ($CMD, STAT, MODE, "CANCEL 0")

单次提交模式下的行为: 取消选择系统提交解释器。 多提交模式下的行为: 取消选择所有提交的口译员。

CWRITE ($CMD, STAT, MODE, "RUN/R1/MySubProg() > 5")

在单次提交模式下不允许使用此语句。

多提交模式下的行为: 如果MySubProg()是SUB程序,它将从扩展的submit 3开始。

该程序行可用于其他提交解释器或机器人程序。







审核编辑:刘清

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

    关注

    112

    文章

    15562

    浏览量

    173603
  • ABS
    ABS
    +关注

    关注

    2

    文章

    156

    浏览量

    34475
  • FCT
    FCT
    +关注

    关注

    1

    文章

    9

    浏览量

    9776
  • KUKA机器人
    +关注

    关注

    4

    文章

    143

    浏览量

    8878

原文标题:KUKA机器人高级编程CWRITE的用法V3.10

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    KUKA机器人高级编程SWRITE的用法案例

      SWRITE SWRITE 具有与 CWRITE 类似的功能和语法。但是,与 CWRITE 不同的是,SWRITE 不会将数据写入通道,而是写入 CHAR 数组。 SWRITE 可以
    发表于 07-05 17:39 2719次阅读

    KUKA重型机器人

    这个是KUKA重型机器人处理和测量混凝土轨枕的视频。处理得相当精细。真心值得爱好机器者和爱国者研究研究。
    发表于 02-03 15:18

    KUKA机器人控制柜三维模型

    寻求KUKA机器人控制柜三维模型,做方案有时需要用到,大家谁有可以给我发一份吗?先谢谢了
    发表于 04-18 16:05

    KUKA机器人问题解答

    1 开机坐标系无效 世界坐标系是以枪头为基点,在这种坐标系中机器人所有的动作都是按照以枪头为顶点来完成移动,XYZ方向切割枪方向不改变,如果机器人在世界坐标系中移动,枪头也随着改变方向,那就是我们在
    发表于 07-15 07:48

    KUKA焊接机器人伺服电机常见故障及维修处理

    KUKA焊接机器人伺服电机常见故障及维修处理1、库卡机器人伺服电机的基本检查由于库卡机器人伺服电机内含有精密检测器,因此,当发生碰撞、冲击时可能会引起故障,在对库卡
    发表于 09-26 16:51

    工业机器人组成结构相关资料分享

    工业机器人是近两年机械行业最热的字眼,随着企业工业机器人的增多,很多机械工程师对于工业机器人充满了好奇。作为机器人四大家族之一的KUKA,已
    发表于 07-05 06:44

    库卡机器人MGV电源模块维修

    KUKA库卡机器人MGV电源模块维修PH1013-2840MGV电源维修 库卡电源模块维修 机器人电源模块维修 库卡控制器维修 KUKA电源维修KU
    发表于 09-08 07:30

    KUKA机器人伺服驱动模块维修

    KUKA库卡C4机器人驱动器故障报警维修库卡机器人维修内容包括库卡机器人示教器维修,KUKA伺服驱动模块维修,库卡
    发表于 09-17 07:09

    没有有前辈用LabVIEW控制kuka机器人c2的经验?通讯是怎么做到的?

    我看NI有Robotics Toolkit for KUKA KR C2的附加包,这个怎么用啊?如何和kuka机器人建立通讯啊?是Tcp接口吗?
    发表于 10-21 20:59

    KUKA机器人高级编程CWRITE用法

    CWRITE 将数据写入打开的串行接口或加载的 LD_EXT_OBJ 类型的外部模块。在加载的 LD_EXT_FCT 类型的外部模块中,CWRITE 调用一个函数。
    的头像 发表于 03-28 14:20 1592次阅读

    KUKA机器人高级编程CWRITE用法

    CWRITE 将数据写入打开的串行接口或加载的 LD_EXT_OBJ 类型的外部模块。在加载的 LD_EXT_FCT 类型的外部模块中,CWRITE 调用一个函数。
    的头像 发表于 04-12 09:41 1082次阅读

    教你如何去使用KUKA机器人高级编程CWRITE

    CWRITE 将数据写入打开的串行接口或加载的 LD_EXT_OBJ 类型的外部模块。在加载的 LD_EXT_FCT 类型的外部模块中,CWRITE 调用一个函数。
    的头像 发表于 02-12 11:32 1579次阅读

    KUKA机器人高级编程CWRITE用法V3.1

    CWRITE可以通过命令通道$CMD将语句传输到解释器。除了机器人口译员和系统提交外,扩展提交也可在多提交模式下用于此目的。
    的头像 发表于 03-08 11:20 663次阅读

    浅谈KUKA机器人CWRITE编程用法

    CWRITE”语句能够使文字写入打开的通道,或者命令被写入命令通道。 应用实例: 数据 ( 写语句) 在KRC1 和装置间( PC, 智能传感器...). 转换。
    发表于 05-09 14:55 782次阅读
    浅谈<b class='flag-5'>KUKA</b><b class='flag-5'>机器人</b><b class='flag-5'>CWRITE</b><b class='flag-5'>编程</b><b class='flag-5'>用法</b>

    工业机器人编程

    工业机器人编程 工业机器人一般使用的编程语言主要有:基于图形化编程界面的编程语言,如ABB的Ro
    发表于 06-26 14:03 683次阅读