1. 项目概述:PLC图形绘制的工业应用场景
在工业自动化领域,可编程逻辑控制器(PLC)除了完成传统的逻辑控制任务外,其运动控制功能也日益受到重视。三菱FX3U系列PLC通过内置的定位控制指令,能够实现精确的直线和圆弧插补运动,这为简单的图形绘制提供了可能。本次分享的五角星绘制案例,实际上是一个典型的二维平面轨迹控制问题,其技术原理可以广泛应用于激光切割、喷墨绘图、数控雕刻等工业场景。
五角星作为一种规则的多边形结构,其绘制过程涉及五个顶点的坐标计算和连续的直线插补运动。通过这个案例,我们可以掌握FX3U的DRVI直线插补指令、变址寄存器应用以及三角函数在坐标计算中的实际用法。这些技术同样适用于其他正多边形(如六边形、八边形)的绘制,只需调整顶点数量和角度参数即可。
2. 硬件配置与基础准备
2.1 所需硬件组件
要实现这个绘图系统,我们需要以下硬件配置:
- 三菱FX3U系列PLC(建议FX3U-48MT/ES-A以上型号)
- 两轴步进电机驱动器(如MR-JE-10A)
- 步进电机两台(根据负载选择合适扭矩)
- 绘图平台(可选用XY十字滑台结构)
- 24V直流电源
- 绘图工具(笔、激光头等执行机构)
注意:实际应用中需根据绘图幅面选择合适行程的滑台,并确保电机扭矩能够克服机械摩擦力和执行机构阻力。
2.2 PLC参数设置
在编程前需要配置以下关键参数:
-
脉冲输出设置:
- Y0/Y1作为脉冲输出端口
- Y2/Y3作为方向控制端口
- 脉冲模式设置为"脉冲+方向"(参数D8140)
-
单位换算设置:
- 定义脉冲当量(如1000脉冲/mm)
- 设置最大速度(D8145/D8146)
- 设置加减速时间(D8148)
-
插补参数:
- 插补速度(D8340)
- 插补加减速时间(D8341)
basic复制' 示例参数设置程序
MOV K1000 D8140 ' 设置脉冲当量为1000脉冲/mm
MOV K50000 D8145 ' 设置X轴最大速度为50000脉冲/s
MOV K50000 D8146 ' 设置Y轴最大速度为50000脉冲/s
MOV K200 D8148 ' 设置加减速时间为200ms
3. 五角星几何分析与坐标计算
3.1 五角星几何特性
正五角星(五角星形)具有以下几何特征:
- 外接圆半径R:顶点到中心的距离
- 内接圆半径r:凹点到中心的距离
- 顶点角:36度(360°/10)
- 边夹角:72度(外角)和108度(内角)
五角星可以看作由五个外顶点和五个内顶点交替连接而成。在坐标系中,假设中心在原点(0,0),第一个顶点在(0,R),则各顶点坐标可通过三角函数计算得出。
3.2 顶点坐标计算公式
对于第n个顶点(n=0-9,共10个点,交替为外顶点和内顶点):
- 外顶点坐标:
code复制X = R * sin(2πn/5) Y = R * cos(2πn/5) - 内顶点坐标:
code复制X = r * sin(2π(n+0.5)/5) Y = r * cos(2π(n+0.5)/5)
其中r ≈ R * sin(18°)/sin(54°) ≈ R * 0.382
3.3 PLC中的坐标转换实现
在PLC程序中,我们需要将理论坐标转换为脉冲数。假设:
- 脉冲当量:1000脉冲/mm
- 外接圆半径R=50mm
- 工作原点偏移(X0,Y0)=100mm
则第一个外顶点的脉冲计算:
code复制X_pulse = (X0 + R*sin(0)) * 1000 = 100 * 1000 = 100000
Y_pulse = (Y0 + R*cos(0)) * 1000 = (100+50)*1000 = 150000
4. 完整五角星绘制程序解析
4.1 程序初始化部分
basic复制' 系统初始化
LD M8002 ' PLC运行初始脉冲
MOV K0 Z0 ' 变址寄存器Z0清零
MOV K100000 D0 ' 工作原点X坐标(100mm)
MOV K150000 D1 ' 工作原点Y坐标(150mm)
MOV K50000 D100 ' 插补速度(50000脉冲/s)
MOV K10 D101 ' 加减速时间(10ms)
' 五角星参数设置
MOV K50 D10 ' 外接圆半径(mm)
MOV K19 D11 ' 内接圆半径≈50*0.382(mm)
MOV K0 D20 ' 当前顶点编号初始化
4.2 顶点坐标计算与存储
使用变址寄存器实现循环计算:
basic复制' 计算并存储10个顶点坐标(5外+5内)
FOR K0 TO K9
' 判断奇偶决定内外顶点
LD= K0
AND= D20 K1
JNE P1
' 计算外顶点(偶数编号)
FLT D20 D30 ' 转为浮点
MUL D30 K72.0 D31 ' n*72°
SIN D31 D32 ' sin值
FLT D10 D33 ' R转浮点
MUL D32 D33 D34 ' X=R*sin(n*72°)
MUL D34 K1000 D35 ' 转为脉冲
ADD D35 D0 D36 ' 加上偏移
INT D36 D50Z0 ' 存入X坐标数组
COS D31 D37 ' cos值
MUL D37 D33 D38 ' Y=R*cos(n*72°)
MUL D38 K1000 D39
ADD D39 D1 D40
INT D40 D60Z0 ' 存入Y坐标数组
JP P2
' 计算内顶点(奇数编号)
P1:
FLT D20 D30
SUB D30 K0.5 D31 ' (n-0.5)
MUL D31 K72.0 D32 ' (n-0.5)*72°
SIN D32 D33
FLT D11 D34 ' r转浮点
MUL D33 D34 D35
MUL D35 K1000 D36
ADD D36 D0 D37
INT D37 D50Z0 ' X坐标
COS D32 D38
MUL D38 D34 D39
MUL D39 K1000 D40
ADD D40 D1 D41
INT D41 D60Z0 ' Y坐标
P2:
INC D20 ' 顶点编号+1
ADD K2 Z0 Z0 ' 变址+2(每个坐标占2个字)
NEXT
4.3 直线插补绘制实现
basic复制' 绘制五角星主程序
LD M0 ' 启动信号
SET M100 ' 绘图开始标志
MOV K0 Z1 ' 变址初始化
' 移动到起点
DRVI D50Z1 D60Z1 D100 Y0 Y2
WAIT M8029 ' 等待定位完成
' 循环绘制各边
FOR K1 TO K10
ADD K2 Z1 Z1 ' 下一个顶点
CMP Z1 K20 ' 检查是否超出数组
JLT P3
MOV K0 Z1 ' 循环到第一个点
P3:
DRVI D50Z1 D60Z1 D100 Y0 Y2
WAIT M8029
NEXT
RST M100 ' 绘图完成
5. 程序优化与扩展应用
5.1 运动平滑性优化
为提高绘图质量,可采取以下优化措施:
- 拐角平滑处理:
basic复制MOV K500 D102 ' 设置拐角减速阈值(500脉冲) MOV K20 D103 ' 平滑系数 - 速度规划:
basic复制' S曲线加减速设置 MOV K3 D8343 ' S型加减速模式 MOV K50 D8344 ' 起始速度
5.2 多边形绘制扩展
通过修改顶点数和角度参数,可绘制任意正多边形。通用化实现:
basic复制' 多边形参数设置
MOV K6 D15 ' 边数(如6边形)
MOV K360.0 D16
DIV D16 D15 D17 ' 计算角度增量=360°/n
' 顶点计算(修改角度乘数)
MUL D30 D17 D31 ' 原72°改为360°/n
5.3 异常处理机制
完善的工业程序应包含以下保护措施:
basic复制' 限位检测
LD X0 ' X轴正限位
OR X1 ' X轴负限位
OR X2 ' Y轴正限位
OR X3 ' Y轴负限位
SET M50 ' 急停标志
' 超时监控
LD M100 ' 绘图进行中
OUT T0 K500 ' 500ms超时检测
LD T0
SET M50
6. 调试技巧与常见问题
6.1 调试步骤建议
- 先单独测试单轴运动,确认脉冲当量设置正确
- 使用示教模式手动定位各顶点坐标
- 分段测试插补运动(如先画三角形)
- 逐步增加顶点数量至五角星
- 最后优化运动参数提高绘制质量
6.2 常见问题排查
-
图形尺寸不准确:
- 检查脉冲当量设置(D8140)
- 确认机械传动比(丝杠导程/齿轮比)
-
图形旋转或镜像:
- 检查电机方向信号接线
- 确认坐标系设定(右手法则)
-
拐角处过冲或抖动:
- 降低插补速度(D8340)
- 增加加减速时间(D8341)
- 检查机械结构刚性
-
程序运行中断:
- 监控M8029定位完成信号
- 检查变址寄存器是否越界
- 确认数组边界处理
实际调试中发现,当插补速度超过机械系统响应能力时,会出现拐角圆角化现象。这时需要适当降低速度或调整伺服驱动器的增益参数。另外,建议在绘图前先空跑程序,通过PLC的脉冲监控功能确认轨迹正确性,避免机械碰撞风险。