机器视觉运动控制开发软件RTSys
RTSys是正运动推出的纯国产自主工业软件IDE开发环境,集成运动控制+机器视觉功能的开发软件,支持
RTBasic、RTPlc梯形图、RTHmi、C语言、RTVision机器视觉
等二次开发,可混合编程、实时仿真、在线跟踪以及诊断与调试,快速实现智能装备的
视觉定位、测量、识别、检测和复杂的运动控制
等系统的开发。
更多关于RTSys开发平台详情点击→
RTSys:自主自研、简单易用的运动控制集成开发平台(上),
RTSys:自主自研、简单易用的运动控制集成开发平台(下)。

本篇主要介绍内容如下:
一、使用RTSys生成配置文件进行总线初始化二、驱动器的进阶设置三、总线配置相关问题及解决方法
以下内容参照ZMC432M与两个EtherCAT驱动的总线配置来给大家介绍。

主要流程步骤如下:

01使用RTSys生成配置文件进行总线初始化RTSys生成配置文件进行总线初始化
一、新建调试项目
1.打开RTSys软件,点击菜单栏【文件】→【新建工程】。

2.待弹窗出来选择路径并命名工程文件名,然后点击【保存】。

二、连接控制器
1.RTSys菜单栏点击【常用】→【连接】→【控制器】。

2.待【连接到控制器】的窗口弹出后,选择连接方式【连接】控制器。
一般推荐使用网口连接,控制器默认IP是192.168.0.11,工控机网卡要和控制器IP在同一网段才可以连接上。

三、启用轴配置及EtherCAT配置功能
1.工程视图空白处右键,在弹出的窗口点击【工程设置】。

2.勾选【启用轴配置及EtherCAT配置】→【确定】。

四、总线节点扫描
1.鼠标右键单击【EtherCAT节点】的【EtherCAT-0】,在弹出的窗口点击【扫描从站】进行节点从站设备的扫描。

2.成功扫描后,会将每一个节点信息显示。

五、添加XML文件
(无3205报错可直接跳过)
若出现3205报错,报错信息如下图,则需要添加对应驱动器厂家提供的xml文件。“使用RTSys添加xml文件?”详情可查看下文内容。

六、总线驱动器的轴号映射
在【工程视图】双击【控制器】,然后在弹出的配置界面窗口根据实际需求配置轴映射关系。

● 下图中控制器后的【轴数】用于设置本地脉冲轴数量。
● EtherCAT-0后的【轴数】用于设置EtherCAT总线接出去的总线轴。
● ZCan节点是用来设置通过CAN总线扩展的扩展轴。

(1)在【轴映射关系】界面,先点击【轴数】列表输入调用的轴数(只使用总线驱动器的话,本地脉冲轴直接设置为0即可)。
(2)点击【自动配置轴映射】可自动设置映射轴号及轴类型,也可自己手动修改映射轴号和轴类型。(轴类型:总线步进或总线伺服一般设置成65)
示例一:假设现场连接了两个总线驱动器。第一个驱动器的轴号映射到轴0上控制,第二个驱动器映射到轴1上控制,那么可以按照下图进行设置。

示例二:假设现场本地脉冲轴(axis 0)上接了一个脉冲驱动器,又通过EtherCAT总线连接了两个总线驱动器。第一个总线驱动器的轴号映射到轴0上控制,第二个总线驱动器映射到轴1上控制,脉冲驱动器映射到轴2上控制,那么可以按照下图进行设置。

七、应用生成总线配置文件并下载
点击【应用】自动生成配置文件【Startup.bas】然后下载到控制器,可选择【下载到ROM】实现控制器的掉电配置保存功能。若命令与输出窗口提示“总线配置完成”则表示总线初始化成功。

八、总线驱动器的手动运动
1.手动运动

(1)【工程视图】→【轴配置】→【轴n】,先勾选【自动下载轴参数】。
(2)轴的使能控制区,点击轴使能后面的【切换】按钮进行单轴使能。
(3)在轴参数区,设置对应的轴参数,【脉冲当量】推荐设置成机台运动1mm所需要的脉冲数,【加速度】和【减速度】一般设置成速度的10倍,若需要对加减速阶段进行平滑处理,S曲线一般设置成100ms。
(4)确定轴参数安全的情况下,点击手动运动区的【反向运动】或者【正向运动】可以完成点动运动(按下就运动、松开就停止),同时看轴位置及状态信息的【反馈位置】表示的MPOS是否有变化。

注:若反馈位置有变化,肉眼没有观察到轴运动,大概率是【脉冲当量】*【速度】的结果太小,导致轴运动的比较慢。这个时候可以把【脉冲当量】10倍10倍的增加后反复测试。

其他按钮具体功能可以参考下方表格:
| 按钮名称 |
作用描述 |
| 自动下载轴参数 |
自动将“轴配置”中的参数配置下载到控制器中(同步到“轴参数”窗口中) |
| 应用于所有轴 |
将当前轴已配置的轴参数应用于所有轴(需要先勾选“自动下载轴参数”才生效) |
| 下载轴参数 |
将“轴配置”中的参数配置下载到控制器中(同步到“轴参数”窗口中) |
| 读取轴参数 |
将“轴参数”窗口中的参数配置读取并应用到“轴配置”中的参数 |
| 备份轴参数 |
将当前轴已配置的轴参数备份并生成.ini文件在工程路径文件夹中 |
| 恢复轴参数 |
将当前轴参数恢复为备份文件中的参数 |
| 反向运动 |
控制当前轴做反向运动 |
| 正向运动 |
控制当前轴做正向运动 |
| 反向持续运动 |
控制当前轴做持续的反向运动 |
| 正向持续运动 |
控制当前轴做持续的正向运动 |
| 往复运动 |
控制当前轴按设定位置及次数做往复运动 |
| 停止 |
停止当前轴运动 |
2.轴参数保存
如果上面设置的轴参数需要保存到配置文件里面,我们可以点击【轴配置】→【应用】,这个时候会自动把配置信息写入到【Startup.bas】文件里面,然后下载。点击【下载到ROM】的话可以实现控制器轴参数的掉电保存。

至此,总线初始化完成,并完成了手动运动调试。
02驱动器的进阶设置
一、总线驱动器的PDO模式设置
【EtherCat节点】找到驱动器【Slave/Drive开头的】双击,点击【PDO配置】后,可在【PDO设置】下拉框里面对各个驱动器依次进行设置。

本地轴上脉冲驱动器不需要进行PDO配置,但是接在EIO扩展模块轴上的脉冲驱动器需要进行PDO配置,实际相当于总线驱动器;需要总线驱动器的PDO模式是按自己需求配置的,大概总结有以下几种常见的需求。
需求1:
简单跑个位置模式,不需要监控驱动器的IO信息。Drive_profile=0或者-1,PDO设置0或者-1即可。

需求2:
简单跑个位置模式,需要监控驱动器的IO信息。PDO设置需要选择有驱动器IO输入的模式,如模式4、5。

需求3:
需要位置模式和力矩模式可以切换,需要监控驱动器的IO信息。PDO设置需要选择带位置和转矩的模式,如模式34。

Tip:多个轴可以在配置好第一个轴后选择【同步到该从站所有轴】进行一键同步所有轴。

当前配置需要保存直接点击【应用】,重新下载到控制器即可。
Tip:PDO配置的其他模式可查看下文“详情PDO模式选择?”。
二、总线驱动器的IO映射到驱动器上(若驱动器无IO,则直接跳过)
1.在【工程视图】双击【控制器】选择【输入IO映射关系】子选项,控制器本体的数字量IO起始编号和数量是软件根据控制器型号自动识别的,不支持编辑修改。
2.【EtherCAT-0:节点IO】是设置IO扩展模块的,驱动器的节点在【EtherCAT-0:驱动器IO】这里设置。

3.【EtherCAT-0:驱动器IO】是设置EtherCAT总线驱动器的IO起始编号和数量的。先设置好各个驱动器的IO数量一般设置为(16的倍数)或在带有【同步所有项】的位置一键设置所有驱动器IO数量。设置好后点击【自动配置输入/输出IO映射】即可。
注:扩展映射的IO范围不要存在冲突,且起始编号为8的倍数。

4.若需要自动映射正负限位和原点开关,可以重新勾选【自动映射限位及以原点】。重新勾选【同步所有项】则会一键配置所有驱动器限位及原点。
注意:ZMC系列的特殊输入定义后需要信号反转,因为ZMC系列是OFF有效,可以反转为ON有效,可以按需求选择对应输入是否【反转使能】。

【自动配置所有项】则是将轴映射、IO、模拟量映射全部自动配置。
当前配置需要保存直接点击【应用】,重新下载到控制器即可。
Tip:已有配置导出应用于其他工程可查看下文“已有配置如何导出应用于其他工程”。
三、驱动器的IO监控、限位原点设置及回零
如果完成了以下两步的设置,我们就可以对驱动器进行IO监控等操作了。
1.驱动器完成了输入IO映射。

2.PDO的模式要选择存在对应IO信息的数据字典的模式。

(1)驱动器的IO监控(看个人需求控制器是否监控驱动器IO)
【工程视图】-选择要监控的驱动器-【状态】-输入【点击勾选】-【输入口监控界面】,在弹出的输入口界面可以看到两种编号,【0、1、2、3....15】这个是当前驱动器的输入口编号,后面括号内如【56、57、58....71】是当前驱动器输入口映射到控制器上分配的IO编号,作用是为了防止驱动器输入口编号和控制器上输入口编号冲突。

(2)驱动器限位原点设置
点击【工程视图】→【轴配置】→【轴n】→【轴调试界面】,在轴调试界面的左上角有一块区域是映射该轴硬件限位、原点、报警信号和急停开关的对应输入口在控制器上的IO编号。一般总线驱动器是不需要接报警信号和急停开关所以设置成-1,其他信号按实际IO接线设置。
设置完后,如果和下图一样发现轴没有碰到正负限位,但轴状态提示正向硬件限位和负向硬件限位,这个是由于信号常开/常闭的影响,可以点击反转使能的【切换】按钮对正负硬件限位的状态进行切换设置。

(3)驱动器的回零
①测试轴的回零功能之前要先保证手动运动正常,手动运动的方向也正常。
②点击【回零】按钮可以进入轴的回零界面。
如果不勾选【启用控制器回零方式】,那么默认是使用总线驱动器回零(精度更高推荐使用),这个时候回零方式的介绍需要看总线驱动器的手册对回零模式的介绍,同时原点传感器需要接到驱动器的原点输入口上。

如果勾选【启用控制器回零方式】,那么使用的是控制器回零,回零方式可以参考下拉框的介绍,总线驱动器实际项目还是推荐使用总线驱动器回零。

③设置合适的【速度】(找原点的速度),【爬行速度】(碰到原点传感器后离开原点的速度),【加速度、减速度】还是一般设置成速度的10倍。
④如果正负限位需要反转那么原点信号也需要反转。
⑤打开轴使能。
⑥点击【启动回零】即可开始回零,需要停止点击【停止】按钮即可,需要坐标清零点击【坐标清零】按钮即可。
Tip:使用控制器回零方式需要手动清零,回零完成后,保证轴指令位置和反馈位置都为0。
03总线配置相关问题及解决方法
一、使用RTSys添加xml文件?
1.将对应驱动器的xml/zml文件复制到工程路径的文件夹里。

2.【工程视图】→【配置文件】→【增加到配置文件】。

3.选择目标xml/zml文件-【打开】。

4.这样xml/zml文件就添加到配置文件中了。(注:xml文件添加会自动转为zml文件)

5.添加后,点击【下载到RAM/ROM】即可把XML文件的信息导入到控制器,使控制器识别该设备。然后重新进行总线节点扫描即可。
Tip:若在RTSys里添加xml/zml文件仍然报错3205的话,则需要使用xml转换工具。具体详情可查看下文“如何使用XMLParsingTools小工具生成ZML文件并添加?”

6.如果上一步操作报错Error:20013,File name too long.可右键xml/zml文件【重命名文件】缩短文件名至20字符以内。然后重新【下载到RAM/ROM】并再次进行总线节点扫描。

二、如何使用XMLParsingTools小工具生成ZML文件并添加?
1.将对应驱动器的xml文件复制到工程路径的文件夹里。(此软件可以在正运动技术官网-技术与支持-下载中心-工具软件中下载)

2.打开XMLParsingTools文件夹。

3.双击XMLParsingTools程序运行。

4.点击左上角文件夹位置-【Open xml】。

5.选择想要转换的xml文件-【打开】。

6.打开后选择对应的从站型号、从站类型并设置轴数(这里以一拖四总线驱动器为例,一拖一的驱动器一般不用设置)。


7.点击左上角文件夹位置-【Export zml】导出。

8.选择对应路径-设置文件名(不超过20个字符)-【保存】。

9.可以看到对应文件夹中会有一个转换后的.zml文件。

10.打开RTSys【工程视图】→【配置文件】→【增加到配置文件】。

11.选择要添加的zml文件-【打开】即可完成zml文件的添加。

三、已有配置如何导出应用于其他工程?
1.【工程视图】双击【控制器】/【轴配置】的弹出窗口都有【导入】及【导出】选项。(下面以【控制器】处为例,其它地方的操作步骤一样。)

(1)参数配置好之后可以将已配置的数据【导出】保存。

(2)选择对应路径并输入文件名后选择【保存】即可。


2.【导出】的.ini文件可以【导入】用于其他工程。步骤如下:
(1)菜单栏选择【文件】-【打开工程】。

(2)双击【控制器】→【导入】。

(3)选择想要加入的.ini驱动器配置文件-【打开】。

如下图:导入后的配置会和导出工程的配置一致。

四、PDO模式选择
PDO设置数值对应模式具体可在RTSys软件右上角打开【帮助文档】→【RTBasic编程手册】→指令【DRIVE_PROFILE】中查看。

以下是其所有文字内容:PDO部分
每个轴的发送pdo接收pdo的配置选择。
必须设置正确的ATYPE(设置为65/66/67)以后才能操作这个参数。
详细配置请咨询厂家。
-1表示使用驱动器的内置缺省PDO列表,20160601以上版本支持,缺省PDO不带0X6060时,无法使用datum(21)回零指令。
-1-驱动器默认设置,需要控制器版本 20160601 及以上
0-缺省配置,csp位置模式
{0x60400010, 0x607a0020, 0x60600008},
//控制字 目标位置 模式
{0x60410010, 0x60640020},
//状态字 反馈位置
1-csp位置模式+力矩反馈
{0x60400010, 0x607a0020, 0x60600008},
//控制字 目标位置 模式
{0x60410010, 0x60640020, 0x60770010},
//状态字 反馈位置 当前力矩
2-csp位置模式+力矩反馈+锁存1up
{0x60400010, 0x607a0020, 0x60b80010, 0x60600008},
//控制字 目标位置 probe设置 模式
{0x60410010, 0x60640020, 0x60770010, 0x60b90010, 0x60ba0020},
//状态字 反馈位置 当前力矩 probe状态 probe位置
3-csp位置模式+力矩限制+力矩反馈+锁存1上升沿
{0x60400010, 0x607a0020, 0x60b80010, 0x60720010, 0x60600008},
//控制字 目标位置 probe设置 力矩限制 模式
{0x60410010, 0x60640020, 0x60770010, 0x60b90010, 0x60ba0020},
//状态字 反馈位置 当前力矩 probe状态 probe位置
4-csp位置模式+力矩反馈+驱动器IO输入
{0x60400010, 0x607a0020, 0x60600008},
//控制字 目标位置 模式
{0x60410010, 0x60640020, 0x60770010, 0x60fd0020},
//状态字 反馈位置 当前力矩 驱动器IO输入
5-csp位置模式+力矩反馈+驱动器IO输出+驱动器IO输入
{0x60400010, 0x607a0020, 0x60fe0120,0x60600008},
//控制字 目标位置 IO输出 模式
{0x60410010, 0x60640020, 0x60770010, 0x60fd0020},
//状态字 反馈位置 当前力矩 驱动器IO输入
6-特殊驱动器专用
7-特殊驱动器专用
8-特殊驱动器专用
9-固件版本 160504 支持
{0x60400010,0x607a0020,0x60fe0120,0x60b80010,0x60720010,0x60600008},
//控制字 目标位置 IO输出(32个) probe设置 力矩限制 模式
{0x60410010,0x60640020,0x60770010,0x60fd0020,x60b90010,0x60ba0020},
//状态字 反馈位置 当前力矩 驱动器IO输入(32个) probe状态 probe位置
10-固件版本 160504 以上支持,加drive_fe部分
{0x60400010,0x607a0020,0x60fe0120,0x60b80010,0x60720010,0x60600008},
//控制字 目标位置 IO输出 probe设置 力矩限制 模式
{0x60410010,0x60640020,0x60770010,0x60fd0020,0x60b90010,0x60ba0020,0x60f40020},
//状态字 反馈位置 当前力矩 驱动器IO输入 probe状态 probe位置 drive_fe
11-固件版本 160504 以上支持,probe专用测试
{0x60400010, 0x607a0020, 0x60b80010, 0x60600008},
//控制字 目标位置 probe设置 模式
{0x60410010,0x60640020,0x60770010,0x60b90010,0x60ba0020,0x60bb0020, 0x60bc0020, 0x60bd0020},
//状态字 反馈位置 当前力矩 probe状态 probe位置1/位置2/位置3/位置4
12-固件版本 160504 以上支持,特殊驱动器专用
{0x60400010, 0x607a0020, 0x60600008},
//控制字 目标位置 模式
{0x60410010, 0x60640020, 0x60fd0020},
//状态字 反馈位置 驱动器IO输入
13-固件版本 160504 以上支持,带速度前馈与加速度前馈
{0x60400010, 0x60B20010, 0x607a0020, 0x60B10020, 0x60600008},
//控制字 加速度前馈 目标位置 速度前馈 模式
{0x60410010, 0x60640020, 0x60770010, 0x60fd0020, 0x606c0020},
//状态字 反馈位置 当前力矩 驱动器IO输入 实际速度
17-固件版本160504以上支持,csp/csv/cst三种模式可以切换
{0x60400010,0x60710010,0x60ff0020,0x607a0020,0x60b80010,0x60720010, x60600008},
//控制字 周期力矩 周期速度 目标位置 probe设置 力矩限制 模式
{0x60410010,0x60770010,0x60640020,0x60fd0020,0x60b90010,0x60ba0020, x60bb0020},
//状态字 当前力矩 反馈位置 驱动器IO输入 probe状态 probe位置1/位置2/
18-固件版本160504以上支持,csp/csv/cst三种模式可以切换+力矩反馈读取
{0x60400010,0x60710010,0x60ff0020,0x607a0020,0x60b80010,0x60720010,0x60600008},
//控制字 周期力矩 周期速度 目标位置 probe设置 力矩限制 模式
{0x60410010,0x60770010,0x60640020,0x60fd0020,0x60b90010,0x60ba0020,0x60bb0020, 0x60bc0020, 0x60bd0020},
//状态字 当前力矩 反馈位置 驱动器IO输入 probe状态 probe位置1/位置2/
probe位置3/位置4
20-固件版本 160504 以上支持,csp位置+csv速度
{0x60400010, 0x60ff0020, 0x607a0020, 0x60600008},
//控制字 目标速度 目标位置 模式
{0x60410010, 0x60640020},
//状态字 反馈位置
21-固件版本 160504 以上支持,csp位置+csv速度+力矩反馈
{0x60400010,0x60ff0020,0x607a0020,0x60600008},
//控制字 目标速度 目标位置 模式
{0x60410010,0x60640020,0x60770010},
//状态字 反馈位置 当前力矩
22-固件版本 160504 以上支持,csp位置+csv速度+力矩反馈+色标锁存1上升沿
{0x60400010, 0x60ff0020, 0x607a0020, 0x60b80010, 0x60600008},
//控制字 目标速度 目标位置 probe设置 模式
{0x60410010, 0x60640020, 0x60770010, 0x60b90010, 0x60ba0020},
//状态字 反馈位置 当前力矩 probe状态 probe位置
23-固件版本 160504 以上支持,csp位置+csv速度+力矩反馈+锁存1上升沿+力矩限制
{0x60400010,0x60ff0020,0x607a0020,0x60b80010,0x60720010,0x60600008},
//控制字 目标速度 目标位置 probe设置 力矩限制 模式
{0x60410010,0x60640020, 0x60770010,0x60b90010,0x60ba0020},
//状态字 反馈位置 当前力矩 probe状态 probe位置
24-固件版本 160504 以上支持,csp位置+csv速度+IO输入+位置+力矩反馈
{0x60400010, 0x60ff0020, 0x607a0020, 0x60600008},
//控制字 目标速度 目标位置 模式
{0x60410010, 0x60640020, 0x60770010, 0x60fd0020},
//状态字 反馈位置 当前力矩 驱动器IO输入
25-固件版本 160504 以上支持,csp位置+csv速度+IO输入+位置+力矩反馈
{0x60400010, 0x60ff0020, 0x607a0020, 0x60fe0120,0x60600008},
//控制字 目标速度 目标位置 驱动器IO输出 模式
{0x60410010, 0x60640020, 0x60770010, 0x60fd0020},
//状态字 反馈位置 当前力矩 驱动器IO输入
30-固件版本 160504 以上支持,csp位置+cst转矩
{0x60400010, 0x60710010, 0x607a0020, 0x60600008},
//控制字 目标转矩 目标位置 模式
{0x60410010, 0x60640020},
//状态字 反馈位置
31-固件版本 160504 以上支持,csp位置+cst转矩+力矩反馈
{0x60400010,0x60710010,0x607a0020,0x60600008},
//控制字 目标力矩 目标位置 模式
{0x60410010,0x60640020,0x60770010},
//状态字 反馈位置 当前力矩
32-固件版本 160504 以上支持,csp位置+cst转矩+力矩反馈+锁存1上升沿
{0x60400010, 0x60710010, 0x607a0020, 0x60b80010 , 0x60600008},
//控制字 目标转矩 目标位置 probe设置 模式
{0x60410010, 0x60640020, 0x60770010, 0x60b90010, 0x60ba0020},
//状态字 反馈位置 当前力矩 probe状态 probe位置
33-固件版本 160504 以上支持,csp位置+cst转矩+力矩反馈+锁存1上升沿+ 力矩限制
{0x60400010,0x60710010,0x607a0020,0x60b80010,0x60720010,0x60600008},
//控制字 目标转矩 目标位置 probe设置 力矩限制 模式
{0x60410010, 0x60640020, 0x60770010, 0x60b90010, 0x60ba0020},
//状态字 反馈位置 当前力矩 probe状态 probe位置
34-固件版本 160504 以上支持,csp位置+cst转矩+力矩反馈+驱动器IO输入
{0x60400010, 0x60710010, 0x607a0020, 0x60600008},
//控制字 目标转矩 目标位置 模式
{0x60410010, 0x60640020, 0x60770010, 0x60fd0020},
//状态字 反馈位置 当前力矩 驱动器IO输入
35-固件版本 160504 以上支持,csp位置+cst转矩+力矩反馈+IO输入+IO输出
{0x60400010, 0x60710010, 0x607a0020, 0x60fe0120,0x60600008},
//控制字 目标转矩 目标位置 驱动器IO输出 模式
{0x60410010, 0x60640020, 0x60770010, 0x60fd0020},
//状态字 反馈位置 当前力矩 驱动器IO输入
教学视频请点击→自主自研运动控制集成开发平台RTSys(二):EtherCAT总线快速配置
|