




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
我怕前辈看的不方便,新发一个帖子:多谢前辈。还有1)在模拟阶段,仿真后怎么看局部变量的具体值啊?如看a的值该怎么办啊?2)trio是如何完成闭环控制的,用不用自己采集反馈信号搭建闭环?还是只设定PID参数即可自动完成闭环控制。它的控制应该是双闭环吧。能不能介绍一下都有哪几种反馈信号的方式呢?我的qq:52726231;msn:希望得到各位前辈的指导。多谢啦! 天津 还有问题,run指令的具体用法是怎么样的啊?我感觉它好像是放到主程序中的东西,但为什么还要有程序号,那是干什么的啊?直接调用程序不行么?加程序号的作用是什么啊? 天津 MC224最多可以同时执行14个任务,是同时执行14个工程?应该是程序吧,我刚才自己试着在模拟器上建立程序,到了14个就不行了。是不是当每个程序被执行是就叫做任务啊?但任务号还是不能理解啊!希望前辈执教。 Trio技术支持 1) 在模拟阶段,仿真后怎么看局部变量的具体值啊?如看a的值该怎么办啊?2) 答:在程序编辑的文本框中的工具条上有一个“眼镜”图标,首先选中你的临时局部变量,然后点击这个“眼镜”,你就可以监控了。2)trio是如何完成闭环控制的,用不用自己采集反馈信号搭建闭环?还是只设定PID参数即可自动完成闭环控制。答:TRIO控制器本身已经为每个轴都设置了伺服闭环控制功能,通过购买TRIO控制器的伺服激活代码即可使用,用户只需根据要求连线并调整对应轴的PID等参数即可实现闭环控制,详细调节原理请参见手册第6章6-12页的伺服原理图。当然,你也可以根据闭环控制原理,自己编写PID算法来实现,TRIO提供的TRIOBasic支持复杂数学运算。3)能不能介绍一下都有哪几种反馈信号的方式呢?答:TRIO接收的反馈信号大致分为三种,一种为传统意义的增量编码器形式,主要是差分形式的AB相脉冲的接收。另一种是通讯的方式,这个就比较复杂,TRIO可以接收的有Endat、SSI的一对一的绝对值编码器通讯反馈,以及SERCOS、CanOpen协议的位置反馈信号等。最后一种是接收由模拟量作为位置反馈的形式,如直接接收位移传感器输出的0到10v信号。4)run指令的具体用法是怎么样的啊?我感觉它好像是放到主程序中的东西,但为什么还要有程序号,那是干什么的啊?直接调用程序不行么?加程序号的作用是什么啊?答:run指令带有两个参数,第一个参数代表需要被启动运行的程序名称,第2个参数是可选参数,代表该程序启动后所要运行的任务号。请参考原贴中关于Trio程序与任务关系的说明,简单讲程序是静态的,运行起来的程序程之为任务,任务是动态的。静态的程序最多可以存放14个,每个程序被运行起来后必须占据一个任务,TRIO控制器内可以最多运行的任务数对于不同的产品是不一样的,MC302x最少只能运行3个,MC224最多可以运行14个,其他的控制器可以运行7个,怎么来区分这些任务呢,就需要给这些任务编号,从1开始到3或14或7,run指令的第2个参数就是代表了这个任务号,如果run指令不带第2个参数,则系统会自动将该程序运行在当前空闲任务号最大处。如果你指定的任务号已经被别的程序占据,系统会报错。至于什么时候用run指令,这个完全是用户自己根据需要自行决定的事情,没有特殊要求。而且TRIO控制器内没有为用户定义主程序,所谓主程序是用户根据需要自己创建实现的。Trio控制器是个多任务处理系统,希望你能用多任务的概念去理解它。天津 多谢前辈,真么麻烦你真不好意思啊! 自控小生 请教TRIO技术支持:在循环程序中执行X,Y轴的FORWARDANDREVERSE有执行先后的问题,如何通过调用任务完成解决手动运行问题? 自控小生 1.测试了一下,可以用REV_JOG和FWD_JOG解决,但程序中如何解决呢,因为自动的状态手动输入不能起作用,硬件接线能够解决,但软件如何解决这个问题。2.另外两轴同步,用手动操作REV_JOG和FWD_JOG如何解决? 自控小生 1. TRIO运动控制器,如何实现运动暂停功能,就是在按下按钮后暂停运动,松开后继续运行?2. 答:TRIO控制器在每个轴上都有FEED_hold功能,轴参数fh_in定义暂停输入信号的通道号,信号为常闭结点,当该通道信号为0时,对应轴会自动暂停当前的运动,当信号恢复为1时,继续没有完成的运动3. FEED_hold只对速度控制有用,脉冲定位控制如何解决?急! Trio技术支持 To自控小生:请仔细理解下面的说明:iTrio控制器内核程序为每个轴都分配了接收运动指令的缓存,在早期版本中(1.65之前的版本),每个轴的运动缓存为两个,即在轴参数列表中所能看到的mtype和ntype,同时为每个用户所执行的任务也分配了一个接收由该任务触发执行的运动缓存。应用程序执行一个运动指令时,首先检测本任务下的运动缓存是否为空,如果为空则将该运动指令放入本任务的运动缓存中,如果不为空,则应用程序会等待直到该缓存为空为止,此时的应用程序处于等待悬挂状态,不会往下执行。那么应用程序中的运动缓存如何清空呢?该步工作是由Trio控制器内核来完成的,控制器内核实时扫描每个正在运行任务的运动缓存,当运动缓存有指令时,内核程序会将其移到对应轴的最后一个运动缓存内,如果该对应轴运动缓存已满,则内核程序对该应用程序不做处理。每个轴的运动缓存实际上就是一个先入先出的队列(计算机软件工程称之为FIFO),排在最前面的也就代表了正在执行的指令,我们称该缓存为mtype,紧接着的一个缓存为ntype,有些Trio代理会告诉你,当停止轴运动时,最好要cancel三次,实际上就是取消mtype、ntype以及对于应用程序运动缓存中的运动指令。目前最新的系统软件版本支持每个轴有16个运动指令的缓存,所以只cancel三次是不够的!了解了运动指令执行的过程后,那么我们来分析一下你写的这个简单例子:move(100)axis(0)waitidlevr(0)=1你的目的是让轴0移动100后,再将Vr(0)=1,这种程序有以下几个问题(隐患)。move(100)axis(0)没有问题,但接下来的waitidle会有问题:1.如果该程序在move(100)axis(0)前指定的base轴不是0轴时,则WaitIdle就等的不是0轴的Idle了,而是另外由base指令指定的轴。2.如前面分析,move(100)axis(0)指令首先由应用程序放入本任务的运动缓存内,然后应用程序会继续下面的语句,由于系统是多任务方式,控制器系统内核也许还没有来得及将该指令放到对应轴的mtype中去时,应用程序就去查询该轴的mtype是不是idle,这样的结果就是轴0还未开始执行运动,vr(0)就已经等于1了。这里Trio给大家提供了一种保险而且非常好用的指令waitloaded,该指令的意思是让程序等待直到应用程序执行的指令被执行后,再向下执行,所以正确的做法如下:base(0)指定以下的运动指令及对应参数都是针对0轴move(100)运动100个单位waitloaded等待move(100)指令开始执行(本移到mtype中去时)waitidle等待mtype为Idlevr(0)=1设置vr(0)等于1注意:waitloaded非常常用,用该条指令可以触发特定运动过程开始时的其他动作,如开关操作等。/i Trio技术支持 然后再来看你的问题:“在循环程序中执行X,Y轴的FORWARDANDREVERSE有执行先后的问题,如何通过调用任务完成解决手动运行问题?”Forward和Reverse都是运动指令,用户任务调用这些指令bi一次/i/b后,它们既被内核系统存储在运动缓存内,如果当前运动缓存没有其他指令,则系统对应轴开始执行Forward或Reverse指令,只有当用户用Cancel指令取消该指令后,运动才停止。ib对于TRIO控制器的编程,一定要用多任务的思想去理解和设计程序,所有的运动指令不是由用户程序去执行,而是由后台内核去执行的,用户程序只是触发和监控而已。/b/i Trio技术支持 “1.测试了一下,可以用REV_JOG和FWD_JOG解决,但程序中如何解决呢,因为自动的状态手动输入不能起作用,硬件接线能够解决,但软件如何解决这个问题。”答:这个问题有两种方法,一是如果你的控制器不是Euro205x并且没有连接扩展IO模块的情况下,那么你可以将REV_JOG和FWD_JOG定义到16到31的输入点上,然后在软件程序中通过OP指令对这两个点操作即可实现。第二种方法是用forward和reverse自己编程实现,给你个简单例子:fd_in=0定义forward命令输入点re_in=1定义reverse命令输入点whiletrueifin(fd_in)=1andfd_flag=0thenifmtypeidlethenforwardfd_flag=1endifendififin(fd_in)=0thencancelwaitidleendififin(re_in)=1andre_flag=0thenifmtypeidlethenreversere_flag=1endifendififin(re_in)=0thencancelwaitidleendifwend2.另外两轴同步,用手动操作REV_JOG和FWD_JOG如何解决?答:两轴同步指令用connect指令就可以实现,在运动开始之前,用connect设置好两轴之间的同步速度关系,然后只用给主轴发命令,从轴会自动与主轴同步执行。4. FEED_hold只对速度控制有用,脉冲定位控制如何解决?急!5. 答:理解有误,不论你才有什么方式控制,feed_hold功能都是一样的,试验一下你就会明白。天津 2)DAC这个参数的作用是什么啊?ADD_DAC我也不理解手册说的是什么意思,希望前辈帮忙指点一下.多谢啦! 引用 | 回复 自控小生 谢谢前辈的耐心指教!请教:定义FHOLD_IN=3FHSPEED=0在MOVEABS(1000)AXIS(2)状态下VPSPEED保持不变。然后我在FHOLD_IN=3后加AXIS(2)编译报错,如何解决? Trio技术支持 DAC这个参数的作用是什么啊?答:DAC是指在开环情况下,直接将对应轴的电压进行输出的指令,比如MC206,其DA转换为16位精度,那么在Servo=0的情况下,DAC=32767就是将对应的模拟量端口输出10V电压,DAC=-32768对应输出-10V。如果你定义的轴为脉冲输出控制方式,则可以在不影响轴控制功能的情况下,直接用DAC参数输出电压去控制别的设备。如果你用的是伺服方式,也可以用DAC输出电压产生一个阶越给定,然后通过MotionPerfect软件的示波器功能去观察伺服驱动的速度响应特性,来调节伺服速度环PID参数。ADD_DAC主要用在双反馈系统中,用来将根据两个回路的反馈偏差得到的输出信号进行叠加的指令。手册帮助有一个举例,请仔细理解。FHOLD_IN=3后加AXIS(2)编译报错,如何解决?答:语法错误,正确写法:FHOLD_INAXIS(2)=3 TRIO技术支持. 2)DAC这个参数的作用是什么啊?ADD_DAC我也不理解手册说的是什么意思,希望前辈帮忙指点一下.多谢啦!DAC是开环模式速度控制。(SERVO=0时);ADD_DAC是在双闭环(电机编码器+负载编码器)模式下,发出电压叠加信号的控制方式。一般用不上。然后我在FHOLD_IN=3后加AXIS(2)编译报错,如何解决?FHOLD_INAXIS(2)=3是正确的写法。运动指令,轴号才加到最后。例如:MOVE(100)AXIS(2) 自控小生 请教:采用叠加虚拟轴的方法实现2轴同步,在设置轴参数时,是不是只要设定虚拟轴的参数。比如,FWD_IN,FHOLD_IN的值等,因为正,反向限位各有一个。 天津 谢谢前辈!问题:1)模拟器中的terminal模拟的是串口么?那弹出的I/O小窗口有事什么呢?我把一些窗口单击成绿色,为什么用in指令读不到值啊?那不是数字输入么?2)op控制的也是数字量吧?那想输出模拟量智能用print指令么?3)vr,table中的数据为浮点数吧,我要想保存字符串,如absd.应该怎么办啊?4)hex指令看的也不是很明白,我写了,PRINT#0,hex(95),是应该输出95的ascII码么?但我没有看到显示啊?5)linput指令也没有看清楚怎么用.麻烦前辈了.真的很不好意思啊! Trio技术支持 “采用叠加虚拟轴的方法实现2轴同步,在设置轴参数时,是不是只要设定虚拟轴的参数。比如,FWD_IN,FHOLD_IN的值等,因为正,反向限位各有一个。”答:是的,这样做没有问题,你可以让虚拟轴做为主轴,然后只对虚拟轴做操作即可。 “模拟器中的terminal模拟的是串口么?那弹出的I/O小窗口有事什么呢?我把一些窗口单击成绿色,为什么用in指令读不到值啊?那不是数字输入么?”答:Trio的仿真系统软件目前功能有限,建议购买控制器后直接使用。Termial指的是终端调试台,共有四个调试台,分为0、5、6、7,其中0号调试台可以进行命令行操作,程序中的各种命令均可以在此执行,5、6、7调试台只能做为显示终端,在程序中用print指令可以向这些调试台中输出信息。 “op控制的也是数字量吧?那想输出模拟量智能用print指令么?”答:OP命令是指将对应的数字输出端口进行ON/OFF操作的指令,对于模拟量输出用DAC命令输出,请仔细参看前面的回帖说明。Print指令是用来进行数据传输的输出指令,如print#5,hello的意思是向5号终端台上输出“hello”字符。另外,print指令还常用在串口通信上的数据输出,如print#1,VR(0)指的是将VR(0)的内容按照ASCII的形式通过串口1输出出去。请仔细阅读书册,里面有相关的命令举例。 “vr,table中的数据为浮点数吧,我要想保存字符串,如absd.应该怎么办啊?”答:VR和Table的数据格式说明在本论坛的另外一个关于TRIO问题的回帖中有比较详细的说明,请查找。关于字符串的问题,目前需要你自己用Basic程序自己判断执行,比如存储“abcd”从vr(0)到vr(3)中,那么vr(0)=$61,VR(1)=$62,VR(2)=$63,VR(3)=$64.“$”标志加到数字前,表示该数字为16进制数。 “hex指令看的也不是很明白,我写了,PRINT#0,hex(95),是应该输出95的ascII码么?但我没有看到显示啊?”答:仿真软件目前对此不支持,以下是在控制器中试验的结果PRINT#0,hex(95)5F “Hex”的意思是将其内部变量用16进制格式进行显示,只用在print指令中,做为显示用,其他情况下不可使用。 “linput指令也没有看清楚怎么用.”答:linput指令用来从一个端口处接收数据串使用,其意思是当有数据串从某个端口输入时,用linput指令进行接收时,只有当遇到“CR”回车时,才结束一次输入,并将输入的结果存放在其后参数指定的VR数据内。linput指令使用起来,限制条件过多,一般用GET指令来进行接收操作。天津 多谢前辈! 天津 为什么这段程序在模拟器中运行,轴(0)没有动作啊?BASE(0)SPEED=100ACCEL=10DECEL=10UNITS=10MOVE(100)WAITIDLE自控小生 请教trio技术支持:在使用MOVEABS(X,Y)指令时,如何对轴进行定义?比如X和Y如何对应各自的轴号? TRIO技术支持. TRIO技术支持. BASE(0)DEFPOS(0)SPEED=1ACCEL=10DECEL=10UNITS=4000loop:MOVE(1)MOVE(-1)GOTOloop以上程序就可以你的单位UNITS=10,而速度=100不大合理.单位一般是编码器反馈的四倍频.例如1000脉冲/转,单位设为UNITS=4000,此时速度SPEED=1,表示1转/秒,加速度ACCEL=10转/秒2.加速时间Ta=SPEED/ACCEL=1/10=0.1秒.减速时间Td也是0.1秒.总距离=0.5*ACCEL*Ta2+SPEED*T+0.5*ACCEL*Td2=1转T=1-10*0.12=0.9秒.T是匀速区的时间. TRIO技术支持. 在使用MOVEABS(X,Y)指令时,如何对轴进行定义?比如X和Y如何对应各自的轴号?例如BASE(7,3)MOVEABS(X,Y)就是把轴7和轴3一起做绝对运动(线性差补).合成速度向量的速度加速度等,按轴7的单位设定来算.而轴7和轴3的分速度,就是合成速度向量的分量. TRIO技术支持. 天津 多谢前辈指导.我换了一台电脑就能运行了,感觉挺奇怪的.但是move(100)我没有写waitidle,也能运到100个unit,感觉挺奇怪的.move(100)为最后一行.同时我还想问一个问题,用ATYPE可以定义轴的类型,除了虚拟轴.伺服轴,还有别的轴么?每个轴的含义都是什么啊?我把虚拟轴定义为伺服轴,在,模拟器下也可以使用啊.多谢前辈! TRIO技术支持. waitidle的目的是保证当前的指令执行完再做下面的事情不加也问题不大是脉冲输出方式,是编码器输入等等你进步不少了,逐渐可独立做项目了,呵呵 自控小生 谢谢TRIO技术支持:请教一个问题:对触摸屏中Bi变量的疑问:我的TRIO206加了2个16I/O的扩展,在触摸屏中Bi变量能够超出这个范围吗?如果不能Bi变量在触摸屏中的意义不是不大吗?如果用VR()变量做开关的点动如何做? TRIO技术支持. I/O扩展可以用Bi表示.包括没用到的,例如B200=IN(200)/OP(200).我们有虚拟I/O功能. 天津 多谢前辈的夸奖啦!我还差的远呢,我是大四刚毕业的学生,以前只有一些理论上的知识,猛的接触实际问题挺多的.真的很感谢前辈啊,对我的帮助太大了.1) 我查了一下,好像trio可以将所有的轴定义为0-12,共十三种,其中将轴定义为编码器的作用是什么啊?2) 2)我要做的课题是利用多轴控制完成液压系统的调平功能,但我在仿真是遇到了好多问题:无论采用addax还是每个轴各自动作,它们的速度都不是很同步,不知道实际的情况会怎么样,液压系统的精度要求在五个微米左右.我不知道能不能达到.3) 3)我感到最薄弱的还是扩展卡等外设和MC224之间的通讯问题,就是从哪个口写入数据,装上扩展模块,它内部的地址是自动统一编码么?4) 麻烦前辈了! 天津 补充:wdog指令是怎么回事啊?也不是很明白 天津 1) connect指令的作用是什么啊?手册上的话太含糊了.我写了这么两句话:2) CONNECT(2,0)AXIS(1)3) MOVE(50)AXIS(0)4) 前面已有多各轴的定义5) 运行后应该能看到什么结果呢?我这里只是axis(2)的mtype显示了connect,但是并不随轴0动作啊.6) 正确的用法应该是什么样啊?7) 2)datum原点搜索的目的是什么啊?8) 多谢前辈指点!天津 1) connect指令的作用是什么啊?手册上的话太含糊了.我写了这么两句话:2) CONNECT(2,0)AXIS(1)3) MOVE(50)AXIS(0)4) 前面已有多各轴的定义5) 运行后应该能看到什么结果呢?我这里只是axis(2)的mtype显示了connect,但是并不随轴0动作啊.6) 正确的用法应该是什么样啊?7) 2)datum原点搜索的目的是什么啊?8) 多谢前辈指点!天津 我试了前辈以前的一段程序:MOVELINK(4,3,0,0,1,4)AXIS(0),运转正常,但connect就是不行,奇怪啊!天津 应用regist指令时,什么叫inclusivewindowing和exclusivewindowing啊?怎么在程序中,定义或识别这两种情况呢?什么叫色标捕捉啊?什么叫飞剪啊?多谢前辈指导! Trio技术支持 1) 我查了一下,好像trio可以将所有的轴定义为0-12,共十三种,其中将轴定义为编码器的作用是什么啊?2) 答:Trio对于轴的定义主要是用来区分当前轴的外围接口形式,比如常规伺服轴指的是发送模拟量控制伺服转速,接收编码器信号作为位置反馈实现闭环控制的轴。而对于实际系统中,即使是伺服方式控制,由于控制或反馈信号的方式都会不同,所以在接口形式及内部控制算法上都会有所区别,因此通过对每个轴Atype的设定,从而实现该轴对于的控制功能。将一个轴定义为编码器反馈轴指的是该轴只有编码器接收功能,而没有输出控制功能。3) 2)我要做的课题是利用多轴控制完成液压系统的调平功能,但我在仿真是遇到了好多问题:无论采用addax还是每个轴各自动作,它们的速度都不是很同步,不知道实际的情况会怎么样,液压系统的精度要求在五个微米左右.我不知道能不能达到.4) 答:Trio仿真系统在对于高性能运动指令的仿真上还不太完善,建议购买Trio实际控制器来试验。任何一个系统的控制精度,首先要考虑其反馈环节的精度,是否满足。Trio控制器对于反馈环节接收精度为:编码器接收反馈最高6MHz、模拟量反馈最高16位精度。5) 1)connect指令的作用是什么啊?手册上的话太含糊了6) 答:connect(radio,axis)指令指的是让当前执行connect指令的轴按照radio参数定义的速度比率关系与axis轴实现联动关系。7) 2)datum原点搜索的目的是什么啊?8) 答:如果你的系统需要找寻机械或系统原点,那么这个指令就是为你实现这个功能而设计的。当然,你也可以自己用TrioBasic自己编程实现。9) 我试了前辈以前的一段程序:MOVELINK(4,3,0,0,1,4)AXIS(0),运转正常,但connect就是不行,奇怪啊!10) 答:再次强调一次,Trio仿真系统目前不太完善,建议用实际的控制器进行运动指令的试验。11) 应用regist指令时,什么叫inclusivewindowing和exclusivewindowing啊?怎么在程序中,定义或识别这两种情况呢?12) 什么叫色标捕捉啊?什么叫飞剪啊?13) 答:inclusivewindowing和exclusivewindowing指的是regist指令的窗口功能,简单说,就是当轴的位置处于某一区间内或外时,regist功能才启动的功能。inclusivewindow指的是区间内,exclusive指的是区间外。色标捕捉指的是对一个高速运行装置上某个物品位置的捕捉记忆功能,该功能多用在印刷、贴标、包装等设备上。飞剪指的主要是不停机的情况下,动态剪裁的过程,主要用作剪切、包装等设备上的功能。建议上Google上搜索“飞剪”,找相关资料了解。14) 天津 万分感谢前辈啦! 天津 我的仿真软件有不好用了,轴的动作全都作不出来,我已经试着重新装了几遍,可还是没有用.请问前辈,有什么好的解决办法么?郁闷啊! 天津 我感觉MOVELINK指令手册中写的有问题,首先我想问问是不是基本轴驱动连接轴,在全加速阶段要求连接轴的运动距离是基本轴的二倍,但是连接轴是从相对速度为0开始加速的,在相等时间中的运动距离应该小于基本轴才对,不可能运动的比基本轴长啊!MOVELINK(0.4,0.8,0,0,1,)AXIS(0)是说轴1运动0.8,轴0运动0.4吧,且轴0为连接轴,轴一为基本轴.还有就是仿真的问题,真的太痛苦了,我昨天也去下了另外的版本,在官方网站,就是23M多大的只能装在系统盘的软件,但也不行,就差重作系统了. 自控小生 请教trio技术支持:我的传动是齿轮和齿条,在计算UNITS时有3.14的运算,比如齿轮旋转一圈为3.14*65,伺服驱动电子齿轮比为1000,那么UNITS计算不是整数,对加工的精度不是有影响吗,如何解决? Trio技术支持 关于MOVELINK,请参考:/tech/detail.asp?id=382255关于仿真系统软件,这里希望你能够理解,Trio会不断的完善,但目前仿真软件对于“运动控制”指令的仿真确实有问题,所以请购买Trio控制器后再试验。To自控小生:Units参数最好不要设置为小数,因为反馈或发送的脉冲计数不会有小数,如果设置为小数后,系统对脉冲的处理只能将其进行四舍五入。所以在加工精度要求很高的情况下,请用untis=1做为单位,也就是直接用脉冲计数做单位,这样会有效的避免累积误差。 天津 多谢前辈指导!嗯。我和实际得mc224连接了,但是联动指令,如addax和movelink无法实现,只能实现各自轴单独得运转。Trio技术支持 Addax和Movelink指令指的是给从动轴设定好与主轴的连接关系,当从动轴设定好了之后,那么从动轴就会在那里等着主轴运动,此时想看到效果,应该继续在给主轴运动指令,让主轴运转起来,从动轴才会跟着动作。 天津 谢前辈!嗯,仿真得时候可以,但是连接到实际的控制器就不行了,正在摸索中。那connect指令也是这样么?我原来得软件就是运行connec指令挂得,郁闷啊!还有atype显示abs_ssi是什么意思啊?能不能详细说说呢? Trio技术支持 atype显示abs_ssi指的是当前轴为带ssi绝对值编码器反馈的伺服控制轴。对于任何一种伺服类型轴而言,要想让其工作,必须满足下面的条件,一是连接好驱动器电机及反馈装置,二,设置servo=1和Wdog=on,三是给该轴输出运动指令。如果你什么都没有连接,即使设置了servo=1和wdog=on,系统也会报错,拒绝执行。如果只是简单的调试程序,而不是驱动实际的电机,那么完全可以用虚拟轴来试验,MC224总共有24个轴的控制能力,你可以用任意一个没有用到的轴做为虚拟轴操作。比如现在0到7轴已经连接有控制用的各类子板,那么从8轴开始就可以用作虚拟轴进行操作了。 天津 en,多谢前辈,但要想让那几个ssi轴产生联动应该怎么办呢?好像设置虚拟轴不能带动ssi轴啊!还有就是wdog能不能详细讲一讲啊,我老是不能理解这个参数。多谢前辈! 自控小生 请教trio技术支持:在需要完成0.1mm为单位,轴的Units参数不是要在1mm的基础上除以10吗? 请教前辈:1)我运行move(500)move(500)cancel(1)其中得cancel(1)并不起作用,无论加上waitidle或loaded均无用但单步执行就可以。我是用得实际得控制器,不是仿真。2)waitloaded和waitidle感觉并无区别啊!3)还有是知识问题,单独一个轴只能直线运行吧,想完成螺旋等动作是不是要多个轴合成啊!是不是摆动也是合成得啊谢谢前辈! Trio技术支持 但要想让那几个ssi轴产生联动应该怎么办呢?好像设置虚拟轴不能带动ssi轴啊!还有就是wdog能不能详细讲一讲啊,我老是不能理解这个参数。答:Trio不论任何形式的轴,区别仅在于外在接口形式的不同,内部算法及处理过程都是一样的,用虚拟轴做为主轴,ssi伺服轴做为从动轴是没有任何问题的。首先在ssi轴上执行connect指令与虚拟主轴建立连接关系,然后在虚拟轴上执行其他运动指令,ssi轴会与虚拟轴联动。任何一种伺服驱动器上都会有一个使能输入端口,默认情况下,当该使能信号置位后,伺服电机会抱死等待运转,相应的Trio每一款控制器上都会提供一个继电器输出端子,可以与连接的所有伺服驱动器的使能端相连接,Wdog=1的意思就是将该继电器闭合,从而使连接的伺服使能,wdog参数可以由用户程序自己控制的同时,控制器内核程序也会在判断当前轴出现故障时,自动将wdog=0,使伺服断开使能,从而起到保护作用。“在需要完成0.1mm为单位,轴的Units参数不是要在1mm的基础上除以10吗”答:很简单,如果需要0.1mm做为单位,计算一下当控制对象行程走了0.1mm的时候,运动控制器发送或者接收反馈了多少个脉冲,然后如果是脉冲发送方式,用这个数乘以16得到的值赋给Units即可;如果是伺服控制方式,将计算反馈得到的脉冲值乘以4(4倍频的原因)得到的值赋给Units就可以了。“请教前辈:1)我运行move(500)move(500)cancel(1)其中得cancel(1)并不起作用,无论加上waitidle或loaded均无用但单步执行就可以。”答:首先你要明确几个概念,一是Trio运动指令执行的过程原理,二是Cancel的具体意义。在Trio运动控制器内,用户编写的程序称之为用户程序,icolor=#FF0000用户程序并不能执行运动过程,用户程序只是去调用运动指令并且可以监控运动过程,真正的运动过程由系统内核去执行/color/i。相应的,内核会为每个轴都分配一个接收运动指令的FIFO(先入先出缓存区),用户程序调用运动指令后,这些运动指令会自动进入对应轴的运动指令缓存区,排在第一个的缓存区的运动指令也就是当前正在执行的运动,这个缓存地址名称我们称之为mtype,那么排在下面一个的就是ntype,cancel指令如果没有带参数的意思是将当前正在运行的运动指令取消,也就是将mtype内的运动指令取消,cancel(1)的意思是将ntype内的运动指令取消。waitidle的意思是指让当前用户程序等待,直到mtype内的状态为idle为止,也就是说让自己编写的程序等到当前运行的指令结束为止。waitloaded指的是用户程序在调用了一条运动指令后,让当前用户程序等待直到该运动指令被执行开始为止。 “waitloaded和waitidle感觉并无区别啊!”答:如果你能够真正理解上面的说明,那么你也就明白了它们之间的区别“单独一个轴只能直线运行吧,想完成螺旋等动作是不是要多个轴合成啊!是不是摆动也是合成得啊”答:这些都是数学概念,空间任意两个点构成一条直线,如果这条直线与对应的空间任意坐标轴平行,则用一个轴就可以实现这个直线运动,如果不平行,那么就需要多轴连动了!用TRIO控制器来实现这些都很简单,move或moveabs指令就可以实现。至于螺旋线,看看MHELICAL指令吧,所谓的摆动,只要你能用数学的方式将其表达出来,那么CAMBOX指令就会为你实现。请教TRIO技术支持:1.脉冲方式控制,P,I,DGAIN参数是不是不用设置。2.DEFPOS(0)指令在虚拟轴使用时,好像要同时将被虚拟的连接轴同时DEFPOS(0)。1.脉冲方式控制,P,I,DGAIN参数是不是不用设置。答:脉冲方式控制实际上对于控制器来说就是开环控制,所以对于控制器来讲就没有什么PID调节了,但对于伺服驱动器,因为位置环、速度环都由其完成,所以你还是需要在伺服驱动器内调节这两个环路的PID参数。“2.DEFPOS(0)指令在虚拟轴使用时,好像要同时将被虚拟的连接轴同时DEFPOS(0)。”答:Defpos指令的意思是将你当前的基准轴的mpos置一个值,它只能对当前基准轴起作用。当然defpos指令也可以带多个参数,同时给由base定义的轴序列中的多个轴的mpos赋值。天津 前辈好啊,有几天没过来了。请教前辈几个问题:1)mc224最多每个project可以有14个programe,每当运行一个program时,面板中它得后面会显示14,运行两个programme时为14和13,请问一下这个数字得含义是什么啊?那我在programesetupmode中定义得数字又是什么啊?proc指令后面得数字是什么啊?还有就是run指令后面得数字。这些数字只见有什么关系么?我一直弄不懂。3) 还有,用programesetupmode设为1,就是上电时要运行得programe么?是只能设定一个么?我从1设定到了14就是上电后依次运行么?4) 3)basic_error指令看不太懂,它是返回一个布尔量么?还是一个数?为什么不能写道VR中啊?5) 4)我想采用闭环控制,atpye只能为2吗?只有那时候pid和vff,6) ov才有效吗?7) 麻烦前辈拉!多谢前辈!天津 5)能不能详细的解释一下FHOLD_IN和FHSPEED指令的含义和用法么?它们和闭环控制之间有什么关系么?我个人理解trio中的闭环控制就是一个双闭环控制,和这两个参数又有什么关系啊?6)axis(2)=180*2这句话的含义是什么啊?7)在FWD_IN指令中说的正向限位输入,含义是什么啊?8)creep指令的作用是什么啊?9)FAST_JOG,什么是快速点动啊?10)什么
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广告策划师资格认定考试试卷及答案解析
- 2025年电子音响工程师技术水平测验试卷及答案解析
- 2025年宠物行为学导盲犬面试题库
- 课件与人工智能结合案例
- 课件《牙齿的秘密》
- 2025年慈善募捐专员笔试模拟题
- 2025年心理矫治岗位笔试模拟试卷
- 2025年AR技术中级工程师模拟题集锦
- 2025年乡村振兴专干招聘考试重点题库解析
- 2025年社保待遇核算竞聘面试模拟题
- 肺结核痰菌阴转评估体系构建
- 中国国家地理在线课件
- 体检院内感染管理制度
- 七年级道德与法治第九课增强安全意识
- 2024山东事业编考试真题(附答案)
- CJ/T 486-2015土壤固化外加剂
- 设备日常维护保养记录表
- 验房问题协议书
- 海关退运协议书
- 电梯、自动扶梯和自动人行道随行文件编制说明
- 学校捐款协议书范本
评论
0/150
提交评论