PLC 程序分析:机器人植株采摘控制系统
PLC程序分析:机器人植株采摘控制系统
该 PLC 程序用于控制一台机器人进行植株采摘,包含 18 个网络,每个网络都由传感器输入、输出控制和算法组成,共同实现完整的采摘流程。
网络 1:判断植株是否在机器人操作范围内
- LD X0.0 // 激光测距传感器输入
- =| |=
- | | M100.0 // 判断植株是否在机器人操作范围内
- | | L B#16#2000 W#5s // 当未检测到植株时等待 2 秒后重新检测
- | | TONR S10 // 计时器
- | | = I0.1 // RGB-D相机输入
- | | ANI M101.0 // 判断植株是否成熟
- | | ANI M102.0 // 判断植株是否被抓取
- | | ANI M104.0 // 判断左侧机械臂是否在运动中
- | | ANI M105.0 // 判断右侧机械臂是否在运动中
- | | JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
网络 2:控制左侧机械臂夹紧和运动
- LD X0.2 // 左侧机械臂触摸传感器输入
- =| |=
- | | ANI M103.0 // 判断左侧机械臂是否夹紧物体
- | | OUT Q0.0 // 控制左侧机械臂运动到目标位置
- | | R B#16#2000
- | | OUT Q0.0 // 停止左侧机械臂运动
- | | SET M102.0 // 设置植株已被抓取
- | | JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
网络 3:控制右侧机械臂夹紧和运动
- LD X0.3 // 右侧机械臂触摸传感器输入
- =| |=
- | | ANI M103.1 // 判断右侧机械臂是否夹紧物体
- | | OUT Q0.1 // 控制右侧机械臂运动到目标位置
- | | R B#16#2000
- | | OUT Q0.1 // 停止右侧机械臂运动
- | | SET M102.0 // 设置植株已被抓取
- | | JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
网络 4:控制左侧机械臂夹紧力度
- LD I0.4 // 左侧机械臂力传感器输入
- LIM -50 TO 50 // 限幅处理
- SCL -1,1 TO -32767,32767 // 缩放处理
- TONR S11 // 计时器
- = M106.0 // 左侧机械臂力控制算法
- OUT Q0.0 // 控制左侧机械臂夹紧力度
- JMP M104.0 // 跳转回判断左侧机械臂是否在运动中
网络 5:控制右侧机械臂夹紧力度
- LD I0.5 // 右侧机械臂力传感器输入
- LIM -50 TO 50 // 限幅处理
- SCL -1,1 TO -32767,32767 // 缩放处理
- TONR S12 // 计时器
- = M107.0 // 右侧机械臂力控制算法
- OUT Q0.1 // 控制右侧机械臂夹紧力度
- JMP M105.0 // 跳转回判断右侧机械臂是否在运动中
网络 6:监测左侧机械臂旋转角度
- LD I0.6 // 左侧机械臂编码器输入
- -I0.6 // 将编码器数值取反,防止数值溢出
- +DB1.DBD0 // 累加旋转角度
- TONR S13 // 计时器
- SCL -32767,32767 TO -90,90 // 缩放处理
- = M108.0 // 左侧机械臂位置控制算法
- OUT Q0.0 // 控制左侧机械臂旋转角度
- JMP M104.0 // 跳转回判断左侧机械臂是否在运动中
网络 7:监测右侧机械臂旋转角度
- LD I0.7 // 右侧机械臂编码器输入
- -I0.7 // 将编码器数值取反,防止数值溢出
- +DB1.DBD4 // 累加旋转角度
- TONR S14 // 计时器
- SCL -32767,32767 TO -90,90 // 缩放处理
- = M109.0 // 右侧机械臂位置控制算法
- OUT Q0.1 // 控制右侧机械臂旋转角度
- JMP M105.0 // 跳转回判断右侧机械臂是否在运动中
网络 8 - 11:控制机器人轮子转动
-
LD I1.0 // 左前轮编码器输入
-
-I1.0 // 将编码器数值取反,防止数值溢出
-
+DB1.DBD8 // 累加旋转角度
-
SCL -32767,32767 TO -180,180 // 缩放处理
-
= M110.0 // 左前轮角度控制算法
-
OUT Q0.2 // 控制左前轮旋转角度
-
JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
-
LD I1.1 // 右前轮编码器输入
-
-I1.1 // 将编码器数值取反,防止数值溢出
-
+DB1.DBD12 // 累加旋转角度
-
SCL -32767,32767 TO -180,180 // 缩放处理
-
= M111.0 // 右前轮角度控制算法
-
OUT Q0.3 // 控制右前轮旋转角度
-
JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
-
LD I1.2 // 左后轮编码器输入
-
-I1.2 // 将编码器数值取反,防止数值溢出
-
+DB1.DBD16 // 累加旋转角度
-
SCL -32767,32767 TO -180,180 // 缩放处理
-
= M112.0 // 左后轮角度控制算法
-
OUT Q0.4 // 控制左后轮旋转角度
-
JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
-
LD I1.3 // 右后轮编码器输入
-
-I1.3 // 将编码器数值取反,防止数值溢出
-
+DB1.DBD20 // 累加旋转角度
-
SCL -32767,32767 TO -180,180 // 缩放处理
-
= M113.0 // 右后轮角度控制算法
-
OUT Q0.5 // 控制右后轮旋转角度
-
JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
网络 12:控制机器人运动方向
- LD = I1.4 // IMU传感器输入
- -DB1.DBD24 // 减去传感器偏差值
- TONR S15 // 计时器
- = M114.0 // 机器人运动控制算法
- OUT Q0.2 // 控制左前轮运行速度
- OUT Q0.3 // 控制右前轮运行速度
- OUT Q0.4 // 控制左后轮运行速度
- OUT Q0.5 // 控制右后轮运行速度
- JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
网络 13 - 16:检测机器人周围是否有障碍物
-
LD I1.5 // 前超声波传感器输入
-
< 50 // 判断前方是否有障碍物
-
ANI M105.0 // 判断右侧机械臂是否在运动中
-
ANI M106.0 // 判断左侧机械臂是否在运动中
-
JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
-
LD I1.6 // 后超声波传感器输入
-
< 50 // 判断后方是否有障碍物
-
ANI M105.0 // 判断右侧机械臂是否在运动中
-
ANI M106.0 // 判断左侧机械臂是否在运动中
-
JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
-
LD I1.7 // 左侧超声波传感器输入
-
< 50 // 判断左侧是否有障碍物
-
ANI M103.0 // 判断左侧机械臂是否夹紧物体
-
JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
-
LD I2.0 // 右侧超声波传感器输入
-
< 50 // 判断右侧是否有障碍物
-
ANI M103.1 // 判断右侧机械臂是否夹紧物体
-
JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
网络 17 - 18:检测植株状态
-
ANI M101.0 // 判断植株是否成熟
-
JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
-
ANI M102.0 // 判断植株是否被抓取
-
JMP M100.0 // 跳转回判断植株是否在机器人操作范围内
总结
该 PLC 程序通过各个网络的协同工作,实现了机器人自动采摘植株的功能。程序包含了各种传感器输入、输出控制、算法处理和状态判断,确保机器人能够在合适的时机进行精准的行动,最终完成采摘任务。
原文地址: https://www.cveoy.top/t/topic/nxO3 著作权归作者所有。请勿转载和采集!