0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

KUKA機(jī)器人高級(jí)編程SWRITE的使用方法

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來(lái)源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 作者:機(jī)器人及PLC自動(dòng)化 ? 2022-07-06 11:53 ? 次閱讀

SWRITE

SWRITE 具有與 CWRITE 類似的功能和語(yǔ)法。但是,與 CWRITE 不同的是,SWRITE 不會(huì)將數(shù)據(jù)寫入通道,而是寫入 CHAR 數(shù)組。

SWRITE 可以與 CWRITE 結(jié)合在程序中。好處:

lCWRITE 可以限制為將數(shù)據(jù)寫入通道。SWRITE 可以執(zhí)行更復(fù)雜的格式化任務(wù)。這使得程序更加靈活。

lCWRITE 最多可以處理 10 個(gè)變量。結(jié)合多個(gè)SWRITE語(yǔ)句,可以寫入10多個(gè)變量的數(shù)據(jù)。

SWRITE 觸發(fā)提前運(yùn)行停止。

SWRITE (String, State, OFFSET , Format, Var1 <, var10="">)

String: Type: CHAR[]

Var 變量的格式化內(nèi)容被寫入字符串。

State:Type: STATE_T

自動(dòng)返回到 WRITE 的狀態(tài)

OFFSET : Type: INT

SWRITE 在字符串中開(kāi)始寫入的位置。如果要從頭開(kāi)始寫入,則偏移量必須設(shè)置為 0。

例如:

OFFSET=0 : SWRITE 從第一個(gè)位置開(kāi)始寫入。

OFFSET=2 : SWRITE 從第三個(gè)位置開(kāi)始寫入。位置 1 和 2 被忽略。

偏移量在寫入期間遞增。如果在另一個(gè) SWRITE 語(yǔ)句的情況下,要從第一個(gè)位置重新開(kāi)始寫入,則必須在此語(yǔ)句之前將偏移量設(shè)置為 0。否則,將接受前一條語(yǔ)句的增量偏移量。

Format: Type: CHAR[]

在將 Var 變量寫入字符串之前轉(zhuǎn)換它們。必須為每個(gè) Var 變量指定格式.

Var:

其數(shù)據(jù)寫入字符串的變量。每個(gè)語(yǔ)句最多可以有 10 個(gè)變量。

例如:

體現(xiàn)出報(bào)警信息

OFFSET=0

SWRITE(user_msg.msg_TXT[],ST_AUSG,OFFSET,"Totzeit Achse%d nach Testlauf= %d *12ms ",(EaxNum+6), TotzeitNeu)

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

CWRITE 或 SWRITE 的格式規(guī)范具有以下結(jié)構(gòu):“ %U”

格式化字符??蛇x的。多個(gè)格式字符可以應(yīng)用于一個(gè)格式。

pYYBAGLFB6SAW_GTAABOThLzYng716.png

要輸出的最小位置數(shù)??蛇x的。

小數(shù)點(diǎn)被視為有助于彌補(bǔ)最小數(shù)字,前置符號(hào)則不然。為了達(dá)到最小數(shù)量,在末尾添加零字節(jié)(以小端格式)。必要時(shí)可以超過(guò)最小數(shù)量。

例子:

? VAR=1.56

"%+8.4d", VAR

結(jié)果: _ _ + 1 . 5 6 0 0

VAR=125.568

"%+8.4d", VAR

結(jié)果: + 1 2 5 . 5 6 8 0

如果寬度指定為 0x,這意味著要輸出的位置用零填充。

例子:

? VAR=1

"%+04d", VAR

Result: + 0 0 0 1

與不帶0的規(guī)格相比:

? "%+4d", VAR

Result: _ _ _ + 1

如果未指定寬度,則使用以下默認(rèn)寬度:

INT, REAL, ENUM: 4 bytes

BOOL, CHAR: 1 byte

精度規(guī)格

r 在數(shù)組的情況下: 要表示的數(shù)組元素?cái)?shù).

e, f:要表示的數(shù)組元素?cái)?shù).

G: 有效數(shù)字位數(shù)

S: 表示的最大字符數(shù)

所有其他格式: 要表示的字符數(shù)。如果源值包含更多字符,則會(huì)被截?cái)嗷蛩纳嵛迦搿?/p>

轉(zhuǎn)換字符是格式變量的一個(gè)組成部分。

表中列出的轉(zhuǎn)換字符是允許的。它們對(duì)應(yīng)于編程語(yǔ)言 C 中 fprintf() 函數(shù)的格式化字符。不支持 fprintf() 中的字符 o、p、n、u 和 [list]。

帶有轉(zhuǎn)換字符的大寫和小寫字母沒(méi)有區(qū)別。布爾值輸出為 0 或 1,ENUM 常量輸出為數(shù)字。

c 需要一個(gè)單字符參數(shù);然后將其作為 ASCII 字符處理。不能為帶有轉(zhuǎn)換字符 c 的格式指定寬度 W。

d 整數(shù)表示為小數(shù)。

e 指數(shù)符號(hào)。參數(shù)被轉(zhuǎn)換為格式 [-]m.nnnnnnxx 。format 中的第二個(gè)字符串指定小數(shù)點(diǎn)右側(cè)的位數(shù)。

f 小數(shù)點(diǎn)表示。參數(shù)以 [-]mm.nnnnnn 格式表示。format 中的第二個(gè)字符串指定小數(shù)點(diǎn)右側(cè)的位數(shù)。

g 使用 %e 或 %f 執(zhí)行格式化,具體取決于哪種格式允許更短的表示。

i 整數(shù)表示為小數(shù)。

r 將其變量的值不轉(zhuǎn)換為 ASCII,而是轉(zhuǎn)換為二進(jìn)制表示法。使用 %r 格式,系統(tǒng)不會(huì)檢查變量或數(shù)組元素是否已初始化。

s 表示一個(gè)字符串。

x 十六進(jìn)制表示法。表示以 16 為基數(shù)的參數(shù)。

對(duì)于大多數(shù)數(shù)據(jù)類型,有幾種允許的格式,例如 "%s" 和 "%1.r" 用于 CHAR 數(shù)組。需要選擇哪種格式取決于伙伴控制器發(fā)送或接收數(shù)據(jù)的方式。

在數(shù)組的情況下,規(guī)范“Z”可用于定義要考慮的數(shù)組元素的數(shù)量。如果沒(méi)有為“Z”指定值,則考慮所有數(shù)組元素。然而,該過(guò)程在第一個(gè)未初始化的值處中止。一個(gè)例外是格式 r。在這種情況下,該過(guò)程不會(huì)中止。相反,為尚未初始化的變量或數(shù)組元素輸出隨機(jī)值。

79232304-fc6a-11ec-ba43-dac502259ad0.png

79390cb4-fc6a-11ec-ba43-dac502259ad0.png

數(shù)據(jù)類型 BOOL

每個(gè)不等于零的值都轉(zhuǎn)換為 TRUE

數(shù)據(jù)類型枚舉

系統(tǒng)檢查該值是否為允許的 ENUM 值。如果不是,則中止讀取。第一個(gè) ENUM 常量的值為 1。

數(shù)組的格式規(guī)范

如果沒(méi)有足夠的可用數(shù)據(jù)來(lái)滿足格式規(guī)范(例如“%2.5r”,但僅存在 7 個(gè)字節(jié)),則不會(huì)讀取此格式的任何內(nèi)容并中止 CREAD 語(yǔ)句。被忽略的數(shù)據(jù)仍然可供讀取。

格式 %r

只讀取變量所能容納的字節(jié)數(shù)。其余的仍然可以閱讀。如果數(shù)組足夠大但字節(jié)數(shù)不是數(shù)組元素大小的倍數(shù),則冗余字節(jié)仍可用于讀?。▽?duì)于以下格式或下一個(gè) CREAD 語(yǔ)句)。

79509276-fc6a-11ec-ba43-dac502259ad0.png

796548d8-fc6a-11ec-ba43-dac502259ad0.png

轉(zhuǎn)換示例:

例子1

整數(shù)變量 VI 的值以十進(jìn)制和十六進(jìn)制 ASCII 表示法傳輸。第一個(gè) CWRITE 語(yǔ)句傳輸字符 123。第二個(gè) CWRITE 語(yǔ)句傳輸字符 7B。

INT VI

VI=123

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

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

例子2

整數(shù)變量 VI 的值以二進(jìn)制表示法傳輸:

INT VI

VI=123

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

例子3

傳輸數(shù)組的所有數(shù)組元素:

REAL VR[10]

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

使用“%r”格式時(shí),系統(tǒng)不會(huì)檢查變量或數(shù)組元素是否已初始化。為尚未初始化的數(shù)組元素傳輸隨機(jī)值。

例子4

數(shù)組的前五個(gè)數(shù)組元素以二進(jìn)制表示法傳輸:

REAL VR[10]

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

20 個(gè)字節(jié)以二進(jìn)制表示法傳輸。

例子5

傳輸直到第一個(gè)未初始化元素的所有數(shù)組元素:

CHAR VS[100]

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

例子6

傳輸前 50 個(gè)數(shù)組元素:

CHAR VS[100]

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

例子7

ENUM 常量的內(nèi)部值以 ASCII 符號(hào)傳輸。對(duì)應(yīng)號(hào)碼轉(zhuǎn):

DECL ENUM_TYP E

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

例子8

兩個(gè) REAL 值與附加文本一起傳輸:

REAL V1,V2

V1=3.97

V2=-27.3

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

傳輸以下數(shù)據(jù):

value1=+03.970

value2=-27.30

在大眾版本內(nèi)的設(shè)置事例

SWRITE(USER_MSG.MSG_TXT[],stat,offset,"EKI:DatensatzB X=%7.2f,Y=%7.2f,Z=%7.2f,A=%7.2f,B=%7.2f,C=%7.2f ",EKI_B.X,EKI_B.Y,EKI_B.Z,EKI_B.A,EKI_B.B,EKI_B.C)

將多個(gè)浮點(diǎn)數(shù)據(jù)寫入在USER_MSG.MSG_TXT[]字符串里.

SWRITE(USER_MSG.MSG_txt[],STATE, OFFSET, "TCP alt X=%.1F Y=%.1F Z=%.1F",TOOL_DATA[COR_TOOL_NO].x,TOOL_DATA[COR_TOOL_NO].y,TOOL_DATA[COR_TOOL_NO].z)

將TOOL_DATA的數(shù)據(jù)寫入到字符串USER_MSG.MSG_txt[]里,用來(lái)顯示TCP.

通過(guò)SWRITE的功能我們就可以實(shí)現(xiàn)了浮點(diǎn)數(shù)存入到字符串的功能.

SWRITE(USER_MSG.MSG_TXT[],STATE,OFFSET,"%s %s",sMeldFunction[],USER_MSG.MSG_TXT[])

將字符串寫入到USER_MSG.MSG_TXT[]字符串里

7982f3ec-fc6a-11ec-ba43-dac502259ad0.jpg

通過(guò)SWRITE功能我實(shí)現(xiàn)了歷史的突破!


審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    27991

    瀏覽量

    205549
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1921

    瀏覽量

    34502

原文標(biāo)題:KUKA機(jī)器人高級(jí)編程SWRITE的用法

文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    協(xié)作機(jī)器人拽拖示教詳解

    ? ? ? 協(xié)作機(jī)器人的拖動(dòng)示教是一種簡(jiǎn)化機(jī)器人編程方法,通過(guò)人類操作員直接引導(dǎo)機(jī)器人進(jìn)行任務(wù)執(zhí)行,而無(wú)需進(jìn)行復(fù)雜的
    的頭像 發(fā)表于 10-23 15:52 ?9次閱讀

    工業(yè)機(jī)器人編程流程及注意事項(xiàng)

    工業(yè)機(jī)器人在現(xiàn)代制造業(yè)中扮演著越來(lái)越重要的角色。它們不僅提高了生產(chǎn)效率,還提升了產(chǎn)品質(zhì)量和一致性。編程是使工業(yè)機(jī)器人能夠執(zhí)行特定任務(wù)的關(guān)鍵步驟。 1. 需求分析 在開(kāi)始編程之前,首先需
    的頭像 發(fā)表于 09-04 09:40 ?440次閱讀

    工業(yè)機(jī)器人常用的編程方式

    工業(yè)機(jī)器人編程是確保機(jī)器人能夠執(zhí)行特定任務(wù)的關(guān)鍵步驟。編程方式多種多樣,每種方式都有其特定的應(yīng)用場(chǎng)景和優(yōu)勢(shì)。 工業(yè)機(jī)器人
    的頭像 發(fā)表于 09-04 09:26 ?403次閱讀

    工業(yè)機(jī)器人的四種編程(示教編程、離線編程、自增強(qiáng)現(xiàn)實(shí)編程編程)剖析!

    當(dāng)前機(jī)器人廣泛應(yīng)用于焊接、裝配、搬運(yùn)、噴漆及打磨等領(lǐng)域,任務(wù)的復(fù)雜程度不斷增加,而用戶對(duì)產(chǎn)品的質(zhì)量、效率的追求越來(lái)越高。在這種形式下,機(jī)器人編程方式、編程效率和質(zhì)量顯得越來(lái)越重要。降
    的頭像 發(fā)表于 08-30 12:14 ?926次閱讀
    工業(yè)<b class='flag-5'>機(jī)器人</b>的四種<b class='flag-5'>編程</b>(示教<b class='flag-5'>編程</b>、離線<b class='flag-5'>編程</b>、自增強(qiáng)現(xiàn)實(shí)<b class='flag-5'>編程</b>主<b class='flag-5'>編程</b>)剖析!

    Al大模型機(jī)器人

    金航標(biāo)kinghelm薩科微slkor總經(jīng)理宋仕強(qiáng)介紹說(shuō),薩科微Al大模型機(jī)器人有哪些的優(yōu)勢(shì)?薩科微AI大模型機(jī)器人由清華大學(xué)畢業(yè)的天才少年N博士和王博士團(tuán)隊(duì)開(kāi)發(fā),與同行相比具有許多優(yōu)勢(shì):語(yǔ)言
    發(fā)表于 07-05 08:52

    工業(yè)機(jī)器人仿真軟件有哪些

    功能強(qiáng)大的機(jī)器人仿真和離線編程軟件,支持多種機(jī)器人品牌,如Fanuc、KUKA、ABB等。它提供了豐富的工具,如3D可視化、碰撞檢測(cè)、路徑優(yōu)化等。 CoppeliaSim (前稱V-R
    的頭像 發(fā)表于 06-17 09:34 ?3065次閱讀

    abb機(jī)器人home點(diǎn)設(shè)置方法

    ABB機(jī)器人的home點(diǎn)設(shè)置是機(jī)器人編程和操作中非常重要的一環(huán),它關(guān)系到機(jī)器人的精度和穩(wěn)定性。本文將詳細(xì)介紹ABB機(jī)器人home點(diǎn)設(shè)置的
    的頭像 發(fā)表于 06-17 09:27 ?2264次閱讀

    abb工業(yè)機(jī)器人編程語(yǔ)言是什么

    ABB工業(yè)機(jī)器人編程語(yǔ)言主要是RAPID(Robot Application Programming Interface for Development),它是一種高級(jí)編程語(yǔ)言,專門
    的頭像 發(fā)表于 06-16 16:49 ?2001次閱讀

    Kuka機(jī)器人配置Profinet通訊網(wǎng)關(guān)HT3S-PNS-ECS

    Kuka機(jī)器人配置Profinet通訊網(wǎng)關(guān)HT3S-PNS-ECS
    的頭像 發(fā)表于 06-13 15:52 ?548次閱讀
    <b class='flag-5'>Kuka</b><b class='flag-5'>機(jī)器人</b>配置Profinet通訊網(wǎng)關(guān)HT3S-PNS-ECS

    編程電源使用方法

    編程電源使用方法編程電源使用方法 摘要:本文詳細(xì)介紹了可編程電源的使用方法,包括其基本概念
    的頭像 發(fā)表于 06-10 15:29 ?750次閱讀

    LabVIEW的六軸工業(yè)機(jī)器人運(yùn)動(dòng)控制系統(tǒng)

    。LabVIEW的可視化編程環(huán)境和強(qiáng)大的數(shù)據(jù)處理能力,使得復(fù)雜的運(yùn)動(dòng)學(xué)算法和軌跡規(guī)劃得以順利實(shí)現(xiàn),顯著提高了工業(yè)機(jī)器人的控制精度和效率。 ? 這是LabVIEW的一個(gè)功能介紹,更多的使用方法與開(kāi)發(fā)案例,歡迎登錄官網(wǎng),了解更多信息
    發(fā)表于 12-21 20:03

    工業(yè)機(jī)器人產(chǎn)業(yè)發(fā)展及應(yīng)用現(xiàn)狀

    機(jī)器人(Robot)是一種能夠半自主或全自主工作的智能機(jī)器機(jī)器人能夠通過(guò)編程和自動(dòng)控制來(lái)執(zhí)行諸如作業(yè)或移動(dòng)等任務(wù)。根據(jù)制造目的的不同, 機(jī)器人
    發(fā)表于 12-21 16:07 ?1221次閱讀
    工業(yè)<b class='flag-5'>機(jī)器人</b>產(chǎn)業(yè)發(fā)展及應(yīng)用現(xiàn)狀

    機(jī)器人建模方法和組成

    URDF:機(jī)器人建模方法 ROS是機(jī)器人操作系統(tǒng),當(dāng)然要給機(jī)器人使用啦,不過(guò)在使用之前,還得讓ROS認(rèn)識(shí)下我們使用的機(jī)器人,如何把一個(gè)
    的頭像 發(fā)表于 11-22 16:30 ?809次閱讀
    <b class='flag-5'>機(jī)器人</b>建模<b class='flag-5'>方法</b>和組成

    機(jī)器人阻抗控制有幾種方法

    在工業(yè)機(jī)器人中,阻抗控制是一種非常重要的控制方法,主要用于控制機(jī)器人的力和位。通過(guò)調(diào)整阻抗,機(jī)器人可以更好地適應(yīng)不同的操作環(huán)境和任務(wù)需求。 阻抗控制的基本思路是:建立一個(gè)期望的
    的頭像 發(fā)表于 11-08 18:08 ?1312次閱讀
    <b class='flag-5'>機(jī)器人</b>阻抗控制有幾種<b class='flag-5'>方法</b>

    機(jī)器人編程需要什么軟件?

    機(jī)器人編程需要什么軟件
    發(fā)表于 11-01 07:34