ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

昆仑通态触摸屏+三菱FX3U:低成本三轴平台示教器替代方案

昆仑通态触摸屏+三菱FX3U:低成本三轴平台示教器替代方案 做三轴简易机器人或三轴平台最尴尬的地方就是示教器成本。正经工业机器人示教器少则几千多则几万对小型集成项目来说比本体还贵。所以我一直觉得用昆仑通态触摸屏配合三菱FX3U通过脚本把示教逻辑做进去是很实用的“平替”方案。这套组合适合搞搬运堆垛、点胶、简易焊接、三轴桁架机械手这类场景也特别适合预算敏感的小型自动化设备。下面把我在实际项目中跑通的方案完整拆开讲从通信组态到PLC程序再到昆仑通态脚本怎么组织最后附上我调试3轴联动时踩过的坑。1. 为什么我敢用“昆仑通态FX3U”顶替专用示教器1.1 这套组合解决的四个实际问题先泼一盆冷水昆仑通态FX3U做不出发那科那种真正的机器人示教器它不具备多轴空间插补和复杂姿态规划的能力。但对于“三轴联动点对点运动”和“简单直线轨迹”这类需求它完全够了。我在客户现场做过一套三轴点胶设备用TPC1062Ti配FX3U-32MT成品效果稳定成本只有专用示教器的零头。这套组合能解决的第一个实际问题是“点位示教”。操作员通过触摸屏上的JOG按钮手动把轴移到目标位置按一下“记录点位”坐标就存进PLC。这样就不需要笔记本连着PLC改坐标也不需要操作员懂编程。第二个问题是“点位管理”。一套程序可能存几十个点触摸屏上做列表显示、点号上下切换、插入删除这些都是昆仑通态脚本的强项。配合PLC内部寄存器做数据载体触摸屏只做逻辑映射稳定性很高。第三个问题是“运行控制”。自动模式、手动模式、回原点、启动暂停急停这些状态逻辑用PLC梯形图做最稳触摸屏脚本负责发命令和显示状态各干各的不抢活。第四个问题是“用户界面”。昆仑通态做界面比PLC文本屏友好得多坐标显示、状态灯、报警信息、速度倍率滑条这些东西直接用组态环境拖拽出来脚本只补核心逻辑。1.2 先理清3轴联动的真实需求直线轨迹还是点对点很多人在项目一开始就纠结“3轴联动”这个概念其实要先把需求分清楚。纯点对点运动就是三个轴各自走到指定坐标谁先到谁后到无所谓这种用三个独立的定位指令就能完成根本不需要“联动”。真正需要联动的是“直线轨迹”。比如点胶路径需要三轴协同运动让胶枪从空间点A直线移动到点B这时候三轴必须同时启停而且速度要按坐标增量成比例分配。如果速度比例错了轨迹就是折线而不是直线。这个区别直接决定了PLC程序的复杂度。如果只是点对点梯形图里三条DRVI顺序触发就行要直线轨迹就得先算出三轴各自的方向、位移量、速度比例再同时输出脉冲。我在第五章会详细讲这个计算过程。做方案前先把需求问清楚能省掉大量返工。2. 通信组态与寄存器规划整个项目的“数据骨架”2.1 FX3U与昆仑通态通信连接及参数硬件连接不复杂。FX3U本体的编程口是422口可以直接和昆仑通态的COM口通信但我更推荐FX3U加一块FX3U-485-BD扩展板用485方式连触摸屏这样现场走线距离更远抗干扰也更好。触摸屏用TPC系列基本都行组态软件用MCGS嵌入版。通信参数建议设置为波特率9600、8位数据、1位停止位、偶校验或无校验都可以但PLC程序里要一致。PLC侧的通信格式存放在特殊寄存器D8120里。比如无校验的8数据位1停止位D8120的值设为H0081偶校验就是H0089。这里不用死记三菱编程手册上有个通信格式设定表对着查就行。昆仑通态侧新建设备时选择“三菱FX系列串口”然后配置COM口号和波特率。很多新手在这里翻车触摸屏COM1和COM2选错了或者PLC站号填错导致通信一直建立不起来。FX3U默认站号是0触摸屏侧如果默认填1要改成0。组态完成后先别急着写程序用触摸屏的“设备调试”功能读一个软元件比如D0能读到值再往下走。这一步能省掉后面80%的通信排查时间。提示PLC必须处于RUN状态触摸屏才能正常读写。如果PLC在STOP状态读写都会失败。这是最常见、也最容易忽略的问题。2.2 寄存器映射表设计整个项目的数据架构说白了就是确定哪些PLC寄存器对应触摸屏上的哪个变量。这个表一定要在最开始就画清楚否则程序写一半再改牵扯到的脚本和梯形图会乱成一锅粥。我习惯按功能分区规划D寄存器以下是我在3轴项目中用的一张典型映射表寄存器区块用途说明D100-D102X/Y/Z轴当前绝对坐标PLC实时写入触摸屏显示用D110-D199示教点坐标存储区每3个寄存器存一个点最多30个点D200当前示教点号触摸屏可读写PLC据此定位存储区D210自动运行当前执行点号PLC写入触摸屏显示D220运行速度倍率触摸屏写入0~100%D221-D223三轴脉冲频率上限触摸屏写入单位HzD230-D232三轴加减速时间触摸屏写入单位msM50示教模式1表示手动/示教模式M51自动运行模式1表示自动M52回原点模式1表示回原点M60保存当前点命令触摸屏置1PLC处理后复位M61删除当前点命令触摸屏置1PLC处理后复位M70启动运行触摸屏按钮触发M71暂停运行触摸屏按钮触发M72急停复位触摸屏按钮触发M100-M105X/Y/Z JOG正负点动触摸屏按钮按住置1松开置0M106程序运行中状态PLC写入触摸屏显示这张表的背后逻辑很简单所有“命令类”信号用M寄存器触摸屏只负责置位PLC负责执行后复位避免信号一直挂着造成重复触发。所有“数值类”信号用D寄存器按连续地址排列方便PLC用变址或者批量传送指令处理。存储区这样划分还有个好处30个点位就是D110到D199共90个寄存器每个点占3个寄存器点号N对应的地址就是110(N-1)*3。这个映射关系在PLC程序里用简单的乘法就能算出来不需要复杂的寻址方式昆仑通态脚本也能精确对应。2.3 通信稳定性调试前先解决三件小事第一件485通信线必须用双绞屏蔽线屏蔽层单端接地。我在一个现场排查过麻烦问题轴走得好好的忽然速度乱跳最后发现是通信线离伺服动力线太近干扰串进了485信号。把线分开走问题立刻消失。第二件触摸屏和PLC的通信超时时间不要设太短。MCGS里默认的采集周期是1秒如果你把脚本循环周期也设成100ms会造成通信拥塞画面变量刷新变慢。我一般把设备采集周期设在500ms画面显示用循环脚本去读但循环脚本不要做得太频繁500ms到1秒足够了。第三件PLC里的通信格式初始化务必在程序最前面写清楚。用一条MOV指令把D8120的值写进去同时在PLC参数里也对应设置。有的工程师只改参数忘了写程序导致上电后通信格式还是默认值触摸屏连不上。这类问题现象一样但排查链路完全不同按“先查D8120”这个顺序来能少走弯路。3. FX3U程序怎么写示教点存取、JOG、回原点与自动运行3.1 程序总体框架与模式切换FX3U程序我按模块化思路写每个功能块独立成段方便复制到其他项目。总框架分四段状态互锁段、点动段、示教点管理段、自动运行段。状态互锁的关键是保证“手动”和“自动”不能同时有效。M50示教模式下自动运行启动信号必须被屏蔽M51自动模式下JOG点动信号同理。这个互锁要在梯形图最前面用串联常闭触点实现比在触摸屏脚本里做判断可靠得多。模式切换逻辑用置位复位指令实现触摸屏按钮触发M50或M51置位PLC内部再根据M50/M51状态强制另一侧复位。举个例子触摸屏按下“示教模式”按钮M50置ON同时M51被复位。这样即使触摸屏页面切换导致按钮状态丢失PLC内部的模式状态不会乱。3.2 点动/JOG逻辑点动逻辑是示教器最核心的手动功能操作员要能精确移动每个轴。FX3U有三种脉冲输出方式我在这里用的是PLSY脉冲指令配合方向信号控制。X轴正方向JOG的梯形图思路大概是这样触发条件M50为ON示教模式且M100为ONX正点动按钮按住且未到正限位。执行动作Y000输出脉冲频率由D221给定脉冲数设K0表示连续输出方向信号Y010置ON或OFF根据正负方向而定。这里有个细节PLSY指令在驱动条件OFF时会立即停止脉冲输出所以触摸屏上的JOG按钮要用“按住有效、松开无效”的脚本按下时置位M100松开时复位M100。这样点动距离完全由操作员手感控制。回原点逻辑我一般建议用DSZR指令用于带DOG信号的伺服系统FX3U的DSZR支持三轴。如果现场是步进电机没有编码器Z相那就用“限位开关回零”轴反方向低速运行到碰到原点限位或负限位停止并把当前坐标清零。这套逻辑虽然简单但对大多数三轴桁架来说足够可靠。3.3 示教点保存与删除逻辑示教点保存的核心问题是“把当前绝对坐标写入对应存储区”。前提条件有两个一是PLC里必须知道三轴当前绝对坐标这个坐标在回原点和定位完成后都要持续维护二是触摸屏通过D200告诉PLC当前操作的是第几个点。PLC检测到M60由OFF变ON时执行保存动作。我用的是上升沿微分指令避免触摸屏脚本因为通信延迟重复触发。保存逻辑用变址寄存器先将D200的值减1得到点号索引。乘以3得到该点在存储区内的偏移量。把X轴当前坐标写入D110加上偏移量的地址Y轴写入D111加偏移量Z轴写入D112加偏移量。保存完成后PLC复位M60。删除逻辑类似检测到M61上升沿后把该点对应的3个寄存器全部写入一个特殊值。我这里约定的“空点标记”是-999999因为正常坐标值不会用到这个数自动运行段读取到-999999就知道这个点是空的自动停止。3.4 自动运行逐点执行与3轴同步输出自动运行段的核心是指令选择。FX3U有三种定位方式PLSY是脉冲输出DRVI是相对定位DRVA是绝对定位。示教器场景里点位坐标存的是“绝对坐标”所以用DRVA比较直观每一行执行时三个轴都往自己的绝对目标位置走。逐点执行逻辑启动信号M70后D210从1开始。读取当前点的三个坐标值如果读到空点标记则运行结束。触发三条DRVA分别对应Y000、Y001、Y002目标位置是当前点坐标速度是D221乘以D220倍率计算出来的值。三条指令全部完成定位完成标志位都ON后D210加1执行下一点。全部执行完D210清零M106运行中状态复位。需要特别注意的是DRVA的目标位置和速度寄存器不能重叠。我见过有人把三轴的速度都放在D0导致程序一运行三个轴的速度相互覆盖轨迹完全乱掉。三个轴要用D221、D222、D223分别独立存储。4. 昆仑通态脚本把示教器界面“盘活”的关键逻辑4.1 脚本的触发方式和变量绑定昆仑通态的脚本引擎跟标准VBScript类似但它不是靠“一气呵成的主程序”运行而是靠各个窗口的按钮事件、循环脚本、变量值变化事件来驱动。理解这一点才能把界面逻辑写对。我习惯把所有设备通道先建到实时数据库里变量名直接用有意义的英文或拼音。比如PLC的D100创建成实时数据库变量“CurPosX”M50创建成“ModeJog”。画面上的文本显示框直接关联实时数据库变量按钮脚本里直接操作这些变量名。按钮事件的触发方式有两种按下时触发和弹起时触发。JOG按钮要用按下置位、弹起复位所以我写两个事件脚本一个在按下事件里把M100置ON一个在弹起事件里把M100置OFF。如果只在“抬起”事件里处理操作员按住按钮时轴根本不会动。注意MCGS的脚本中操作开关型变量直接赋值TRUE/FALSE即可。操作数值型变量直接用等号赋值。脚本必须写成“IF...THEN...ENDIF”的结构。4.2 示教操作记录点位、插入点位和删除点位触摸屏上“记录点位”按钮的脚本逻辑如下IF ModeJog TRUE THEN CurrPoint CurrPoint 1 !SetDevice(设备0, 读写, 寄存器, D200, 1, CurrPoint) !SetDevice(设备0, 置位, M60, 1, 1) ENDIF这个脚本做的事情是确认处于示教模式点号加1写入PLC的D200然后置位M60通知PLC执行保存。保存动作完全由PLC完成触摸屏只发命令不直接写坐标存储区。这样做的好处是逻辑简化且不容易出错。删除点位的脚本类似但要注意删除后的点号管理。我做过一个处理方案删除当前点后把后面的所有点依次前移一格。这个前移操作如果在昆仑通态脚本里做比较难受阵列变量支持有限所以我把前移逻辑也放进了PLC梯形图。PLC收到M61删除命令后先把当前点后面的所有点坐标整体往前搬再把最后一个点清除然后把D200点号减1。插入点位稍微复杂一点PLC检测到M62插入命令后先从最后一个有效点开始把所有点向后搬一格然后把当前点号指向空出来的那一格触摸屏再提示操作员把轴移到想要的位置并保存。这套逻辑完全在PLC里做脚本那边只负责置位M62。4.3 速度倍率、运行使能与安全互锁速度倍率用滑条控件或数值输入框都可以。我推荐滑条操作员直观。脚本里把滑条绑定的变量除以100再写入D220。比如滑条范围0到100脚本如下SpeedScale SliderValue / 100 !SetDevice(设备0, 读写, 寄存器, D220, 1, SpeedScale)自动启动按钮脚本要加条件判断。只有ModeAuto为TRUE、且PLC没有报警、且轴都在原点或任意安全位置时才允许置位M70。这个判断最好同时在PLC梯形图里再做一道硬互锁不能只靠触摸屏脚本因为万一通信卡住或者触摸屏重启PLC侧的状态仍然安全。急停必须做成硬接线急停回路串联在伺服使能回路或脉冲输出回路里绝对不能只靠触摸屏软件按钮。触摸屏上的“急停复位”按钮只做报警复位和状态显示不起实际急停作用。这是安全底线任何电气设备项目都一样。4.4 界面布局参考和运行效果界面布局我通常分为四个区域。左侧是坐标显示区和当前点信息区中间大字显示X/Y/Z坐标右侧是JOG操作区三个轴各配一排“/-”按钮下方是运行控制区模式切换、启动暂停、速度滑条还有一个状态栏显示当前程序步骤、报警信息和IO状态。这里有个实用技巧坐标数值框的显示格式设置为整数即可因为PLC里脉冲当量换算后往往是整数。如果直接用浮点运算触摸屏和PLC的浮点格式不一致会导致显示异常。我通常让PLC把坐标换算成“脉冲数”或“毫米×100”这样的整数格式触摸屏只负责显示和存储不参与精度运算。整体跑下来的效果是操作员在触摸屏上切到示教模式用JOG按钮把三轴移到点胶位置按“记录点位”点号自动加1坐标存进PLC。把所有工艺点记录完毕后切到自动模式按启动PLC逐点执行三轴联动胶枪按轨迹走完整个路径。整个交互和专用示教器非常接近。5. 3轴联动轨迹调试想走直线速度比例必须这么算5.1 让三个轴“同时启动”的两个条件很多人做三轴联动时发现轨迹不是直线第一个原因是三个轴的DRVA指令没有在同一个扫描周期内同时触发。FX3U梯形图是按行扫描的如果你的程序是“先X轴DRVA再Y轴DRVA再Z轴DRVA”在梯形图执行顺序上X轴已经启动跑了一个扫描周期Y轴和Z轴才启动。虽然扫描周期很短但对于几十kHz脉冲频率的轴来说已经造成了明显的滞后。解决办法只有一个把三条DRVA指令放在同一个梯级里并联输出。梯形图写成三条支路并联在同一逻辑结果之后三路脉冲输出指令在同一个扫描周期内被同时扫描到三条轴同时启动。这一点在实际调试中最容易验证如果轨迹不是直线先检查是不是这里出了问题。第二个条件是速度比例必须正确。DRVA的第二个参数是脉冲频率其本质是“每秒发送多少个脉冲”。要让轨迹走直线三个轴在相同时间内到达目标终点所以速度比必须等于位移量的比例。速度给错即使同时启动也走不出直线。5.2 直线轨迹速度比例计算实例我以一个实际案例说明计算过程。假设三轴从点P1移动到点P2坐标增量分别如下X轴增量100mm脉冲当量0.01mm/pulse需要10000个脉冲。Y轴增量50mm需要5000个脉冲。Z轴增量20mm需要2000个脉冲。设定最大轴速度X轴为5000Hz那么X轴速度5000HzY轴速度5000×(5000/10000)2500HzZ轴速度5000×(2000/10000)1000Hz这样三个轴从启动到停止的时间都是10000/50002秒轨迹是一条完美的空间直线。这个比例系数需要在PLC程序里算出来用浮点运算避免整数除法丢失精度。浮点运算的实现思路先算三个位移量的最大值设为基准然后每个轴的速度等于基准速度乘以该轴位移量与最大位移量的比值。FX3U的浮点运算指令能算但要注意寄存器分配和数据类型匹配浮点寄存器用D和相邻D组合成32位格式。5.3 为什么走位会有偏差现场实测的误差来源即使速度比例算对了现场实测轨迹还是可能有偏差。我总结了自己的测试经验常见原因有三个。第一个是加减速时间影响。DRVA指令启动和停止时有加减速过程如果三个轴的加减速时间参数不一样启动阶段的曲线就不一致轨迹会“先偏一下再拉回来”。把三个轴的加减速时间设为相同值轨迹就顺很多。第二个是机械负载差异。三个轴的摩擦力、惯量不同伺服或步进电机实际响应速度不同也会造成轨迹偏差。开环步进尤其明显负载大的轴可能丢步导致实际位移比理论少。这种问题在定位精度要求高的场景只能换闭环步进或伺服电机。第三个是加减速终点太急。DRVA默认加减速时间在PLC参数里设置如果设得太短机械振动大轨迹在终点处会“过头”再回摆。把加减速时间适当加长到200~300ms配合整定好的伺服增益能明显改善轨迹质量。6. 现场排查手册昆仑通态脚本项目最常见的10个问题6.1 问题归类速查表这些年和昆仑通态、FX3U打交道的项目里现场问题翻来覆去就那么几类。我整理了一个速查表调试时对着排查比漫无目的猜快得多。故障现象首要怀疑方向排查方法触摸屏显示PLC数值全部为0PLC未RUN或通信参数错误查看PLC运行灯检查D8120和MCGS设备参数界面上有些变量能读有些不能寄存器映射表填错核对软元件地址和通道类型按钮按下没有反应按钮事件写错或PLC模式错误用触摸屏“设备调试”直接置位目标M分步判断JOG按下轴不动未在示教模式/限位触发/方向信号错误检查M50状态、限位常闭触点、方向输出Y地址轴只能走一个方向方向信号线接反或方向信号没切换测量方向输出端子电压变化自动运行中途停下碰到限位/定位完成信号丢失/空点标记看PLC实时监控确认当前步骤三轴联动轨迹是折线三条DRVA没同时启动或速度比例错误用示波器或监控脉冲频率核对比例坐标显示乱跳通信受干扰或浮点格式不匹配改善布线统一数据格式为整数触摸屏偶尔死机工程太大/脚本循环太频繁简化循环脚本降低采集频率急停后无法恢复急停按钮触点未复位或PLC被STOP检查急停回路确认PLC状态6.2 一次典型的“触摸屏能写PLC但轴不动”排查链路有个项目现场反馈说触摸屏上点JOG按钮PLC输入点位有变化但轴完全不动。如果直接怀疑脉冲输出或者伺服设置容易走错方向。我当时的排查链路是这样第一步在触摸屏上把M50置ON进入示教模式。然后检查PLC里M50是否真的为ON。现场用PLC监控一看M50是ON说明通信没问题。第二步按下X正JOG按钮观察M100是否变化。结果M100能正常置ON说明按钮脚本正常。第三步看Y000是否有脉冲输出。用PLC的监控看Y000发现是OFF。这说明故障点在PLC程序内部。第四步查程序里的限位信号。结果发现正限位X010恰好被接反常闭触点断开了输出条件。现场把常闭改成常开逻辑后问题解决。这个排查链路说明了一个方法论从触摸屏到PLC再到输出逐层缩小范围先用监控确认每一级的输入条件是否成立再判断故障点。直接猜伺服参数或者脉冲线接错可能在错误的方向上浪费时间。6.3 我踩过的最小也最坑的细节最后提醒一个很小的细节三菱FX3U的Y000、Y001、Y002是晶体管高速脉冲输出但同一组高速输出中位置和方向的关系容易搞混。很多伺服驱动器要求“正方向脉冲方向电平”或“双脉冲”模式如果脉冲模式和驱动器参数不匹配轴要么不动要么抖动。另外FX3U用高速脉冲输出时PLSY、DRVI、DRVA这些指令使用的特殊数据寄存器也要初始化。比如X轴的脉冲当前值存放在D8340/D8341如果你不清零或者回原点后不把这个值重写自动运行时DRVA会认为当前坐标还在原点一走就是全行程偏移。最后分享一个项目习惯交付前一定做一个“断电重启测试”。现场调试一切正常但如果上电后程序、通信、模式状态没有按预期恢复客户第一次使用就会觉得设备不稳定。把上电初始状态和触摸屏启动后的画面变量初始化做好这个细节对项目验收帮助很大。
返回列表