PI电动位移平台简明教程

news2024/12/23 7:49:47

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

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.coloradmin.cn/o/2121162.html

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

相关文章

【Qt】Qt界面美化 | QSS

文章目录 QSS概述QSS 设置方式1. 指定控件设置样式2. 全局样式设置3. 样式的层叠4. 从文件加载样式表5. 使用 Qt Designer 编辑样式 选择器选择器概述1. 类选择器2. ID选择器3. 子控件选择器(Sub-Controls)4. 伪类选择器(Pseudo-States) 样式属性盒子模型(Box Model) 控件样式实…

YOLOv5改进 | 模块缝合 | C3 融合RFAConv和CBAM注意力机制 【二次融合 小白必备】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv5入门 改…

系统设计文档示例

设计文档示例 文章目录 设计文档示例一、整体架构二、业务或功能-模块设计2.1、需求说明2.2、交互流程2.3、页面设计2.4、功能实现逻辑2.4.1 API设计2.4.2 DB设计 三、 配置说明四、开发示例 一、整体架构 系统架构图简要说明部署架构图简要说明功能模块图简要说明技术架构:前…

智汇云舟在京举办2024视频孪生产品发布会

9月6日,由北京智汇云舟科技有限公司(以下简称“智汇云舟”)主办的“智算时空 重塑视界”2024视频孪生产品发布会在北京举行。此次活动汇聚了来自科技界的众多精英、合作伙伴及行业媒体,共同见证了视频孪生技术的最新成果与未来展望…

discuz论坛3.4 截图粘贴图片发帖后显示不正常问题

处理方法 source\function 路径下修改function_discuzcode.php function bbcodeurl($url, $tags) 函数 if(!in_array(strtolower(substr($url, 0, 6)), array(http:/, https:, ftp://, rtsp:/, mms://,data:i) 这一句里增加 data:i 即可 function bbcodeurl($url,…

【Java-反射】

什么是反射? JAVA反射机制是在运行状态中,创建任意一个类,能获取这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言…

对云原生架构的理解和思考

云原生到底是什么? 现在大家都在讨论云原生,那么什么是云原生呢?顾名思义云原生便是云上生长出来的东西,用软件开发者的语言来说:就是用云计算的特性来构建、部署和管理应用程序。 说到云原生就不得不说下云计算&…

共享WIFI扫码率低怎么办?做好这些就够了!

随着共享WIFI贴的市场需求和收益空间不断展现,越来越多的人都开始计划加入共享WIFI贴dai li 商的行列之中,以借此成就一番事业。不过,由于不少入局者都在落地过程中遭遇了共享WIFI贴扫码率很低的问题,使得很多人都因害怕步入他们的…

《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》P2

Old 目标检测原来只是定位目标的位置,给出bounding box,现在的目标检测是包括定位和识别的多任务学习。深度学习改变了很多。 每一轮备课都会发现问题,并完善。 New Give the analogy of the character recognition system. 禹晶、肖创柏…

使用Java增删改查数据库

文章目录 前言一、PrepareStatement类是什么?二、实操展示 1.增2.删3.改4.查总结 前言 既然连接数据库都可以通过java语言实现,那么通过java语言对数据库进行增删改查的操作自然是顺理成章的事情了。 一、PrepareStatement类是什么? PrepareS…

基于人工智能的个性化学习推荐系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据采集与预处理模型训练与推荐实时个性化推荐应用场景结论 1. 引言 个性化学习推荐系统通过人工智能技术,能够根据学习者的学习习惯、兴趣和能力水平,提供最适…

助力企业申报“合肥市首版次高端软件”,安畅提供第三方检测服务

一、合肥市发布首版次软件评定通知 9月4日,合肥市工业和信息化局为开展2024年合肥市首台套重大技术装备首批次新材料首版次软件申报评定工作,发布了《关于开展2024年合肥市首台套重大技术装备首批次新材料首版次软件申报评定工作的通知》。 《通知》对…

如何选择一款合适的高压功率放大器?

带宽:通常厂家放大器带宽都是以正弦波来定义的,例如功率放大器100KHz ,指的是正弦波信号,可以达到的最高频率,而不是方波或者三角波,这些波形由于其高次谐波的影响,不能达到,通常厂家…

飞速(FS)数据中心布线系统线缆颜色编码管理解决方案

有效的数据中心布线管理对于实现高性能和高效率至关重要。然而,要实现有效布线管理存在一些挑战,包括单调的配色方案、复杂的区域布线和多样化的线缆杂乱。数据中心布线管理需要战略性的线缆颜色编码解决方案。本文探讨了数据中心布线管理面临的挑战&…

1、技术选型与前期准备

注意事项:框架选型尽量不要选择最新的框架,选择最新框架半年前左右的稳定版。 框架 旧版本 新版本 Hadoop 3.1.3 3.3.4 Zookeeper 3.5.7 3.7.1 MySQL 5.7.16 8.0.31 Hive 3.1.2 3.1.3(修改源码) Flume 1.9.0 1.10.1 Kafka 3.0.0 3.3…

新办建筑智能化专项乙级设计资质,郑州企业需要达到哪些要求?

新办建筑智能化专项乙级设计资质,郑州企业需要达到以下要求: 一、企业基本条件 法人资格: 申请企业必须具有独立法人资格,能够在郑州地区合法经营。注册资本: 企业的注册资本需达到规定标准,通常要求不低于…

WebGIS二维基础,地图开发必修框架:Canvas

项目名称:WebGIS二维基础,地图开发必修框架:Canvas 内容包含: 为什么要学习canvas 初识canvas 绘制描边图形 绘制圆 绘制笑脸 绘制异形曲线 线型的绘制 canvas绘制一个会转的时钟 获取方式:厚苔私[canvas]

Accelerated Soft Error Testing 介绍

加速软错误测试(Accelerated Soft Error Testing, ASET)是一种评估半导体器件或集成电路(ICs)在高辐射环境中发生软错误率(Soft Error Rate, SER)的方法。这种测试方法通过模拟或加速软错误的发生,以便在较短时间内评估器件的可靠性。软错误指的是那些不会对硬件本身造成…

故障排查:VMware虚拟机网络冲突,导致VPN网络无法正常访问

故障现象 某台windows10系统电脑,远程拨号SSL VPN后,无法正常公司内网。通过排查,发现重启开机,操作系统的默认路由多了一条公司内网的默认路由,但网关不正确。手动删除,重启系统又恢复原样。 排查过程 c…

基于YOLO目标检测实现表情识别(结合计算机视觉与深度学习的创新应用)

基于YOLO(You Only Look Once)的目标检测技术实现的表情识别项目是一个结合了计算机视觉与深度学习的创新应用。该项目旨在通过分析人脸图像或视频流中的面部特征来识别七种基本人类情感表达:愤怒(Angry)、厌恶&#x…