正运动技术

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

Assisting our partners to succeed is our value

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

COMMON PROBLEMS

常见问题

  • 一、错误码整理列表

  • 二、PLC中LV局部寄存器的使用介绍

    局部寄存器LV:

    在函数内局部有效的寄存器,每个函数的每个运行实例使用不同的数据;每个函数有8个LV,编号0-7;此寄存器为32位浮点数。
    此寄存器与ZBASIC的LOCAL类似,ZBASIC调用ZPLC时,调用参数自动传入LV寄存器。
    LV存储器可以同时作为变址寄存器。

    编程示例:

    微信图片_20191031150738.png
    程序功能介绍: 上电后,通过BASIC程序开启两个子任务,分别调用PLC中的SUB_CAL和SUB_CAL1两个子函数, 两个子函数都通过局部寄存器LV1作返回值,但由于LV是局部寄存器,每个函数都有独自的8个LV寄存器,所以,当X0接通时,a、b两个变量分别被赋值为3和4。同时由于LV局部寄存器可以作变址寄存器,所以,DT2的值为3,DT3的值为4。

  • 三、IO扩展模块的IO口编号如何计算

    根据模块的ID来确定,ID通过拨码开关的组合值来确定,类似8421方式的组合。

    对ZIO1608所有拨码OFF,ID0 – 输入16 – 31 输出16-23

    第一个拨码ON,其他OFF,ID1 – 输入32 – 47 输出32-39

    拨码1,2,ON,其他OFF,ID3 – 输入64 – 79 输出64-71

    依次类推。

  • 四、ZMC控制器使用常见问题(1)

    1.调用运动指令,但是轴没有动

    可能1:

           有限位或告警输入,或限位告警的电平配置错误。

           特殊信号缺省是常闭的,国内部分产品是常开的。需要设置INVERT_IN把对应的口翻转过来。

     

    可能2:

           轴的atype配置错误.

     

    2.提示不认识的label

    可能1:

           变量没有在使用前声明。

     

    可能2:

           label有字符敲错。

     

    3.使用 MPOS= 赋值修改坐标后坐标有误差

    DPOS是虚拟位置,MPOS是反馈位置,对虚拟轴,MPOS = DPOS。

    修改MPOS时确认运动已经完全停止,否则会有不确认的因素。

    为保险起见,可以使用DPOS=赋值来修改坐标,此时只用虚拟轴停止即可。

     

    4.RUN启动多任务出错

    RUN STOP 后面接BAS文件名。

    RUNTASK 后面接SUB过程名

     

    5. ticks计算出来的值有问题

    ticks是减减计数的。

     

    6.连续插补如何实现

    设置参数  merge=on

    如果需要拐角减速和小圆限速,则要使用更多的参数。

    merge = on '启动连续插补

    CORNER_MODE = 2'启动拐角减速

    DECEL_ANGLE = 15 * (PI/180)'开始减速的角度 15度

    STOP_ANGLE = 45 * (PI/180)'降到最低速度的角度45度

    FULL_SP_RADIUS = 100    '小圆

     

    如何知道连续插补当前运动到那一段了?

    使用 MOVE_MARK 和 MOVE_CURMARK 来判断。

     

    如何自己规划每条线段的限速?

    采用 MOVESP等指令, 同时设置好FORCE_SPEED, ENDMOVE_SPEED等参数。

     

    7.点位运动如何实现

    没有专门的点位运动指令,直接使用MOVE指令来实现,一次只操作一个轴。

    MOVE AXIS(0)

    MOVE AXIS(1)

     

    8.vmove多个轴是否可以

    不可以, 必须分多条命令。

    VMOVE(1)  axis(0)

    VMOVE(1)  axis(1)

     

    9.插补运动的参数如何设置

    BASE的第一个轴为主轴,主轴的参数就是插补运动的参数。

     

    BASE(1,2)

    move(1000,122)     '轴1的参数为插补参数

    move(1000,122)  axis(0)     '轴0的参数为插补参数

     

    10.中断函数为什么没有用?

    中断开关缺省是关闭的,可以查看中断开关系统参数是否打开。

     

    11.能否使用输入口跳变作为中断函数?

    不可以,输入口的个数理论上可上万,无法实现这样多的中断函数。

     

    12.如何从PC访问控制器定义的变量?

    最好把要访问的变量,数组等定义为全局变量。

    通过execute函数来修改或读取。

     

    13. 是否所有的指令都可以从PC直接发送

    WAIT等部分指令限制从PC发送,因为会造成PC命令通道阻赛。

    也不能通过PC命令来定义变量数组。

     

    14.如何立刻停止运动?

    不存在绝对的立刻停止, 通过设置fastdel参数为很大值, 可以使得限位或rapidstop时可以快速停止。

    停止之后再次运动,最好加上wait idle的判断

    rapidstop无视base,停止所有的轴

     

    15.手轮如何实现?

    采用connect指令来实现, 参见手轮例程。

     

    16.forward和reverse不能立刻修改运动方向?

    forward和reverse每次调用都会加入缓冲,因此最好cancel之后再调用新的运动指令。

     

    另外一种方式是使用vmove,vmove会自动判断以前的指令,如果也是vmove则直接修改方向,因此要实现类似jog的功能,最好用vmove来实现。

     

    17.如何通过modbus直接访问一些系统状态?

    通过特殊的modbus寄存器可以访问IO,位置等。

    位 10000开始表示输入, 20000开始表示输出。

     

    字寄存器每个轴占两个字,float格式

    #define  MODBUS_REGNUM_DPOS_X   10000

    #define  MODBUS_REGNUM_MPOS_X   11000

    #define  MODBUS_REGNUM_VP_SPEED_X   12000

     

    18.cancel后运动还在执行

    cancel缺省是取消当前运动,缓冲的运动不取消,带参数2,cancel(2)后所有的都取消。

     

    19.能否使得打印命令受控,这样不需要打印的时候可以不用删除代码。

    使用TRACE  WARN  ERROR 来打印,通过对 ERRSWITCH 赋值不同的值可以控制对应的指令是否输出。

     

    20.是否支持不同脉冲当量的轴做圆弧插补?

    支持

     

    21.设置了forcespeed,但是实际运动的速度没有达到forcespeed

    speed参数也会对插补运动产生限制,而且是动态的,把speed修改即可。

     

    22.需要掉电能保存数据,怎么办?

    VR的数据是掉电保存的,如果其他数据要保存,可以写入flash,上电时再读取出来。

     

    23.定义了变量,但是另外一个文件中访问不到?

    变量分为全局,文件,局部三种类型,缺省的都是文件变量,只能在当前文件中访问,请修改为global定义,则可以所有的地方访问。

     

    24.定义了sub,但是另外一个文件中无法调用?

    sub分为全局和文件两种类型,缺省的是文件类型,只能在当前文件中访问,请修改为global定义,则可以所有的地方访问。

     

    25.程序运行中出错,如何查错?

    不要重启,用zdevelop工具连接上去(选择附加到当前程序的方式),即可查看程序运行内部状态和出错位置。

    通过命令栏输入: ?*task 也可以参考出错原因和位置。

     

    26.内部的Warn输出如何关闭?

    设置系统参数 ERRSWITCH<2即可关闭WARN输出。

     

    27.Print输出的排列不整齐,如何处理?

    可以采用TOSTR格式化输出。

     

    28.Offpos修改生效的等待时间有多长?

    非常短,基本上是立即生效的。

  • 五、ZMC控制器使用常见问题(2)

    1.error:2032:Invalid char is met. 的原因是什么?

    一般是出现了中文字符,检查引号等符号是否是中文的。

     

     

    2.如果想自动支持多个型号的控制器,应该在程序中怎么处理?

    通过CONTROL 参数可以获取控制器基本型号。

     

    通过FLASH_SECTES  FLASH_SECTSIZE可以获取FLASH的规格。

     

    3.网络连接不上

     

    检查PC的IP地址,需要在同一网段。

    检查控制器IP地址,可以用串口连接上去查看。

    检查PC防火墙设置。


    4.PC无法同时连接上internet和控制器

     

    方式1:修改控制器IP地址与PC和网关位于同一个网段。

    方式2:修改PC的子网掩码,使得网关和控制器IP地址位于同一个网段,比如改为:255.255.128.0


    5.IDLE以后 MPOS还在变化

    IDLE以后DPOS不会再变化,MPOS并不一定稳定,可以延时一会,或是等待MPOS到达结束位置。

     

    6.通过DEFPOS的方式来触发CAMBOX运动启动偶尔不成功。

    不能DEFPOS修改后立刻改回去,修改后要延时一个周期,确保CAMBOX运动有检测到起始条件。如果是立即启动的不需要用位置触发方式。

     

    7.如何把一个不自动运行的文件单独执行一次。

    通过命令行输入 “run filename”, filename为需要执行的文件名,注意如果文件有修改,则需要全部重新下载。

     

    8.限位的时候冲过去了。

    提高FASTDEC的设置, 或是加快限位信号的挡片感应范围。

     

    9.使用运动SP指令时总是边界出现减速。

    检查STARTMOVE_SPEED与ENDMOVE_SPEED这两个参数,这两个参数与FORCE_SPEED一样是会带入SP指令的缓冲的。

     

    10.设置了MERGE但是没有连续。

    检查MERGE是否设置在MOVESP指令的第一个BASE轴上?

     

    11.传感器信号跳动,一个信号受其他信号的影响。

    检查是否IO传感器的电源与控制器的IO电源不是同一个,此时需要将两者的底线连接起来。

     

    12.回零时本身在原地附件时出现慢速一直反找的现象。

    控制器针对伺服类电机可能冲过原点的情况有加特别的保护,此时可能是应该控制器检测到原点即停止,但是完全停止时又检测不到原点了,因此误以为轴已经冲过了原点感应范围。解决办法:LSPEED在回零时设置为0,让回零产生一定的减速距离。

     

    13.WHILE NOT 1 跳不出循环。

    ZBASIC的NOT是按位取反,NOT 1 的结果是-2, 所以还是不为FALSE, 应该使用 WHILE FALSE 或者 WHILE NOT TRUE, TRUE的值为-1,取反后刚好等于0。

邮箱留言

Copyright © 2013 正运动技术有限公司 Design by Zmotion 版权所有   粤ICP备13037187号-1    Powered by www.zmotion.com.cn 运动控制器运动控制卡网站地图

在线咨询