苏州昊瓦智能装备有限公司
当前位置: > 产品展示

分拣机器人应用,KUKA机器人高级编程SWRITE的用法

点击:327
分拣机器人有哪些小型自动分拣机器人

SWRITE

SWRITE具有与CWRITE类似的功能和语法。但是,与CWRITE不同的是,SWRITE不会将数据写入通道,而是写入CHAR数组。

SWRITE可以与CWRITE结合在程序中。好处:

lCWRITE可以限制为将数据写入通道。SWRITE可以执行更复杂的格式化任务。这使得程序更加灵活。

lCWRITE最多可以处理10个变量。结合多个SWRITE语句,可以写入10多个变量的数据。

SWRITE触发提前运行停止。

SWRITE(String,State,OFFSET,Format,Var1)

String:Type:CHAR[]

Var变量的格式化内容被写入字符串。

State:Type:STATE_T

自动返回到WRITE的状态

OFFSET:Type:INT

SWRITE在字符串中开始写入的位置。如果要从头开始写入,则偏移量必须设置为0。

例如:

OFFSET=0:SWRITE从第一个位置开始写入。

OFFSET=2:SWRITE从第三个位置开始写入。位置1和2被忽略。

偏移量在写入期间递增。如果在另一个SWRITE语句的情况下,要从第一个位置重新开始写入,则必须在此语句之前将偏移量设置为0。否则,将接受前一条语句的增量偏移量。

Format:Type:CHAR[]

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

Var:

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

例如:

体现出报警信息:

OFFSET=0

SWRITE(user__TXT[],ST_AUSG,OFFSET,"TotzeitAchse%dnachTestlauf=%d*12ms",(EaxNum+6),TotzeitNeu)

Format:CWRITE/SWRITE的“格式”变量

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

格式化字符。可选的。

多个格式字符可以应用于一个格式。

格式化字符描述+转换后的值总是以符号开头:正值带+,负值带-。如果不使用此格式化字符,则正值不带符号表示,负值用-表示。-转换后的值左对齐。#在格式x中,每个不等于0的值都以0开头。在格式e、f和g中,总是插入小数点。0转换后的值前面加上零以构成最小宽度W。[Space]在格式d、e、f、g或i中,转换后的参数前面有一个空格。*格式c和r并不总是正确解释数据字符串中的空格。为避免误解,可以对空格使用带星号(*)的特殊格式规范。因此,以该字符开头的格式不再对应于Var变量之一,而是对应于数据字符串中的空格。

要输出的最小位置数。可选的。

小数点被视为有助于弥补最小数字,前置符号则不然。为了达到最小数量,在末尾添加零字节。必要时可以超过最小数量。

分拣机器人的轨迹规划

例子:

„VAR=1.56

"%+8.4d",VAR

结果:__+1.5600

VAR=125.568

"%+8.4d",VAR

结果:+125.5680

如果宽度指定为0x,这意味着要输出的位置用零填充。

例子:

„VAR=1

"%+04d",VAR

Result:+0001

与不带0的规格相比:

„"%+4d",VAR

Result:___+1

如果未指定宽度,则使用以下默认宽度:

INT,REAL,ENUM:4bytes

BOOL,CHAR:1byte

精度规格

r在数组的情况下:要表示的数组元素数.

e,f:要表示的数组元素数.

G:有效数字位数

S:表示的最大字符数

所有其他格式:要表示的字符数。如果源值包含更多字符,则会被截断或四舍五入。

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

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

数据类型BOOL

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

数据类型枚举

煤矸石分拣机器人机械手设计

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

数组的格式规范

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

格式%r

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

转换示例:

例子1

分拣机器人工资怎么样

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

INTVI

VI=123

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

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

例子2

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

INTVI

VI=123

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

例子3

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

REALVR[10]

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

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

例子4

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

REALVR[10]

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

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

例子5

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

CHARVS[100]

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

例子6

传输前50个数组元素:

CHARVS[100]

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

例子7

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

DECLENUM_TYPE

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

例子8

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

REALV1,V2

V1=3.97

V2=-27.3

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

传输以下数据:

value1=+03.970

value2=-27.30

审核

京东小黄人分拣机器人价格全自动分拣机器人视频神木abb分拣机器人