跳转到主要内容

Python的施克运动协议

项目描述

文档

http://schunk.rtfd.org/

代码

http://github.com/spatialaudio/schunk/

Python包索引

http://pypi.python.org/pypi/SchunkMotionProtocol/

施克运动协议手册

http://www.schunk.com/schunk_files/attachments/MotionControl_en_2010-03.pdf

手册的新版本可在Schunk网站上的一个巨大的zip文件中找到 (请查看Manuals/Motion Control/目录)

免责声明

这不是一个商业产品,作者与SCHUNK GmbH & Co. KG没有任何关系。

自行承担风险!

设备

仅测试了1台设备: Schunk PR-70伺服电动旋转单元

本设备的默认设置:串行(RS232),波特率=9600,模块ID 11(0x0B)。

其他设备可能工作或不工作。

仅测试了固件版本1.56,其他版本可能工作或不工作。

需求

显然,需要Python。任何版本 >= 2.7 都可以。

通常,PySerial 处理串行连接,但任何具有类似API的库都可以使用。

py.test 用于测试。

限制

仅支持Schunk运动协议的子集。

只能获取对命令的直接响应,不支持脉冲消息。一个例外是“CMD POS REACHED”脉冲消息,用于实现等待运动完成的运动命令,例如 move_pos_blocking()

仅支持浮点单元系统。

每个消息都会打开和关闭连接。不支持保持连接打开。

仅实现了串行通信。没有CAN,没有Profibus。

安装

使用pip,您可以使用一条命令下载并安装最新版本

pip install --user SchunkMotionProtocol

如果您想为所有用户系统范围内安装它(假设您有必要的权限),只需省略--user选项。

要卸载,使用

pip uninstall SchunkMotionProtocol

如果您愿意,也可以从PyPI下载包,解压缩,切换到主目录,并使用以下命令安装

python setup.py install --user

如果您想从Github获取最新开发版本

git clone https://github.com/spatialaudio/schunk.git
cd schunk
python setup.py install --user

或者,您也可以直接将schunk.py复制到您的当前工作目录。

如果您想修改代码,请输入

python setup.py develop --user

或者,作为替代

pip install --user -e .

… 其中-e代表--editable

测试

测试是使用py.test实现的,在主目录中运行此命令

python setup.py test

示例

这应该能让您开始

import schunk
import serial

mod = schunk.Module(schunk.SerialConnection(
    0x0B, serial.Serial, port=0, baudrate=9600, timeout=1))

mod.move_pos(42)

请使用您的Schunk模块的ID而不是0x0B

有关所有可能的串行端口选项,请参阅PySerial的文档。您可能只需更改port,例如port='/dev/ttyS1'port='COM3'

指定一个超时很有用,否则如果出现错误,您可能永远等不到函数返回。另一方面,如果您想使用阻塞命令(*_blocking()),应禁用超时(或使其长于预期的运动时间)。

如果您的设置参数没有变化,可以将它们写入一个单独的文件,例如名为myschunk.py的文件。

import schunk
import serial

module1 = schunk.Module(schunk.SerialConnection(
    0x0B, serial.Serial, port=0, baudrate=9600, timeout=1))

然后,您可以在所有我们的脚本中使用它,如下所示

from myschunk import module1
module1.move_pos(42)

为了使此功能正常工作,myschunk.py文件必须位于当前目录。

如果您是面向对象的人,当然也可以编写自己的类

import schunk
import serial

class MySchunkModule(schunk.Module):
    def __init__(self):
        schunk.Module.__init__(self, schunk.SerialConnection(
            0x0B, serial.Serial, port=0, baudrate=9600, timeout=1))

module1 = MySchunkModule()
module1.move_pos(42)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源代码分发

SchunkMotionProtocol-0.2.2.tar.gz (26.2 kB 查看哈希值)

上传时间 源代码

由以下机构支持