您好!欢迎光临工博士商城

库卡机器人服务集成商

产品:64    
联系我们
联系方式
  • 联系人:李经理
  • 电话:18621383686
  • 邮件:996163008@qq.com
  • 手机:18621383686
新闻分类
  • 暂无分类
友情链接
首页 > 新闻中心 > KUKA机器人高级编程CWRITE的用法
新闻中心
KUKA机器人高级编程CWRITE的用法
发布时间:2023-03-06        浏览次数:67        返回列表
 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 模式下执行写入。
 
 
例如:
 
CWRITE($CMD,STAT,MODE,"RUN /R1/CELL ()")程序执行CELL程序
 
$CMD
 
通过命令通道$ CMD进行通信
 
CWRITE可以通过命令通道将语句传输到程序解释器。示例:通过RUN启动程序并使用STOP将其停止。

微信图片_20230306111950



 
与命令通道$ CMD通信
 
命令通道:启动、停止和取消选择程序
 
程序 A6.SRC 将通过命令通道启动、停止和取消选择。这是通过 SUB 文件中的以下程序行来完成的。
 
DECL STATE_T STAT
 
DECL MODUS_T MODE
 
MODE=#SYNC
 
...
 
;selec 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


更多点击:库卡机器人



 

联系热线:18621383686 联系人:李经理 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六8:00-22:00 库卡机器人服务集成商

返回
顶部