一种可以替代三菱QD75轴定位模块的表格化编辑方式!(内含程序)
三菱公司QD75轴定位模块的表格化编辑方式真的适合我们吗?
本文教你如何使用改写寄存器参数的方式实现
【用户可编程、可示教的多轴综合运动控制系统】
作者:陆冯
注意:【本文如有不当之处,请各位高手指正】
众所周知,日本三菱集团是一家“富可敌国”的企业,它为日本军队生产过其在第二次世界大战中的多数主战装备,如:零式战斗机、航空母舰、坦克等等。目前,三菱旗下拥有24家核心事业部,涵盖轨道交通、化工、工业自动化,以及航天火箭发射等各个领域。可以称为是:“百年沉浮中的三菱集团”。抛开家仇国恨不谈,我个人从一个看待“企业”的角度,非常欣赏它。
我作为一名电气工程师,在工作中,经常用到三菱电机公司生产的可编程控制器、伺服,以及触摸屏产品。这些工业自动化产品,被三菱电机公司自己称为:“FA自动化产品”,这些产品,我从FX1NPLC到三菱L系列PLC、从MRJ2到MRJ5系列伺服、从A系列到F系列变频器,我都接触了一遍,甚至包括他们的三菱机器人。
总的来讲,三菱电机公司的FA自动化产品线,整体架构清晰、价格便宜、软件高低搭配(并且支持各个软件平台之间的交互仿真),在中国市场可以说,也算是占了个半壁江山!
可是,当我这几天在搞一个四轴综合运动控制系统时,我对它Q系列PLC中QD75定位模块的表格化的编程引导方式,产生了更加深刻的思考,觉得表格化的方式有缺点,并不合适我们更加简便地搭建运动控制系统,所以我采用我自己的方式去进行了编程,抛弃了它的表格式编程引导。
当然,也正是因为这台设备使用我自己独有的编程方式,能正常运行,并且成功实现“用户可编程、可自由示教”功能,我才敢写这篇文章,出来献丑...........
我们这一次的设备采用的是三菱Q系列的PLC+QD75定位模块来实现四轴的定位控制,在这个表格中,我们可以迅速完成对各个位置点的定位数据编辑,并且可以灵活地配置各个定位数据的插补方式、M代码、停留时间,甚至非常人性化地设置了“块启动”这样的数据表格,可以重复调用定位数据,实现复杂的定位数据调用逻辑。
我3年前,第一次接触QD75P4N定位模块,看到这个QD75的定位表格,给我的感觉就是清晰明了,所有的定位数据,都在这个表格中,但是要是想修改定位数据,就必须打开软件,重新设置这个表格,在之前做过的很多设备现场中,我都是这么干的——重新写表格、下载——重新写表格、下载...........
无限循环...........
我当时就在想,能不能有一个一键示教指令,可以不使用GXworks2软件重新下载程序和数据,通过HMI的操作就能实现定位数据的更改或示教。 我去查阅了一下相关资料,三菱QD75手册中,有一条指令叫TEACH指令,就是示教指令。
它的使用非常复杂,我在网上好不容易找到一个老师讲解的TEACH指令讲解视频。它讲得非常详细,但是由于这个指令涉及的操作数实在太多,我很认真地听了4-6遍,搞明白了,也会用,但是我心里,总是在想着,应该有更加OK的方法,所以我一直在寻找。
这种想法在脑子里面已经呆了有几年的时间........
这一次,老天又给我一次摸到QD75定位模块的机会,机不可失,时不再来。所以我下定决心,一定要实现—— 【用户可编程、可示教的多轴综合运动控制系统 】
当然,一腔热血是办不了事情的,还得慢慢地、一页一页地去翻手册,终于在不间断投入27个小时的努力下,我找到了实现这样的功能的编程方式和编程架构!并且在设备上使用,最后取得成功,说实话,有点碰运气的成分……
那么接下来,我就来说说我的解决方案吧!
正文开始!
首先,我们在写入每一行的定位数据时,我们都要在QD75定位模块的轴1、轴2,或者3轴、4轴的定位数据表格中写入数据,如下图:
那么这个时候问题来了,我们所设置的表格,里面的每一个数据,一定是被Q系列PLC放在哪个存储器或者缓冲存储区里面去了。我们需要去找到它!它们被放在哪个位置!
我终于在翻阅QD75手册 时,发现在手册的最后,有一个附录,如下图:
这个附录成功地解开了我所有的疑惑:
1.从QD75模块的第2000到第7999缓冲存储区,是存放QD75定位模块轴1定位数据的缓冲存储区;
2.这些存储区,每一个所占用的数据长度为16位;
3.我们在表格中所填写的每一行定位数据,包括:第几号定位数据、运行模式、控制方式、插补对象轴、加减速时间、M代码、停留时间、圆弧地址、定位地址,都被保存在10个缓冲存储区当中;
例如:
我们QD75定位模块的轴1的1号定位数据,就被写在了G2000到G2009这10个缓冲存储区当中,其中G2004和G2005两个16位缓冲存储区共同组成的32位缓冲存储区,存放的是我们设置的“定位速度”;G2006和G2007两个16位缓冲存储区共同组成的32位缓冲存储区,存放的是我们的“定位地址”。
那么同理,经过查找发现:
QD75定位模块的轴2的1号定位数据,就被写在了G8000到G8009这10个缓冲存储区当中,其中G8004和G8005两个16位缓冲存储区共同组成的32位缓冲存储区,存放的是我们设置的“定位速度”;G8006和G8007两个16位缓冲存储区共同组成的32位缓冲存储区,存放的是我们的“定位地址”。
那么,当我们完成上述内容的发现,整个问题变得简单了!
自此,我们将——重新定义QD75定位数据的编辑方式!彻底抛弃由三菱电机公司规定的表格化定位数据编辑方式;彻底告别编辑定位数据表格,再去下载定位数据表格的无限循环;将从底层上实现轴定位运动的逻辑闭环,为【用户可编程、可示教的多轴综合运动控制系统】的实现,确立了先决条件。
我们先将程序分为两个部分,如下图:
首先,是我们的“示教 ”程序,如下图:
我们采用变址寄存器Z+32位数据寄存器D组合 的方式,实现对3个轴当前位置数据的记录,当我们置位M100辅助继电器,3个轴的数据被记录到不同的数据寄存器D中,并在T50时间继电器延时0.5秒后,也就是记录完成后,M100辅助继电器将被T50的常开触点复位,并把X、Y、Z轴对应的“数据记录”变址寄存器Z加2,实现每个轴的32位数据寄存器D地址向后偏移2个编号,保证我们的下一组数据在记录时,能够成功保存到下一组32位数据寄存器D当中。我在上图的程序中,把X、Y、Z三个轴的数据分别保存在D99-D198、D199-D298、D299-D398 这三个范围的数据寄存器D当中,其中每个轴占用100个16位数据寄存器,那么我这个程序就只能保存50条示教数据。
那么想要保存更多咋办?很简单,把示教数据保存范围增大就可以了,Q系列PLC里面数据寄存器多着呢,绝对够用!比如:把X、Y、Z三个轴的数据分别保存在D0-D999、D1000-D1999、D2000-D2999这三个范围的数据寄存器D当中,其中每个轴占用1000个16位数据寄存器,那么这样就可以保存500条示教数据。
但是还有件事情别忘了,记得把这些数据寄存器,就是你保存X、Y、Z三个轴示教数据所用到数据寄存器D,要在工程PLC参数设置中,改为“掉电保持型”,让它们具备锁存功能,否则设备一掉电,数据全没了,每次开机都要重新示教,这就太离谱了。
数据寄存器D在PLC参数中设置为“掉电保持型”,操作如下图:
接下来,我们要继续来写示教程序,有人这时候疑惑了,我们不是已经完成了3个轴的当前位置记录,还有什么需要补充的吗?其实,这时也是考验一个工程师的时候,我们的示教程序目前能记录,但是如果记录错了,想删除刚才记录的这个数据怎么办?
所以,我们还要再设计一个“回删”程序,满足用户修改示教数据的需求,如下图:
我们同样采用变址寄存器Z+32位数据寄存器D组合的方式,实现对3个轴的上一个位置数据的清除,当我们置位M101辅助继电器时,将用M101辅助继电器的上升沿先把3个轴对应的“数据记录”变址寄存器Z进行1次减2,实现每个轴的32位数据寄存器D地址向前偏移2个编号,回到上一个已经示教完成的数据寄存器D的地址,然后把“0”放进3个轴对应的地址当中,从而实现,对上一个已经示教完成的数据的清除,这样就可以重新示教新的、正确的定位数据了。
当然,我们可以更加大胆地想一下,我们用一个没有使用过的变址寄存器Z,比如说“Z10”,在触摸屏上设定“Z10”的值,来修改我们3个轴的示教数据寄存器D的地址,然后再配合我们的“修改功能”按钮——【是不是这样,我们就可以任意修改我们所有记录数据的值,想改几号数据,就改几号数据???】
上述方法我已经试验过,是可行的。因此,我们在PLC编程中,要胆大心细、勇于创新,这样才能写出“出其不意”的编程效果。
接下来,就是我们的“自动运行”程序了,如下图:
同样,我们采用变址寄存器Z+32位数据寄存器D组合的方式,实现对3个轴当前位置数据的读取,将我们在人工示教时3个轴的数据写入到我们QD75定位模块的每个轴的1号定位数据当中。
然后我们,将把每个轴的1号定位数据放进它们对应的轴启动编号寄存器中,并给予启动信号,这样我们的3个轴将运动到我们示教的第一组定位数据位置,到达我们示教的第1个点。那么当我们走完第1个点之后,我们如何继续往下走呢?
此时,我们将会把3个轴对应的“数据读出”变址寄存器Z进行1次加2,我们将“程序状态器”D70置为1,再次回到第1步,就可以了。
但是!!!请大家注意:我们程序一共可以示教50组定位数据,如果用户只示教了30组,我们不做任何程序上的判断,就直接这样一直循环下去,后面20组数据,3个轴的定位数据由于没有示教,都是“0”,相当于让3个轴回20次原点,合适吗?
所以,我们要进行程序上的判断,那么我们如何知道用户示教了多少个点呢?或者说如何判断,下一组即将执行的定位数据是没有经过用户示教的、是无效的呢??
程序如下图:
我们将经过“数据读出”变址寄存器Z偏移后的示教数据寄存器D里面的数据读出来,与“0”进行比较,如果3个轴数据都为“0”,那么就证明下一组即将执行的定位数据是无效的,我们直接将“程序状态器”D70置为100,让设备去复位就可以了,复位完成后等待下一次启动。但是如果我们的3个轴的定位数据有1个不为“0”,就证明下一组即将执行的定位数据是有效的,我们将“程序状态器”D70置为1,再次回到第1步,让设备运动到下一个点。
如此循环往复,我们的设备将按照我们的示教数据,不断地跑完每一个示教过的定位点,实现【用户可编程、可示教的多轴综合运动控制系统】的所有技术要求!!!
在本文最后,送给大家几段话:
1.编写PLC程序的目的 ,是为了让设备安全、可靠、准确、高效地运行起来,任何设备的PLC程序应当具备“安全性”、“正确性”、“可扩展性”、“可读性”和“可移植性”5个方面的特性。
2.在PLC技术日新月异的今天,我们要准确分析各大PLC厂商的编程软件中,不断更新的“编程引导方式”,这些新的引导方式,可能在某种程度上,降低了我们的编程复杂程度,但是我们始终要——透过现象看“本质”!存优祛劣!
3.我们这个专业,是一个“涉及面及其广泛”的专业,从硬件到软件,一个都不能落下,而且各大PLC厂商的技术更新速度很快,因此——我们要在战略认知上有“万变不离其宗”的底气,但是在战术认知上,还是要去明白“勤能补拙是良训”这个道理的,一定要多查百度、多看手册、多动手练习 。
本文代表陆冯个人观点及技术分享,侵删
今天《三菱公司QD75轴定位模块的表格化编辑方式真的适合我们吗?》小智就分享到这,大家可以收藏使用。
四轴、五轴加工中心编程有什么区别?
在编程方面,四轴加工中心的编程跟五轴加工中心的编程是有较大的区别的,四轴加工中心加工工件时,刀轴始终是朝着工件旋转轴心线的,编程跟三轴加工中心比较相似。五轴加工中心加工工件时,由于刀具和工件在相互位置加工过程中随时调整,例如加工螺旋桨一片时,为了得到比较好的表面质量,那就需要刀具和叶片表面夹角始终保持一致,也就是说刀轴方向不断改变,经常需要手工进行刀轴的插补,在加工这些复杂的空间曲面时要考虑的参数比四轴加工中心编程时多得多,而且对数控系统有较高的要求,如果使用一般的数控系统还会增加编程难度,影响机床精度,大多数五轴加工中心使用的是三菱或者发那科的数控系统,而四轴加工中心则没有这么高的要求。
相关问答
三菱PLC如何控制四轴?
三菱PLC控制伺服或步进电机的顺序控制思路硬件配置:三菱FX3Uplc,伺服或步进电机,指示灯,按钮等其他配件。程序说明:D1000、D1001一组,D1002、D10...三菱PL...
三菱四轴驱动器接线方法?
三菱四轴驱动器的接线方法需要根据具体的驱动器型号和应用场景来确定。一般来说,三菱四轴驱动器的接线包括以下几个步骤:1.确认驱动器型号和规格:首先需要确...
加工中心四轴不停旋转怎么编程?
编程加工中心四轴不停旋转的步骤如下:1.首先,确保机床和控制系统已经正确配置,能够控制四轴的旋转;2.在编程软件中创建一个新的程序,并进行初始化设置,例...
三菱四轴plc选型?
在进行三菱四轴PLC选型时,需要考虑的因素很多,例如所控制设备的种类、运行速度、控制精度和所需的输入输出点数等。三菱电机目前有许多支持四轴控制的PLC可供...
三菱系统三轴改四轴怎么改?
修改三菱系统的三轴改四轴的方法有以下几种:1.升级轴组件:需要购买四轴电机驱动轴,以及配套的控制器,并根据应用要求选择相应的轴组件。2.修改轴结构:可...
三菱系统四轴怎么固定来回旋转?
您好,要让三菱系统四轴来回旋转,需要使用程序中的旋转命令。在程序中设置旋转命令时,需要指定旋转轴、旋转方向、旋转速度等参数。然后,将机械臂固定在需要旋...
三菱系统四轴绝对位置设置?
以下是三菱系统四轴绝对位置设置需要进行步骤:1.进入参数菜单:首先,需要进入CNC参数菜单,通常可以通过按下“SYSTEM”、“PARAMETER”或“SETTING”按键进...
三菱四轴旋转方向设置?
可以设置。因为三菱四轴可以根据需要进行设置旋转方向,常见的有正方向旋转和反方向旋转两种设置,具体如何设置可以参考设备说明书或者生产厂家提供的技术支持...
三菱m70系统四轴参数设置?
1.三菱M70系统四轴参数设置是必要的。2.因为在机械加工领域中,四轴参数设置可以影响到机床的运动轨迹和加工精度。通过合理设置四轴参数,可以使机床在加工过...
三菱系统四轴内部互锁怎么处理?
答:三菱系统四轴内部互锁的处理方法是:先尝试把刀臂手揺到位。然后关机再开机看是否正常。按住极限释放建往正确方向摇手轮。再有就是一般是刀库问题:正常...