SWRITE
SWRITE存在与CWRITE近似的功用跟语法。可是,与CWRITE分歧的是,SWRITE不会将数据写入通道,而是写入CHAR数组。
SWRITE可以与CWRITE联合正在顺序中。益处:
lCWRITE可以限定为将数据写入通道。SWRITE可以履行更庞大的格式化使命。那使得顺序加倍灵巧。
lCWRITE最多可以处置惩罚10个变量。联合多个SWRITE语句,可以写入10多个变量的数据。
SWRITE触发提早运转终止。
SWRITE(StringStateOFFSETFormatVar1)
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_AUSGOFFSET"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
若是未指定宽度,则利用以下默许宽度:
INTREALENUM:4bytes
BOOLCHAR:1byte
精度规格
r正在数组的环境下:要默示的数组元素数.
ef:要默示的数组元素数.
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(HANDLESW_TMW_T"%d"VI)
CWRITE(HANDLESW_TMW_T"%x"VI)
例子2
整数变量VI的值以二进制表示法传输:
INTVI
VI=123
CWRITE(HANDLESW_TMW_T"%r"VI)
例子3
传输数组的一切数组元素:
REALVR[10]
CWRITE(HANDLESW_TMW_T"%r"VR[])
利用“%r”格局时,体系不会搜检变量或数组元素是不是已初始化。为还没有初始化的数组元素传输随机值。
例子4
数组的前五个数组元素以二进制表示法传输:
REALVR[10]
CWRITE(HANDLESW_TMW_T"%.5r"VR[])
20个字节以二进制表示法传输。
例子5
传输直到第一个已初始化元素的一切数组元素:
CHARVS[100]
CWRITE(HANDLESW_TMW_T"%s"VS[])
例子6
传输前50个数组元素:
CHARVS[100]
高速智能分拣机器人分拣机器人怎么设置CWRITE(HANDLESW_TMW_T"%s"VS[])
例子7
ENUM常量的外部值以ASCII符号传输。对应号码转:
DECLENUM_TYPE
CWRITE(HANDLESW_TMW_T"%d"E)
例子8
两个REAL值与附加文本一路传输:
REALV1V2
V1=3.97
小黄人分拣机器人多少钱V2=-27.3
CWRITE(........."value1=%+#07.3fvalue2=+#06.2f"V1V2)
传输以下数据:
value1=+03.970
value2=-27.30
审核
闪兔分拣机器人分拣机器人码垛生产线自动分拣机器人简介