matlab和robotstudio,MATLAB与Robotstudio建立socket通信(初探)

前记:

听一首《不想病》,歌词唱开头:做什么都不对,说什么都浪费,想什么我都可悲....;感觉就是不一样,好歌!哎,,,回到正题。好多事要去做,还得挤时间去玩,,,可悲啊 :D 。这里记录一下MATLAB与Robotstudio建立简单socket的例子。至于建立通讯的意义何在,暂时不能深入探究(我想最重要的联合仿真时的数据传递,MATLAB对数据进行分析类似的吧)。

附:在建立通信之前,MATLAB必须保证安装有能进行TIP/IP通信的Instrument Control Toolbox,然后就是Robotstudio创建了系统和对应通讯的Rapid程序,MATLAB作为client,RS最为server。

1、建立Robotstudio方机器人系统和Rapid程序。

1)打开RS,界面左上角基本--->ABB模型库--->拖入机器人--->从布局建立系统--->一直点击下一步--->直到有选项--->在添加选项里加入616-1 PC interface--->完成--->等待控制器状态变绿。

2)点击RAPID,在模块中建立程序,如下:

c1feb759a6e0eaf2bff7ece694dae01c.png

3)rapid程序如下:

MODULE moudle1

!define variables

VAR socketdev server;

VAR socketdev client;

VAR string message;

VAR string string1:="";

VAR string string2{3}:=["","",""];

VAR num pass:=0;

VAR num X:=0;

VAR num Y:=0;

VAR num Rz:=0;

VAR bool flag1:=FALSE;

VAR rawbytes data;

CONST robtarget p10:=[[0,0,23.72],[0.00796547,0.908649,0.417482,0.0017992],[0,-1,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];

TASK PERS tooldata toolxi:=[TRUE,[[0,0,0],[1,0,0,0]],[-1,[0,0,0],[1,0,0,0],0,0,0]];

PROC main()

a:

!create communication

SocketCreate server;

SocketBind server,"127.0.0.1",55000;

SocketListen server;

SocketAccept server,client;

!send a meassage to the client

SocketSend client,\Str:="Hello client";

!receive a message from the client

SocketReceive client,\Str:=string1;

UnpackRawBytes data ,1,message,\ASCII:=15;

!close cmmunication

SocketClose server;

TPErase;

TPWrite string1;

WaitTime 4;

string2{1}:=StrPart(string1,1,1);

string2{2}:=StrPart(string1,2,8);

string2{3}:=StrPart(string1,2,8);

flag1:=StrToVal(string2{1},pass);

flag1:=StrToVal(string2{2},X);

flag1:=StrToVal(string2{3},Y);

IF pass = 1 AND flag1 THEN

MoveL Offs(p10,X,Y,15), v1000, fine, toolxi;

MoveL Offs(p10,X,Y,0), v1000, fine, toolxi;

WaitTime 0.5;

MoveL Offs(p10,X,Y,15), v1000, z50, toolxi;

ELSE

TPWrite "failed to get the data";

waittime 2;

GOTO a;

ENDIF

ENDPROC

ENDMODULE

2、MATLAB端程序

%%socket communication with robotstudio

tc=tcpip('127.0.0.1',55000);

%open the communication

fopen(tc);

%recive a message from the robotstudio

message=fread(tc);

%send a message to the robotstudio

fwrite(tc,'12345678921234567');

3、点击RS运行后程序指针在 22 行SocketAccept server,client;,处等待运行MATLAB程序,点击MATLAB的m文件RUN等待一会儿通信建立,并且出现如下显示:

1)机器人示教器上tpwrite写屏指令写出MATLAB发来的数字。

f8833bf3759b7076456a695966e5afd2.png

2)MATLAB端:

50572c287483cedf5c39bbfdc127173c.png

如此数据发送通讯完成。

4、后记

在实际应用中,通讯数据互相传递的过程不像上述;必须要根据实际所需传递正确的数据类型、数据类型转换、格式变化和收发等设置(在程序中加入while循环,保持持续数据的传递----这部分会在后续记录上)。在rapid程序中可以查看string1=12345678921234567(鼠标放在上面就显示了),通过StrPart和StrToVal指令将其分割转换成‘1’,‘23456789’,‘21234567’如下也可以在示教器中查看程序数据。同时X,Y的值也改变了。而接下来需要解决的就是MATLAB发送‘有用的数据’,以便用于控制机器人在工作区间运动,否则机器人运动报错(报错如最下)。

2948b17df98ed1ca79b798b3d3df2b54.png0813ebcabcf959f9e7027b2a8cd8f8a0.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贾扬清:我对人工智能方向的一点浅见

阿里妹导读:作为 AI 大神,贾扬清让人印象深刻的可能是他写的AI框架Caffe ,那已经是六年前的事了。经过多年的沉淀,成为“阿里新人”的他,对人工智能又有何看法?最近,贾扬清在阿里内部分享了他的…

Node.js 应用故障排查手册 —— 类死循环导致进程阻塞

类死循环导致进程阻塞 楔子 在实践篇一中我们看到了两个表象都是和 CPU 相关的生产问题,它们基本也是我们在线上可能遇到的这一类问题的典型案例,而实际上这两个案例也存在一个共同点:我们可以通过 Node.js 性能平台 导出进程对应的 CPU Pro…

如何使用5个Python库管理大数据?

来源 | medium编译 | 武明利责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)如今,Python真是无处不在。尽管许多看门人争辩说,如果他们不使用比Python更难的语言编写代码,那么一个人是否真是软件开发人员&…

如何把创建ECS(CreateInstance)作为触发器来触发函数计算

问题描述 函数计算虽然不支持直接集成到ECS的管控事件上,但是函数计算本身是支持日志服务作为触发器的。即可以配置日志服务中logstore里的增强日志作为触发器来触发函数计算服务中的函数,同时可以传递project 和 logstore的name以及beginCursor/endCur…

ORACLE添加字段、删除字段

文章目录1. 删除表2. 创建表3. 添加字段4. 删除指定字段5. 修改指定字段长度1. 删除表 DROP TABLE SYS_JOB;2. 创建表 -- CREATE TABLE CREATE TABLE SYS_JOB (JOB_ID NUMBER(30) NOT NULL,JOB_NAME VARCHAR2(30) NOT NULL ); ALTER TABLE SYS_JOB ADD CONSTRA…

像数据科学家一样思考:12步指南(中)

像数据科学家一样思考:12步指南(上)《像数据科学家一样思考》 7-工程产品 下一步是建立统计软件。如果统计是分析和从数据中得出结论的框架,那么软件就是将这个框架付诸行动的工具。数据科学家必须为任何项目做出许多软件选择。如…

2020云计算,是四强争霸还是赢家通吃?

来源 | 架构师技术联盟责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)近日,谷歌母公司Alphabet首次公布了谷歌云计算业务的数据,这一举动将云计算行业重新推到了聚光灯下。众所周知,全球云市场竞争激烈&…

加载程序中数据库账号密码加密策略wallet_04

文章目录1. 切换到oracle用户2. 创建wallet目录3. 创建wallet 账户4. 查看创建的wallet5. 创建wallet目录6. 查看证书7. 把证书拷贝到客户端8. 在客户端的sqlnet.ora里添加9. 客户端的tnsnames.ora10. 测试登陆11. oracle环境变量oracle服务端创建wallet 1. 切换到oracle用户 …

利用丁香园数据生成疫情分布地图(R语言)| 博文精选

来源 | CSDN 博客作者 | 万里写入胸怀间责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)疫情牵动大家,除了做好分内工作,管好自己不给社会添乱,也就是只能持续关注疫情了。现在各大门户平台都上线了疫情实时地…

php连接数据库性能测试,无需安装配置,多操作系统支持数据库及性能测试

iBoxDB是一个NoSQL数据库, 有SQLite的特性,但拥有更强大的Replication功能,支持更多的数据类型,自动完成ORMSQLite是全球知名度Top 10的数据库之一, 在文章 中对 SQLite 与 MySQL进行了一个事务中1万次插入测试, 测试的结果是"sqlite3用时仅0.4s,mysql用时2.2s"iBoxD…

ORACLE 添加和查看注释

文章目录一、表二、字段一、表 #1.给表加注释 COMMENT ON TABLE SYS_JOB IS 任务调度表;#2.查看表的COMMENT SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAMETABLENAME; 例如: SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAMESYS_JOB;二、字段 # 1.给字段加…

一次开发、多端分发,阿里巴巴发布AliOS车载小程序

4月16日上海国际车展首日,阿里巴巴小程序有了新动态:正在研发基于AliOS的车载小程序。 AliOS展出车载小程序、AI HUD、AI驾驶舱等最新技术 作为阿里巴巴小程序在车载场景的重要延伸,AliOS车载小程序和支付宝、高德等小程序一样,将…

基于TableStore的海量气象格点数据解决方案实战

前言 气象数据是一类典型的大数据,具有数据量大、时效性高、数据种类丰富等特点。气象数据中大量的数据是时空数据,记录了时间和空间范围内各个点的各个物理量的观测量或者模拟量,每天产生的数据量常在几十TB到上百TB的规模,且在…

腾讯会议扩容背后:100万核计算资源全由自研服务器星星海支撑

疫情期间,远程会议及协同办公需求暴增。从1月29日开始到2月6日,腾讯会议每天都在进行资源扩容,日均扩容云主机接近1.5万台,8天总共扩容超过10万台云主机,共涉及超百万核的计算资源投入。 值得一提的是,腾讯…

实时计算无线数据分析

本文为您介绍实时计算在无线数据分析中的应用。阿里云实时计算可以为无线App的数据分析场景实时化助力,帮助您做到实时化分析手机AP的各项指标,包括App版本分布情况、Crash检测和等。 阿里云移动数据分析 (Mobile Analytics,下面简称MAN) 是…

对话阿里云Alex Chen:下一代存储应如何面对云转型?

数字经济"乘云而上"。 十年前,阿里云开始自主研发云计算操作系统飞天之路,开启了中国云时代; 十年后,阿里云在中国市场份额超过2-8名总和,培育了整个中国云计算市场,数字经济在云上蓬勃发展。 …

写给大数据从业者:数据科学的5个陷阱与缺陷

来源 | AI 前线作者 | 陈炬,责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)导读: 这篇分享主要总结了数据从业人员在实践中可能遇到的陷阱与缺陷。跟其他新起的行业一样,数据科学从业人员需要不停的去考虑现…

阿里云数据库自研产品亮相国际顶级会议ICDE 推动云原生数据库成为行业标准

4月9日,澳门当地时间下午4:00-5:30,阿里云在ICDE 2019举办了主题为“云时代的数据库”的专场分享研讨会。 本次专场研讨会由阿里巴巴集团副总裁、高级研究员,阿里云智能数据库产品事业部负责人李飞飞(花名:飞刀&#…

大神如何一招完美解决Hadoop集群无法正常关闭的问题!| 博文精选

来源 | CSDN 博客作者 | Alice菌,责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)相信对于大部分的大数据初学者来说,一定遇见过Hadoop集群无法正常关闭的情况。有时候当我们更改了Hadoop内组件的配置文件后,…