当前位置: 首页 > news >正文

PI电动位移平台简明教程

该文章仅供参考,编写人不对任何实验设备、人员及测量结果负责!!!

0 引言

文章主要介绍PI位移台的硬件连接、软件配置以及软件控制。文章中提到的内容在产品手册中都有说明,强烈建议在操作前通读产品手册,这里以《C-863_UserManual_MS205E.pdf》为例,简要介绍该产品手册内容

页码内容页码内容
21前面板接口介绍22后面板接口介绍
26可操作的选项28开/闭环模式
30物理单位选择31移动指令
32速度/加速度指令38到达目标位置状态检测
39参考点检测40限位检测
41行程与软件限位46参考点定义
55上电调试76地址/波特率设置
157通用指令集255错误代码
306I/O接口引脚定义307Joystick接口引脚定义
309RS-232 In/Out接口引脚定义310电源接口

常用指令说明

指令说明指令说明
DIN获取设备IDCTO配置触发输出
FNL快速移动到参考零点MOV移动到指定位置(绝对)
MVR移动到指定位置(相对)ONT达到目标位置状态判断
TMN获取最大位置TMX获取最小位置
TRO设置触发状态(使能/禁用)VER获取当前固件版本

指令操作说明

// 指令分为三类,分别为执行指令、查询指令和状态指令,例如 MOV 移动指令
MOV    :执行指令,对给定轴进行绝对位置移动
qMOV   :查询指令,查询给定轴的绝对位置
HasMOV :状态指令,查询当前控制器/位移平台是否支持 MOV 指令// 以下两种执行方式相同
self.c863Master.MVR(('1') , self.stepLen)
self.c863Master.MVR(self.c863Master.axes[0] , self.stepLen)// 以下两种查询方式相同
self.c863Master.qMOV('1')['1'])
self.c863Master.qMOV(self.c863Master.axes[0])['1'])
1 硬件连接(单台)

测试中以C-863.11控制器和M-410.DG位移平台 (已停产,官网无相关产品)搭建一维系统,设备连接图如下所示
单台连接图

2 控制环境搭建

以测试位移台为例,配件盒中通常会有一张资料CD,其中包含相关文档和软件,若CD遗失可直接搜索PI官网(中国),找到相应的设备后提交表单即可,PI中国代理会将资料发送到邮箱中,文末附本套设备的相关资料,可选择下载

拿到资料后解压 PI_CD-Mirror-C-990.CD1,以管理员运行 PISoftwareSuite.exe,基本没有需要注意的,中途会有弹窗是关于驱动的,选择安装,等待几分钟就可,最后一步中有涉及关联其他软件(NI,美国国家仪器的),可以根据需要安装,本人使用的是PIPython因此并无过多关注,软件安装是默认目录C:\Program Files (x86)\Physik Instrumente (PI)

关于PIMikroMove的使用这里不做讲解,手册中有详细说明,本人使用的是PI提供的PIPython接口进行开发,因此主要以PIPython示例讲解为主,PI还提供C、C++、C#、Python、Matlab、IN LabVIEW编程接口,可根据条件选择软件控制接口PI编程接口

打开PI官网的PIPython安装网页,从仓库中下载PIPython例程,并win+r打开命令行后输入cmd后回车,执行

pip install PIPython// 若网速慢可使用国内镜像安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PIPython

安装相应开发库,例程中可能需要其他依赖库,可依此方法安装,至此,开发环境搭建完成

3 例程测试

上电之前需要注意以下几个问题:

  1. RS-232 In与Mini-USB type B 不可同时和电脑连接
  2. 注意看电源适配器的输出电压/电流与位移平台是否匹配(部分型号位移平台需要独立供电,注意电源适配器的电压/功率)
  3. 原装电源适配器与插排的接线插头比较特殊(插头内置保险丝),无法与一般国内插排匹配,在实际使用时,直接使用常见电源线(台式机的电源线),系统工作正常,仅供参考

上电后可通过win+x打开设备管理器,可看到:

// 端口(COM和LPT)
// 设备型号与端口号和自己的设备相关,不尽相同
PI C-863(COM4) // 通用串行总线控制器
// 如果有感叹号!说明驱动有问题,重新安装一遍
PI C-863 

为使本文章可读性更强,这里定义如下变量,可以理解为类似于“宏”的东西

// 文件1	
C-863_UserManual_MS205E(英文).pdf// 文件2	
M-5x1-UserManual-MP113-EN.pdf// 指令1	
PIPython-master\PIPython\PIPython\PIPython-2.9.0.4\pipython\pidevice\common\gcsbasecommands.py// PATH1
PIPython-master\PIPython\PIPython\PIPython-2.9.0.4\samples\
3.1 示例1

使用vs code打开PATH1\advanced\connect_serial.py

  1. (line 31) 将 port=‘COM1’ 改为自己设备管理器中的端口号
  2. (line 32) 将 baudrate=115200改为38400,与控制器的拨码相关,可查看《文件1,P70》,设备默认Baud为38400(拨码为S5:OFF,S6:ON)

运行程序后会在终端看到返回的配置和设备信息:

interface: PISerial(port=COM4, baudrate=38400)
connected: (c)2013 Physik Instrumente(PI) Karlsruhe, C-863.11,0,1.3.0.7

到此说明软硬件连接、配置环境正常,可以进行后续开发

3.2 示例2

使用vs code打开PATH1\quickstart.py

  1. 注释(line 29)
  2. 释放(line 31),将comport修改为自己的串口号,只写数字(如COM4只写4),buadrate改为相应值

运行程序后位移平台移动并且终端返回如下:

connected: (c)2013 Physik Instrumente(PI) Karlsruhe, C-863.11,0,1.3.0.7
version info: PI PI_GCS2_DLL.dll: V3.21.0.0 
PIBase: 22.16.1.0 
Path: xxx\PI\GCSTranslator\PISTAGES3.DB Version: V3.0.68.0 
FW_DSP: V1.3.0.7 
PIPython: 2.9.0.5
done - you may now continue with the simplemove.py example...
3.3 示例3

使用vs code打开PATH1\simplemove.py

根据自己的控制器选择控制器宏定义,此处注释(line 21,22,23,53),释放(38,39,40,55)

  1. (line 38) 将 CONTROLLERNAME 修改为自己控制器型号,(如’C-863.11’)
  2. (line 39) 将 STAGES 修改为位移平台,(如’M-410.DG’)
  3. (line 55) 将comport修改为自己的串口号,只写数字(如COM4只写4),buadrate改为相应值

运行程序后位移平台移动并且终端返回如下:

connected: (c)2013 Physik Instrumente(PI) Karlsruhe, C-863.11,0,1.3.0.7
version info:
PI PI_GCS2_DLL.dll: V3.21.0.0
PIBase: 22.16.1.0
Path: xxx\PI\GCSTranslator\PISTAGES3.DB Version: V3.0.68.0
FW_DSP: V1.3.0.7
PIPython: 2.9.0.5
initialize connected stages...
move axis 1 to 0.00
current position of axis 1 is -0.00
move axis 1 to 15.00
current position of axis 1 is 15.00
done
3.4 示例4

使用vs code打开PATH1\datarecorder.py

注释(line 27,28,29) ,添加宏定义如下

  1. (line 31) CONTROLLERNAME = ‘C-863.11’
  2. (line 32) STAGES = [‘M-111.1DG’,] # connect stages to axes
  3. (line 33) REFMODES = [‘FNL’,] # reference the connected stages
  4. 注释(line 42),释放(44),并配置

在程序中添加相应代码对设备进行查询操作(详见代码)
程序运行完成后会在PIPython-master根目录下创建文件gcsarray.dat保存数据,可以用记事本查看

注:有任何指令上的问题都可在《文件1》和《指令1》中查找

3.5 示例5

使用vs code打开PATH1\connect_enumerate.py

不做任何修改直接运行程序,可以查询当前PC连接的任何PI设备,返回:

search for controllers...
0 - PI C-863 Mercury SN 0145500061
select device to connect:
// 此时在终端输入 0 (或是返回中的其他设备编号)
select device to connect:0 // 敲回车,返回:
connected: (c)2013 Physik Instrumente(PI) Karlsruhe, C-863.11,0,1.3.0.7
3.6 示例6

使用vs code打开PATH1\connect_daisychain.py

本程序测试至少需要两套设备(两个控制器+两个位移平台),使用测试设备如下:

  1. Master 控制器:C-863.11 + 位移平台:M-410.DG (已停产,官网无相关产品)
  2. Slave 控制器:C-863.11 + 位移平台:M-531.DD1

这里将第一组定义为主机,第二组定义为从机,daisychain中设备地址需要是唯一的,相关设置规则与控制器上拨码有关,详见《文件1》,此处设置Master地址为1,Slave地址为2

连接设备时先将所有设备断电!!!首先按照下图连接设备
多台连接图
注:不论怎么连接,同一时刻一台控制器上【RS-232 In】和【Mini-USB type B】只有一个在使用

程序中ConnectDaisyChainDevice(self, deviceid, daisychainid=None)使用如下:

@param deviceid : 此处就是对应控制器上的拨码

程序中其他修改见源码

运行程序后返回如下:

RS-232 daisy chain at COM4, 38400 Baud; daisy chain 0, device 1:
(c)2013 Physik Instrumente(PI) Karlsruhe, C-863.11,0,1.3.0.7
daisy chain 0, device 2:
(c)2013 Physik Instrumente(PI) Karlsruhe, C-863.11,0,1.3.0.7
3.7 其他示例

PATH1\simplemove_gcs30.py

该程序无法适配 C-863.11,程序中可使用查询指令看指令是否支持(如: if device.HasqSPV( ): ),相关查询指令可以在《指令1》中查找

PATH1\setparameter_gcs30.py

该程序无法适配 C-863.11

PATH1\advanced\connect_serial.py

修改对应的串口号与波特率后直接运行即可

PATH1\advanced\targets_from_csv.py

将 PATH1\advanced\targets_from_csv.csv 复制到PIPython-master根目录下,修改对应的串口号与波特率后直接运行即可

PATH1\advanced\TrajectorySample.py

此程序需要两个维度的移动平台,暂时没有测试

PATH1\advanced\wavegenerator_circle.py

此程序需要两个维度的移动平台,暂时没有测试

PATH1\samples\advanced\wavegenerator_pnt.py

此程序需要两个维度的移动平台,暂时没有测试,(line 23) 另外此程序应该只适配 C-887 控制器

PI在例程包中还提供了一些其他功能测试程序,由于本人并末使用到,因此也并末全部测试,文末将会提供上述程序修改前/后的代码,可以自行下载使用对比软件查看

4 扩展

PI位移台还提供了一个非常有用的功能——定点触发,假设有这样任务:你手中有一根10cm的样片,你需要每隔0.1mm使用某种传感器对这个样片表面进行采样,那如何每移动0.1mm触发一次采样?此时你需要了解CTO与TRO这两个指令,参考P172和P246,对这两个指令完成相应配置后,每移动相应位移,Mini-DIN socket接口的5,6,7,8引脚(根据程序中所配置的引脚)将会产生一个50us的脉冲,参考P107,此时使用单片机的外部中断触发捕捉到这个脉冲并做出相应动作,由于项目原因不做过多解释,程序也不便公开,有需要此功能的可在手册中查找实现方法,下图为实现简图,仅供参考
外部触发

5 总结

由于该设备属于精密且贵重仪器,使用时一定要小心操作,有任何问题都可以在手册中查解决方案,切勿盲目操作,另外本人行文草率,可能有未提及/错误示范之处,需自行甄别!

[1] CD资料BaiduPan( pwd : 21p4)

[2] PI中国官网编程接口

[3] Python接口与例程

[4] Git代码仓库(修改后代码)


http://www.mrgr.cn/news/23269.html

相关文章:

  • [项目][WebServer][项目介绍及知识铺垫][下]详细讲解
  • 【C语言】揭开计数制的面纱:深入浅出二进制及二进制计算
  • 4G基站和5G基站的覆盖范围对比
  • 华为 HCIP-Datacom H12-821 题库 (10)
  • 存储课程学习笔记4_设计数据结构管理nvme磁盘(基于已经通过struct nvme_user_io和ioctl实现了对nvme设备的读写)
  • [git操作] git创建仓库上传github报错
  • 大模型→世界模型下的「认知流形」本质·上
  • Apple Vision Pro:重塑工作与娱乐体验的14天深度体验报告
  • K-均值聚类算法及其优缺点
  • HarmonyOs 应用基础--ArkTS-核心-基础
  • 【信创】统信UOS1070根目录占满后无法进入系统的解决方法
  • 基于SpringBoot+Vue+MySQL的垃圾分类回收管理系统
  • C#笔记8 线程是什么?多线程怎么实现和操作?
  • 《深度学习》【项目】OpenCV 信用卡号识别
  • 数据库设计【从概念到实施】
  • MVC设计模式与delegate
  • 2024-09-09 Leetcode刷题
  • Parsec无法使用、访问、连接、被墙、被封、800报错解决方案 完美平替软件
  • 怎么修复松下相机死机视频只有0字节(0KB)的MDT文件【实测可修复】
  • LeetCode 热题 100 回顾1