全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 机器人 >

KUKA机器人CAST_TO-CAST_FROM简析

时间:2023-05-09 15:40

人气:

作者:admin

标签: 接收器  TCP通信 

导读:KUKA机器人CAST_TO-CAST_FROM简析-CAST_TO使得使用单个CWRITE语句处理多达4 KB的数据成为可能。CAST_TO将单个变量分组为一个缓冲区。...

下面是KUKA机器人中-TCP通讯里的纯理论的东西.

CAST_TO

CAST_TO使得使用单个CWRITE语句处理多达4 KB的数据成为可能。CAST_TO将单个变量分组为一个缓冲区。然后,CWRITE将此缓冲区写入通道。

最大缓冲区大小:4 KB(= 4,096字节)。如果数据量太大,以致最大缓冲区大小不足,则必须使用几个连续的CWRITE语句。

CAST_TO不会触发提前运行停止,但是,如果处理的变量确实触发了提前运行stop,则间接触发提前运行停止。

如果使用CWRITE传输使用CAST_TO生成的缓冲区,则CWRITE语句中仅允许以下转换字符:

r(=原始数据格式)

s(=字符串格式)

与s相比,r具有以下优点:

如果传输了字符0,则将其整数表示为字符串的结尾。r不会发生此问题。

偏移量以字节为单位。如果CREAD用r即二进制读取数据,则可以使用偏移量轻松计算已传输的值的数量。

CAST_TO (Buffer, OFFSET, Var1 < ,  … , Var10 > )

Buffer:

类型:CHAR数组,将变量Var1…Var10写入的缓冲区.

OFFSET:

类型:INT 缓冲区内的位置(以字节为单位),之后将数据写入缓冲区。偏移量从0开始。

Var1 … Var10

写入缓冲区的变量。每个语句最多可以有10个变量。

对于未初始化的变量或数组元素,会将随机值写入缓冲区。由于随机值可能会导致缓冲区接收器出现问题,因此建议初始化所有变量和数组元素。

CAST_FROM

CAST_FROM使得使用单个CREAD语句处理多达4 KB的数据成为可能。如果CREAD已从通道读取缓冲区,则CAST_FROM可以将缓冲区分解为各个变量。

最大缓冲区大小:4 KB(= 4,096字节)。如果数据量太大以至于最大缓冲区大小不足,则必须使用几个连续的CREAD语句。

CAST_FROM不会触发提前运行停止,但是,如果处理的变量确实触发了提前停止,则间接触发提前运行停止。

CAST_FROM ( Buffer , OFFSET, Var1 < ,  … , Var10 > )

例如在EthernetKRL( )程序中设定的EKI_GetFrame:

EKI_GetFrame从存储器读取 FRAME 类型的数值

示例 RET = EKI_GetFrame("Channel_1", "Root/TCP", MyFrame)

程序分析:

GLOBAL DEFFCT EKI_STATUS 

EKI_GetFrame(strChannelName[]:IN,strPlace[]:IN,value:OUT)

声明变量: 

   DECL CHAR strChannelName[]    字符串

   DECL CHAR strPlace[]    字符串

   DECL FRAME value   FRAME坐标类型变量

   DECL CHAR Buff[24]  24长度的字符串

   DECL STATE_T Stat    状态变量

   DECL MODUS_T Mode   

   DECL EKI_STATUS Ret   EthernetKRL通讯专用变量

   DECL INT Offset

设置模式:

   Mode = #SYNC  设置同步模式

   Ret = EKI_NULL_STATUS 

   ret.buff=1

   Offset = 0

   Cast_To(Buff[], Offset,value)  将坐标变量写入缓冲区

   CONTINUE

   CWRITE($FCT_CALL,Stat,Mode,"EFC_eki_Get",strChannelName[],strPlace[],Buff[],Ret.Buff, Ret.Read, TYPEFRAME,Ret.Connected)

使用”EFC_eki_Get”将Buff[] 里字符串坐标FRAME值通过EthernetKRL软件发出开通的通道,给PC上位机软件使用

   Offset=0

   Cast_From(Buff[], Offset,value)将缓存区里的值再发给变量

   Ret.Msg_No = Stat.Msg_No 

   RETURN Ret  发出反馈值

ENDFCT






审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信