正运动技术
正运动技术
精准24码全年无错版
EN
精准24码全年无错版
精准24码全年无错版

协助伙伴成功,是我们的价值所在

The value of Zmotion is to bring customers more success!

首页 / 支持与服务 / 常见问题

COMMON PROBLEMS

常见问题

十八、软件 - Basic常见问题

一、Basic编程基础

1.寄存器

通过MODBUS直接访问一些系统状态

通过特殊的MODBUS寄存器可以访问IO,轴参数等。

控制器直接从MODBUS_BIT地址10000开始与输入IN口对应,20000与输出OUT口对应(注意读取的IO是原始的状态,INVERT_IN反转输入指令不起作用),30000与PLC编程的S寄存器对应。

MODBUS_IEEE地址10000开始对应轴DPOS区间,11000开始对应轴MPOS区间,12000开始对应轴VP_SPEED区间。

MODBUS_REG的13000开始对应模拟量DA输出区间,14000开始对应模拟量AD输入区间。

M8000:只要PLC处于运行状态,M8000的常开触点一直保持闭合。可以作为需要一直驱动程序的

输入条件以及作为控制器的运行状态的显示来使用。

M8001:只要PLC处于运行状态,M8001的常开触点一直断开。

M8002:PLC从停止到运行的时候,M8002仅在第一个扫描周期内导通一次,一般用于初始化参数和

程序复位,或者批量赋值。

M8003:PLC从停止到运行的时候,M8003断开第一个扫描周期,然后恢复常闭状态。

M8011:是以10毫秒为周期时间,在这10毫秒内M8011的触点接通5MS,断开5毫秒,不断重复循

环。

M8012:是以100毫秒为周期时间,在这100毫秒内M8011的触点接通50MS,断开50毫秒,不断重

复循环。

M8013:是以1秒为周期时间,在这1秒内M8011的触点接通500MS,断开500毫秒,不断重复循

环。

M8014:是以1分钟为周期时间,在这1分钟内M8011的触点接通30秒,断开30秒,不断重复循

环。

M8020:加减运算结果为零时,M8020就会置位,反之则为复位状态。

M8021:减法运算结果小于负的最大值时,借位标志位动作。

M8022:加法运算结果大于正的最大值时,进位标志位动作。

M8023:小数点标志。

M8100-M8199:轴0-99的IDLE标志

M8200-M8299:轴0-99的BUFFER剩余标志

M10000~:IN(0)对应M10000地址,IN(1)对应M10001地址,以此类推。

M20000~:OP(0)对应M20000地址,OP(1)对应M20001地址,以此类推。

 

D8001:版本

D8004:错误

D8010:扫描时间

D8011:扫描最小时间

D8012:扫描最大时间

D8013:秒

D8014:分

D8015:时

D8016:日

D8017:月

D8018:年

D8019:星期

D10000-D10198:DPOS,浮点方式,每个轴占1个MOBBUS_IEEE。

D11000-D11198:MPOS,浮点方式,每个轴占1个MOBBUS_IEEE。

D12000-D12198:VPSPEED,浮点方式,每个轴占1个MOBBUS_IEEE。

D13000-D13128:AOUT,模拟量输出,每个通道占1个MOBBUS_REG。

D14000-D14256:AIN,模拟量输入,每个通道占1个MOBBUS_REG。

 

掉电保存数据

VR的数据是掉电保存的,可反复读写,寄存器空间有限。

数据量较大的可以写入FLASH,上电时再读取出来,注意FLASH不要频繁读写,有读写次数限制十万次。

 

2.运动指令

(1)单轴指令

CANCEL后运动还在执行

规划层面:

1.CANCEL缺省模式为取消当前运动但缓冲区内的运动不取消,使用CANCEL(2)立即停止;

2.检查CANCEL(2)后,是否还在下发运动命令;

3.检查加减速度有无设置,不存在绝对的立刻停止,通过设置FASTDEC参数为很大值,可以使得限位、报警或RAPIDSTOP(2)时可以快速停止;

4.急停速度过小,同3;

5.预留刹停距离过小,比如限位感应片长度过短导致限位信号时间较短;

6.CANCEL的轴号要正确;不要只对插补从轴使用CANCEL指令;

7.对于手轮等电子齿轮同步运动,CANCEL主轴从轴若不会立即停止,注意Clutch_Rate是否为0且从轴速度/加速度比例较小。

执行层面:

1.驱动器内部的S曲线设置需为0,由控制器规划S曲线;

2.驱动器刚性参数。

 

datum21调用时,往mpos等于0运动

解决方法:

1.若使用的是pdo设置-1,驱动器配置中未加入6060,未配置回零模式,则会导致回零异常。

2.驱动器回零模式将当前位置设置为0。

 

DATUM(13)实际往负向回零的可能原因

解决方法:

1.可能原点信号极性反了,检测原点传感器的信号是否是默认常闭;

2.可能是电机方向反了,检查手动运动的方向是否一致;

3.限位信号极性错误,或者正负限位原点信号绑定错了;

4.程序问题,datum(13)触发后又调用了其他负向回零模式;

5.原点信号误触发。

 

DATUM(3)碰原点不停止异常问题

参考现象:轴位于原点以及负限位之间,驱动一个轴,用回零模式3,会有偶发性的情况,碰到原点不掉头,一直往正向跑。然后出现这个情况的时候,停止轴运动,再重新驱动轴往负向走,就会一直往正向撞机。

排查步骤:

1.手动运动确认电机方向;

2.通过示波器抓取波形,确认是有偶发性出现运动控制走正向,实际运动方向相反,且撞到负限位的情况;

3.检查控制程序逻辑,通过关闭上位机软件,用ZDevelop编写脚本,复现上位控制逻辑,且重复运动,若出现同样的问题,则进行下一步;

4.检查硬件接线,是否采用双绞屏蔽线,更换后再单独接线测试;

5.检查是否固件问题或控制器老旧问题;可考虑更换新老运动控制器,更新新老固件,若依然出现这个情况;

6.检查基础参数设置;改加减速,回零参数验证;(若无法解决则进行下一步);

7.排查是否为驱动器问题,可能为步进电机执行问题。

 

(2)多轴指令

整圆插补有时不执行

解决方法:

1.整圆插补必须使用相对圆弧插补MOVECIRC,不能使用绝对圆弧,也不能用MOVECIRC2;

2.控制器是否支持插补指令,使用在线命令[?*max]查看最后一行信息(最后一行信息表示控制器所支持的功能);

3.圆心画圆时,圆的轨迹参数设置不合理,不是一个数学几何意义上的整圆;

4.走圆过冲中碰到异常停止(如圆弧过程中某个轴碰到软限位)。

 

插补运动使分轴速度保持

参考现象:base(X,Y,Z)三个轴走多段插补运动时,运动中未改动X轴的SPEED,但X轴速度时快时慢,怎么让X轴保持同一个速度运行?

解决方案:

1.插补运动时,矢量速度恒定,各轴速度视运动距离自动规划,故分轴的速度会发生变化;通过指令INTERP_FACTOR=1,0,0  可以设置X轴速度保持不变。注意在单轴运动时一定要将INTERP_FACTOR恢复至1,否则会飞车;

2.直线运动,可以尝试切换MOVE_PTP;

3.如果不要求同时到达目标位置,可以YZ插补,插补过程中对X使用MOVE_ASYNMOVE。

 

设置了连续插补但是没效果

解决方案:

1.检查Merge是否设置在插补运动的第一个BASE轴上;

2.运动中是否有延时导致缓冲运动不连续,延时会打断插补运动连续性;

3.若运动指令为小线段,检测是否小线段运动时间太短,导致PC这边发运动的速度没有运动跑的快导致;

4.是否设置SP运动或轨迹前瞻等限制速度的操作,会对插补速度有影响(如设置了SP速度,设置了拐角减速等);

5.确认当前控制器是否支持连续插补功能;

6.多条插补间加入了 MOVE_DELAY,MOVE_WAIT之类指令,也会导致减速;

7.切换主轴,连续插补MERGE程序中被关闭。

 

轴停止命令不生效,缓冲区执行basic代码,运行过程中执行轴停止命令不成功。

参考现象:轴停止命令不生效,缓冲区执行basic代码,运行过程中执行轴停止命令不成功。

可能原因:控制器的运动缓冲数较少,一次性下载的运动命令太多,每个轴的运动缓冲空间是有限的,当扫描太多运动指令放入运动缓冲区时,多级运动缓冲区全部被塞满,如果程序继续扫描到更多的运动指令,程序也会被堵塞,直到运动指令依次完成并退出,运动缓冲区有了空位,运动指令才会继续进入运动缓冲区,轴停止指令只能把当前运动和缓冲运动取消掉,之前被堵塞的运动指令刚好因为运动缓冲区中的运动被取消了,运动缓冲区有了空位,就把之前被堵塞的运动指令写入缓冲区,所以造成轴停止命令不能让轴停止下来。

解决方法:

1.用运动暂停指令来让停止轴;

2.快速多次的输入轴停止命令;

3.Basic死循环的时候,直接停止任务,使用halt 或者stoptask指令;

4.上位机:先停止上位机线程,再发送停止命令。


(3)同步运动指令

CAMBOX指令使用,运动出现误差

解决方案:

1.当前轴运动的总时间由参考轴的运动距离和轴速度确定,速度自动匹配;

2.TABLE数据需要手动设置,TABLE的第一个数据为引导点,建议设置为0。因为凸轮走的数据是相对于起点来说的相对距离;

3.确保指令传递的距离参数*units是整数个脉冲,出现浮点数会导致运动有细微误差;

4.同一段运动分段使用分成多个CAMBOX,凸轮启动的位置要做处理,确保是分段的起始位置;

5.TABLE数据细分不够会导致规划轨迹变形;

6.对于长凸轮表,不要在运动中修改TABLE里的位置值。

 

CONNECT同步运动丢脉冲

参考现象:CONNECT指令同步会丢脉冲问题,主从轴速度差较大时CLUTCH_RATE设0也会丢失。

解决方案:

1.脉冲当量为浮点数时,同步也有精度丢失;

2.可以考虑使用ADDAX新模式设置比例解决。

 

(4)位置相关指令

编码器mpos和dpos有误差(运动过程中反馈位置mpos相对规划位置dpos有误差,大部分现象是滞后)

滞后:命令由控制器发出后,驱动器响应并执行动作存在一定的延迟。这个延迟包括驱动器接收信号后的处理时间以及执行动作所需的时间。位置滞后可能导致机械运动的同步性和精确性受到影响,从而影响整个加工过程的质量和效率。

可能原因1:使用伺服驱动器出现滞后

解决方案:

1.位置环的参数设置对于减少位置滞后非常关键。可通过调整位置环的比例增益和积分时间常数,可以优化伺服驱动器的响应性能,减少位置滞后,提高系统的动态性能。此外,位置环的前馈增益也可以用来改善高速响应特性,但需要在不引起振荡的前提下进行调整。有些伺服直接调整刚性等级自适应增益,或可自动识别惯量调整增益。

2.速度与加减速的比例不匹配,根据实际机台调试。

可能原因2:使用步进驱动器出现位置滞后

解决方案:

1.初始速度和加速度设置不当:如果初始速度过高或者加速度过大,可能会导致步进电机丢步或堵转,从而引起位置滞后。

2.控制信号线可能受到设备其他信号的影响,或者驱动器受到干扰信号的影响,这些干扰可能导致步进电机误动作,进而引起位置滞后。

3.如果选用的步进电机力矩偏小,在加速或高速运行时可能会出现丢步,导致位置滞后。

4.速度与加减速的比例不匹配,根据实际机台调试。

 

3.轴参数与轴状态指令

(1)基本参数指令

无法设置轴类型ATYPE,每次设置都出现fail

排查方法:

1.排查轴物理地址是否支持。

2.在总线轴中,总线初始化脚本中DRIVE_PROFILE模式是否设置正确,如需设置ATYPE=67(力矩模式),则DRIVE_PROFILE模式需设置带CST模式的模式,如17,18,30,31其中任一模式。

3.排查是否超过了控制器最大实轴数量(实际控制电机运动的的轴,具体可查看RTSys软件中[控制器状态]界面中RealAxises一栏的值)

4.排查轴映射语法是否正确。总线轴映射、扩展的脉冲轴映射、本地脉冲轴重映射以及MotionRT7控制卡子卡上的轴映射时的语法都不一致,具体参考《RTBasic编程手册》中AXIS_ADDRESS指令介绍。AXIS_ADDRESS-轴地址设置.docx

图片47.png

 

4.程序结构与流程指令

(1)数据定义指令

数组越界问题

可能原因:由于起始索引为0,结束索引为数组长度减去1,越界程序报错。

图片48.png 

排查方法:

1.使用前确保声明数组放程序开头;

2.排查数组下标的值。例如设置空间大小为10的数组,数组下标只能设置为0到9;

3.排查是否超过控制器所支持的最大长度。

 

5.输入输出相关指令

(1)输出相关指令

AOUT不输出电压问题

参考现象:AOUT设置输出指定电压值,实际不输出。

排查方法:

1.检查IO电源有没有接上 ;

2.确认一下接线有没有接错;

3.模拟量电源是否和控制器电源分开;

4.使用EtherCAT总线扩展模块的模拟量子模块时,模拟量量程未设置或未对应上,用SDO_WRITE指令写数据字典设置;

5.若程序中存在多个连续aout指令,则需添加延时指令处理。由于刷新周期的问题只生效前面的aout指令,因此建议在两条aout指令之间加30ms以上的延时;

6.若程序中存在多个连续aout指令,则建议在两条aout指令之间加30ms以上的延时。

 

6.报错问题

1000H报错问题

可能原因:1000h报警主要为设置的SPEED*UNITS超过MAX_SPEED导致。如果是插补运动则为设置的MSPEED*UNITS超过MAX_SPEED导致。

解决方案:

1.适当增大MAX_SPEED,但不要超过硬件手册的最大脉冲频率;

2.将驱动器细分降低;

3.控制运行速度和加速度;

4.脉冲当量设置太大;

5.电机齿轮比指令调整,不建议在控制器上修改电机齿轮比,在驱动器上里面修改电机齿轮比;

6.检测有无叠加,叠加轴超max_speed。

 

100000H报错问题

可能原因:一是瞬间速度大于MAX_SPEED,二是从叠加轴引起主轴报错。前者可能由move_pt这一类指令导致。

解决方案:可以通过设置正确的速度,使轴的最大瞬间速度不要超过MAX_SPEED。

排查方法:

1.叠加失速问题导致;

2.修改了电机齿轮比,不建议修改电机齿轮比。

 

6099报错6090031h问题

可能原因:报6090031是参数值太高,问题在于驱动器那边的单位是圈,而控制器给的速度是乘上脉冲当量的,这导致控制器这边传输过去的速度值报6090031h。6099是驱动器回零速度。

解决方案:回零前将脉冲当量修改为1在启动驱动器回零就能解决了。

排查方法:

402协议错误码:写入数据异常

图片49.png 

 

总线扫描RTSys/ZDevelop出现6015(EtherCat总线初始化失败,错误码6015/ EtherCat总线初始化失败,报错6015/总线初始化报应答包WKC错误/6015)

参考现象:

图片50.png 

解决方法:

6015是驱动器在扫描时返回的应答报错,可能原因有以下几点:

1.驱动器的固件更新过,通讯周期可能对不上,确定驱动器通讯周期范围,检查是否和控制器周期一致。控制器的总线通讯周期设置范围可通过RTSys软件或者ZDevelop软件的在线命令下发[?*MAX]进行查询;

图片51.png 

2.尝试提高控制器的总线通讯周期看看是否可以解决问题。控制器的通讯周期设置可通过RTSys软件或者ZDevelop软件的在线命令下发指令修改如:[SERVO_PERIOD=2000],设置完成后控制器需断电重启后生效;

图片52.png 

3.驱动器的控制通讯方式选择错误,部分驱动器控制通讯方式分为脉冲控制和总线控制,部分驱动器需要手动设置更改控制通讯方式,可通过驱动器的调试软件修改或驱动器控制器面板修改,修改为总线控制;

4.驱动器固件问题,咨询驱动器厂商看看能否升级固件。

 

配置XML文件,slot_scanRTSys/ZDevelop报错6020问题(EtherCat总线初始化失败,错误码6020/EtherCat总线初始化失败,报错6020/ 总线初始化报不支持的功能/6020)

现象参考1:

图片53.png 

解决方法:

该现象大概率是驱动器内部设置非EtherCat模式导致,先把驱动器设置成总线模式,然后进行总线初始化是否报错。

现象参考2:

图片54.png 

解决方法:

基本是这个问题 al状态从1到2失败了,一般是sm初始化问题。

图片55.png 

在XML文件导出ZML文件的时候,Minsize可以先尝试改成与DefaultSize相同大小, SM0 和SM1须一起修改,两个修改值要相同;如果还是不行,比原来的MinSize大即可,同时小于或等于MaxSize都可以,比如现在的MinSize是0x22  ,可以试试0x64 0x80 0x32。

现象参考3:

图片56.png 

解决方法:

出现该问题通常是把状态机切换为Safe Op或者把状态机从Safe Op 切换到 Op时,切换失败导致的,通常是Pdo配置内容驱动器不支持导致,可以将DRIVE_PROFILE的模式设置成0或者-1观察是否正常。

还有少部分型号驱动器在Safe Op切换到 Op时,需要做一定时间延时才可。

现象参考4:

图片57.png 

解决方法:

1.通常是PDO配置内容驱动器不支持导致,可以将DRIVE_PROFILE的模式设置成0或者-1观察是否正常。

2.驱动器可能和串口进行通讯交互数据,有些驱动器厂家只有一种通讯方式,需要进行切换,切换时需先关闭串口通讯,再转为总线通讯方式进行总线初始化。

现象参考5:

图片58.png 

解决方法:

1.可能是上电ECAT从站还没有准备好,控制器就马上进行总线初始化的相关操作了,导致从站报错,这时候重启从站后重新总线初始化后正常。可以在控制器总线初始化代码执行前加大延时到10S观察是否有效果;

2.可能是某个ECAT从站有问题导致的,排查是哪个从站接上去就会报这个错误,把该从站替换新的硬件观察或者将驱动器升级;

3.更新从站的XML文件观察是否有效果。微信回复 [如何添加XML文件] ,根据步骤提示更新XML到控制器。

4.Pdo列表长度加大,控制器默认以八位来接受数据

图片59.png 

在XML文件导出ZML文件的时候,Minsize可以先尝试改成与DefaultSize相同大小, SM0 和SM1须一起修改,两个修改值要相同;如果还是不行,比原来的MinSize大即可,同时小于或等于MaxSize都可以,比如现在的MinSize是0x22  ,可以试试0x64 0x80 0x32。

 

上位机2033报错问题

参考现象:客户的连接句柄正常(点动接口可以使用),原点指令的参数也直接使用数字,但报错2033,2033是表达式中碰到不认识的名称(未定义的变量或数组)。

图片60.png 

排查方法:

1.检查库文件是否有问题,将验证过的回零例程运行,观察是否有报错;

2.检查控制器是否有问题,在线命令执行原点指令,观察能否正常回零;

3.检查控制器状态,查看控制器固件版本,将固件更新到最新版本,观察是否可以正常运行。

图片61.png 

 

7.存储相关指令

(1)FLASH相关指令

FLASHVR使用注意事项

FLASHVR(-1)指令仅会保存默认的32万个TABLE寄存器,如果用TSIZE指令修改TABLE寄存器的数量大于32万,超出部分的TABLE寄存器不会被保存。

解决方案:若要使用TSIZE修改TABLE空间,建议用FLASH_WRITE和FLASH_READ手动控制,不用FLASHVR指令。

邮箱留言

Copyright © 2013 精准24码全年无错版 Design by Zmotion 版权所有   粤ICP备13037187号    Powered by 运动控制器-运动控制卡

在线咨询