发那科Karel-字符串解析

本文详细介绍了如何在Fanuc的Karel程序中解析通过Socket通讯接收到的包含“功能码”和“点位坐标”的字符串。通讯协议定义了字符串的结构,包括各坐标和角度的格式。通过使用INDEX和SUB_STR等Karel命令,将字符串拆分成各个部分并转换为REAL数值。提供的程序实例展示了如何逐个提取和转换坐标数据。
摘要由CSDN通过智能技术生成

一、前言

App(应用程序)和Fanuc机械臂进行Socket通讯,通过将“功能码”和“点位坐标”转换成字符串发送到服务端/客户端,并且也需要App和Fanuc机械臂Karel程序中能将接收到字符串解析出“功能码”和“点位坐标”。本文章主要是介绍在Fanuc的Karel程序中,从一串字符串中如何解析所需要的内容。

二、通讯协议

起始符功能码间隔符

X的坐标

(mm)

间隔符

Y的坐标

(mm)

间隔符

Z的坐标

(mm)

间隔符

Rx的坐标

(⁰)

间隔符

Ry的坐标

(⁰)

间隔符

Ry的坐标

(⁰)

结束符
#FC,保留三位小数,保留三位小数,保留三位小数,保留二位小数,保留二位小数,保留二位小数#

eg:#4, 12.332, 13.114, 14.224,  20.01, 30.22, -15.22#

三、解析示例

会使用到的Karel中命令

1. INDEX 检索STRING中指定字符的索引

 2. SUB_STR 截取指定位置和指定长度的字符

 

 3.CNV_STR_REAL 将STRING转换成REAL

 具体程序实例如下:

ROUTINE RecvData2Pos(str_input:STRING)
BEGIN
  tmp_num = INDEX(str_input,',')
  tmp_str = SUB_STR(str_input,tmp_num+1,200)
  FOR count=1 TO 6 DO
  	--获取string中第一个','的索引
    tmp_num = INDEX(tmp_str,',')
    --先截取tmp_str中的[1]~[tmp_num-1]的字符,再转换成real
    CNV_STR_REAL(SUB_STR(tmp_str,1,tmp_num-1),analysis_pos[count])
    WRITE('analysis_pos[count]=' ,analysis_pos[count],CR)
    --截取剩下的字符串 
  	tmp_str = SUB_STR(tmp_str,tmp_num+1,200) 	
  ENDFOR
END RecvData2Pos

发那科Socket程序是一种用于实现网络通信的编程技术。它通过TCP/IP协议建立网络连接,使得不同的计算机之间可以进行数据交换和通信。发那科Socket程序分为客户端和服务器端两部分。 在客户端程序中,首先需要创建一个Socket对象,指定服务器的IP地址和端口号,用于建立与服务器的连接。接着,可以通过该Socket对象发送数据给服务器,并接收服务器返回的数据。客户端程序常用于向服务器发送请求,获取或提交数据。 服务器端程序则需要先创建一个ServerSocket对象,指定自己要监听的端口号,等待客户端的连接请求。一旦有客户端请求连接,服务器端会创建一个新的线程处理与该客户端的通信。服务器端可以通过Socket对象接收来自客户端的数据,并发送响应给客户端。服务器端程序常用于提供服务,处理客户端的请求,并进行相应的业务逻辑处理。 发那科Socket程序具有实时性强、灵活性高的特点,因此在网络通信和分布式计算中得到广泛应用。它可以用于各种场景,如实时消息传递、文件传输、视频通话等。开发者可以使用Java、C++等编程语言编写发那科Socket程序,并结合相关的网络协议和技术进行开发。 总之,发那科Socket程序是一种重要的网络编程技术,通过它可以实现不同计算机之间的数据交换和通信。无论是客户端还是服务器端,都需要对Socket对象进行创建和操作,通过发送和接收数据来完成通信任务。发那科Socket程序具有广泛的应用领域,为网络通信提供了便利和效率。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值