Responsive image

首页 > 新闻动态 > 技术交流 > KUKA机器人高级编程CWRITE的用法

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

发布时间:2022-04-22    浏览量:405

 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 或 ASYNC 以外的值,则默认在 SYNC 模式下执行写入。

例如:

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

$CMD

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

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

与命令通道$ CMD通信

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

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

DECL STATE_T STAT

DECL MODUS_T MODE

MODE=#SYNC

;select program A6()

;to start the program the START-button or

;an external start-signal is needed

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

转换示例:

例子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

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

上一个:PLC、DCS、FCS常见控制系统的根本区别在哪里介绍 返回 下一个:PLC的通信方法

联系我们

联系人:尹老师
电话:159-0684-5558
QQ:41780253
江东校区地址:宁波江东百丈东路1130号海运港大厦8楼
海曙校区:海曙区学院路788号upark商业公园B4幢一楼,石浦大酒店旁边匠心教育