本文主要描述的内容为NX机电一体化概念设计模块与RobotStudio通过ModbusTCP协议实现数据的交互,从而在两个软件中,实现设备的同步运动。
一、RobotStudio软件的设置
1.新建一个空工作站解决方案,导入机器人模型
导入机器人系统
2.系统内容选择为
3.创建一个任务内容
4.新建一个TASK
5.内容设置如下
6.设置完成后,重启控制器
在新建的任务模块中新建一个程序模块
7.然后添加代码(来源于B站,博主:一起玩MCD)
MODULE Modulel(NOVIEW)
VAR socketdev server_socket;
VAR socketdev Client_socket;
VAR string receive_string;
VAR string client_ip;
VAR rawbytes raw_data_send;
VAR rawbytes raw_data_receive;
VAR jointtarget joints;
VAR num jointdata;
PROC main()
sockeetBuild;
WHILE TRUE DO
datapack;
dataexchange;
ENDWHILE
ERROR
RETRY;
UNDO
SocketClose server_socket;
SocketClose Client_socket;
ENDPROC
PROC sockeetBuild()
SocketCreate server_socket;
SocketBind server_socket,"127.0.0.1",1025;
SocketListen server_socket;
SocketAccept server_socket,Client_socket\ClientAddress:=client_ip\Time:=WAIT_MAX;
ENDPROC
PROC dataexchange()
WaitTime 0.01;
SocketSend Client_socket\RawData:=raw_data_send;
ENDPROC
PROC datapack()
joints :=CJointT();
ClearRawBytes raw_data_send;
jointdata := joinTS.robax.rax_1;
PackRawBytes jointdata,raw_data_send\Network,(RawBytesLen(raw_data_send)+1)\Float4;
jointdata := joinTS.robax.rax_2;
PackRawBytes jointdata,raw_data_send\Network,(RawBytesLen(raw_data_send)+1)\Float4;
jointdata := joinTS.robax.rax_3;
PackRawBytes jointdata,raw_data_send\Network,(RawBytesLen(raw_data_send)+1)\Float4;
jointdata := joinTS.robax.rax_4;
PackRawBytes jointdata,raw_data_send\Network,(RawBytesLen(raw_data_send)+1)\Float4;
jointdata := joinTS.robax.rax_5;
PackRawBytes jointdata,raw_data_send\Network,(RawBytesLen(raw_data_send)+1)\Float4;
jointdata := joinTS.robax.rax_6;
PackRawBytes jointdata,raw_data_send\Network,(RawBytesLen(raw_data_send)+1)\Float4;
ENDPROC
ENDMODULE
8.选定任务,复位指针
9.到此RobotStudio设置内容完成,可以使用ModbusPoll软件测试
二、NX软件的设置
前提条件:NX版本中有机电概念设计模块
1.新建一个机电设计概念配置外部信号
2.添加信号映射
3.导入机器人模型,该模型在官网可以下载
4.将导入模型各个部件设置为刚体
5.添加运动副为铰链副
6.添加位置控制
7.添加信号适配器
8.到此NX内容设置完毕
三、联合调试
打开NX工具栏中的播放,使用RobotStudio的虚拟示教器调试
以上内容参考B站大佬,若有侵权,联系删除