三菱Q系列PLC程序,该设备由24个伺服电机、1套焊接机、2套CCD、4套扫码枪、6套位移传感器组成,电气控制采用三菱Q系列Q06UDV型CPU,内置以太网通过TCP/IP形式与上位机CCD及扫码枪通讯,两套QD77MS16定位模块控制伺服,外加QJ71C24N用于与位移传感器通过ModBus RTU协议进行串口通讯获取数据,另外运用三菱MX 控件与上位机通讯完成与客户MES系统闭环控制,轴控采用FB程序块编写,是学习三菱大型PLC控制多轴的好例子

最近在车间搞了个硬核项目——基于三菱Q系列PLC的24轴焊接工作站。这套系统堪称大型设备控制的样板工程,光伺服轴就够喝一壶的,更别说还要整合视觉检测、位移传感和MES系统。老司机们都知道,这种规模的系统架构搞不好就会变成"意大利面条式代码",好在三菱的模块化设计确实给力。

三菱Q系列PLC程序,该设备由24个伺服电机、1套焊接机、2套CCD、4套扫码枪、6套位移传感器组成,电气控制采用三菱Q系列Q06UDV型CPU,内置以太网通过TCP/IP形式与上位机CCD及扫码枪通讯,两套QD77MS16定位模块控制伺服,外加QJ71C24N用于与位移传感器通过ModBus RTU协议进行串口通讯获取数据,另外运用三菱MX 控件与上位机通讯完成与客户MES系统闭环控制,轴控采用FB程序块编写,是学习三菱大型PLC控制多轴的好例子

先看硬件配置单:

  • 大脑:Q06UDV CPU(自带以太网真香)
  • 运动控制:两片QD77MS16定位模块(每片带16轴,刚好Hold住24个伺服)
  • 串口担当:QJ71C24N模块(跟6个位移传感器玩ModBus RTU)
  • 外围设备:2台工业相机+4把扫码枪通过交换机直连PLC

通讯架构是重头戏,TCP/IP、串口、MX控件三路并发。这里有个小技巧——用内置以太网做数据分流。给上位机CCD开个专用端口,扫码枪走另一个端口,避免数据流打架。看这段网络配置代码:

MOV H3E8 K4M100  // 设置端口1000给CCD
MOV H7D0 K4M120  // 设置端口2000给扫码枪
OPEN #1 D1.ETCP  // 开通TCP通道

运动控制部分必须吹爆QD77MS16模块,FB块封装得真心舒服。每个轴独立配置参数表,调用时直接喂数据就行。比如这个圆弧插补的FB调用:

CALL P_MC_ArcMove(  // 圆弧插补功能块
    Axis     := K1,  // 主轴号
    EndX     := D100, 
    EndY     := D200,
    CenterX  := D300,
    CenterY  := D400,
    Velocity := K5000,
    Accel    := K100);

调试时发现个坑——ModBus RTU的轮询时序要和伺服周期错开。后来用C24模块的定时中断搞定,关键代码长这样:

LD SM400       // 上电常ON
OUT T0 K50    // 50ms定时器
LD T0
RS2P D100 K6 D200 K2  // 读取6个位移传感器

最秀的是MX控件做MES对接,三菱的ActiveX控件直接扔到上位机HMI里。实时上传生产数据时,用了个双缓冲策略防止数据丢失:

DMOVP D5000 U0\G10000  // 第一缓冲
DMOVP D5100 U0\G11000  // 第二缓冲
MX_Write H10000 K200   // 批量写入200字

这套系统跑下来最大的心得:模块化设计是王道!每个功能块像乐高积木一样拼接,后期维护时哪个模块出问题直接单点爆破。建议新手多研究三菱的SFC编程,特别是对于多设备协同的场景,状态流程图比梯形图直观十倍。

最后吐槽下,24个伺服的干扰问题真是掉了一把头发。后来在控制柜里加了三个磁环,电源线全部换屏蔽线才解决。血泪教训:做大系统千万要做好接地规划!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐