python开发上位机软件-UR机器人通信--上位机通信(python)

一、通信socket

socket()函数

Python 中,我们用 socket()函数来创建套接字,语法格式如下:

socket.socket([family[, type[, proto]]])

参数

family: 套接字家族可以使AF_UNIX或者AF_INET

type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAM或SOCK_DGRAM

protocol: 一般不填默认为0.

二、ur接口(30001&30002)

Primary & Secondary 接口由机器人控制进程维护和执行的端口。 开机后,机器人

一直从这两个端口以 10Hz 频率对外发送机器人的状态信息(机器人位置, IO,运行状

态等), 除此之外 Primary 端口还会发送一些全局变量更新等信息。因此如果需要编写

上位机在线编程以及运行监视, 例如编写一个类似示教器界面的上位机程序时可以使

用 Primary 端口(当然对于加载程序,运行程序等操作需要使用 Dashboard(29999)

接口)。

Primary & Secondary 接口在接收到上位机发送的脚本指令(脚本指令下载) 字符

串后会立即中断当前执行程序(如果机器人正在运行), 然后运行接收到的脚本指令。

值得提醒的是,一些具有返回值的脚本指令,其返回值并不会通过这两个端口返回,因

为脚本的执行是在机器人控制进程中,其返回值只传递给该进程中的变量。

如果想一次性发送一段程序给机器人,需要将发送的程序按照如下格式发送:

_________________________________________

def functionName():

脚本指令

脚本指令

脚本指令

#对于函数或者 while 等结构语句

#需注意同层次具有相同缩进

脚本指令

……

end

**********************************************************

sec functionName():

非运动脚本指令

非运动脚本指令

非运动脚本指令

#对于函数或者 while 等结构语句

#需注意同层次具有相同缩进

非运动脚本指令

……

end

_______________________________________________

实际发送字符串(缩进用空格,换行用 ):

“def functionName(): 脚本指令 脚本指令 …… end “

“sec functionName(): 脚本指令 脚本指令 …… end “

________________________________________________

三、move 命令

移动命令分为moveJ、movel等,这两个是比较常见的,只是移动方式不同,J是指移动两点之间时按最快原则,路线不一定是直线,而L的话,则两点间移动必须是直线的;命令内部,带p关键字的是坐标移动,输入的内容为坐标值:

movej(p[239.7/1000, -54/1000, 336/1000, 2.18, -2.235, 0], a = 0.1, v = 0.1)

由于其xyz单位为米,所以如果输入示教器相同的数据时,需要除以1000转换成米。

不带p时候,表示为轴移动,控制的是各个轴的角度:

movej([d2r(-14),d2r(-64),d2r(-114),d2r(-94),d2r(87),d2r(158)],a=0.5, v=0.5)

其中d2r()为ur的脚本,把输入角度转换为弧度,因为这个接口的参数是弧度。

四、发送指令控制机器人

importsocket

target_ip= ("169.254.5.2" , 30001)print("start")

sk=socket.socket()

sk.connect(target_ip)

send_data1= "def svt(): movej(p[0.4,0.4,0.4,3.14,-1.57,1.57],a=1.4, v=1.05, t=0, r=0) end "sk.send(send_data1.encode("utf8"))print("end")

sk.close()

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

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

相关文章

linux批量部署war工具,Linux 批量一键部署工具 Expect

Linux 批量一键部署工具 Expect既然没有遇到过,做好准备总是好的。这是自己送给自己的话,现在运维做自动话越来越多,自己就学以下,记录笔记。目前主流的有puppet、Expect、pssh等等,今天就用Expect做自动部署和日常管理…

arm b bl 地址无关码_32位和64位下的arm_pwn初探

32位和64位下的arm_pwn初探前言:pwn的学习之路一直在进行,今天看了arm_pwn,搞环境就搞了半天,琢磨工具使用到做题,这里总结下,希望能帮助到大家,少走一点弯路,后期有机会继续更新。一…

如何用unit test测试controller_如何用电缆故障测试仪冲闪测试确定故障点?

原标题:如何用电缆故障测试仪冲闪测试确定故障点?当我们中试控股在使用电缆故障测试仪检测电缆故障时,遇到故障点二次击穿放电时,其波形要如何分析?首先我们要知道仪器在遇到故障点二次击穿时的表现是怎样的。显示故障…

linux下qt环境的运行,在Linux下使用QT环境来安装和运行WebKit

Installing and Running WebKit in Linux Using QtI’mcoming to appreciate more and more all of the hard work softwaredevelopers perform. I wouldn’t consider myself an open source elitist,but there’s something special about the associated ideologies. When a…

button 样式_缩减 SCSS 50%样式代码的 14 条实战经验

原标题:缩减 SCSS 50%样式代码的 14 条实战经验作者:feishi123前言Sass是CSS3语言的扩展,它能帮你更省事地写出更好的样式表,使你摆脱重复劳动,使工作更有创造性。因为你能更快地拥抱变化,你也将敢于在设计…

神舟电脑装linux双系统,个人windows10和Ubuntu18.04游戏笔记本uefi双磁盘双系统安装过程...

此文章为记录自己的Ubuntu的安装和使用过程本人电脑是128G固态500G机械。固态中装的是windows10,这次决定在机械中安装Ubuntu。虽然网上教程很多,但是我仍然是在参考了多个教程后才动手安装,于是记录自己的安装过程。该机器是神舟Z6-sl7d1,系…

请解释自动装配模式的区别?_如何从齿条优化方面有效节约机床装配时间

齿条:螺纹连接的设计和计算是否正确?如果我们真的想要节约装配成本和时间的话,那么我们首先就需要去选择设计正确的齿条螺钉。那么这时候就紧接着产生了第二个问题:我们应该如何评估并优化这种设计。当我们去观察比较齿轮和齿条这…

linux sendto 源码,Linux内核源代码解析——用户发送数据包的起源之sendto

Jack:我想知道用户如何把数据发送到内核空间的?我:你觉得哪里比较难理解呢?Jack:一般程序员会在程序里通过socket变量获得一个文件描述符,然后通过write把定义好的字符串写入到该描述符。我:是的…

仓库处理中 无法修改_临沂用友U8erp系统软件如何新增仓库?

存货一般是用仓库来保管的,对存货进行核算管理,首先应对仓库进行管理,因此进行仓库设置是供销链管理系统的重要基础准备工作之一。第一次使用本系统时,应先将本单位使用的仓库,预先输入到系统之中,即进行&q…

linux变量最大长度,51CTO博客-专业IT技术博客创作平台-技术成就梦想

变量操作总结:${Var:-Value} 变量Var 为unset 或 null 则输出Value。 有值则输出变量Var的值。${Var:Value} 变量Var 为unset 或 null 则输出Value,并且赋值于变量Var。 同上。${Var:Value} 变量Var 为unset 或 null 则输出变量…

Dreamwear如何创建javascript_JavaScript 太糟糕,JVM 有妙招!

虽然 JavaScript 凭借其简洁性、交互性等优势横扫了各大编程语言榜单,但是一直以来,JavaScript 应用程序的工具链极其复杂,引发不少开发者吐槽,在此,我们是否有更好的解决方案将其替代?接下来,本…

linux mint 18.3浏览器,在Linux Mint 19/Ubuntu 18.04中安装Tor Browser浏览器的方法

本文介绍在Linux Mint 19/Ubuntu 18.04系统中安装Tor Browser浏览器的方法,本文不使用Tor的默认Ubuntu存储库,因为它们包含旧版本的Tor。一、添加Tor存储库要在Linux Mint 19/Ubuntu 18.04系统中安装最新版本的Tor,我们将使用官方Tor Apt存储…

code block怎样实现图形界面_微服务入门:Openresty实现API网关

概念介绍如果大家清楚“网关”这个概念,那就很容易理解“API网关“,即所有API的入口。 从面向对象设计的角度看,它与外观模式类似,封装了系统内部架构。在单体应用架构中,没有「 API网关 」的概念,每个项目…

linux mei swap,Linux swapoff命令

Linux swapoff命令Linux swapoff命令用于关闭系统交换区(swap area)。swapoff实际上为swapon的符号连接,可用来关闭系统的交换区。语法swapoff [设备]参数:-a 将/etc/fstab文件中所有设置为swap的设备关闭-h 帮助信息-V 版本信息实例显示分区信息:# sfdi…

vue lang_推荐一个基于Vue 的 H5 快速开发模板

关注 Vue社区,回复“加群”加入我们一起学习,天天进步praisejuejin.im/post/5e612534e51d4527017971a2模板基于 vue-cli4 和 Vant-ui 搭建,进行大型 H5 项目开发最佳实践方案,让我们来一探究竟模板地址 (github.com/push-over/vue…

c语言判断字符是汉字,c语言里面判断字符是否为汉字

这是跟汉字的存储方式有关,西文字符用ASCII码的话,一个字节可以表示一个字符,而汉字用的是双字节表示一个汉字。那么,为了在机器内部区分ASCII码和汉字机内码,就规定汉字的两个字节的最高为都为1.例如:汉字…

springboot urlresource_Spring Boot上传文件+部署到Tomcat

1 概述Spring Boot上传文件,根据官方uploadfile示例修改的,可以打成war放到服务器上(笔者使用的是Tomcat).主要步骤是创建异常类,属性类,接口类与控制器类,最后进行少量修改打包部署到服务器上.2 环境win10Tomcat 9.0.30IDEA 2019.03Spring boot 2.2.2 RELEASE3 新建工程选择sp…

alc236黑苹果驱动_台式机黑苹果独显驱动

黑苹果安装离不开黑苹果驱动程序,常见的有网卡驱动、显卡驱动、声卡驱动、还有其他的一些常用的驱动程序,这里我们单独讲一下黑苹果上驱动英伟达GTX的独显驱动,即我们平常说的N卡,如果文章中介绍的有错误,或者您还有其…

c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序.doc

C语言课程设计报告模拟时钟转动程序PAGE课程设计报告题 目课 程 名 称 结构化程序设计课程设计院 部 名 称专 业班 级学 生 姓 名 王蕾学 号课程设计地点课程设计学时指 导 教 师金陵科技学院教务处制目 录TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc282443576&q…

c语言break在if中用法,break可用于什么语句 break语句可用于for语句和if语句中 对吗...

c语言中break语句的作用C语言中,break都可以用在什么地方?用到每一个语...break 一般是针对一个循环或者switch中的case,表示跳出当前的循环或选择,即在一个单层循环中,可以通过break 来跳出循环,在switch 中的case通过…