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
審核
閃兔分揀機器人分揀機器人碼垛生產線自動分揀機器人簡介