根据持续的用户反馈,目前市场对 PLC 与 myCobot 系统集成的需求很大,因此本文提供的案例介绍了如何使用 PLC(可编程逻辑控制器)来控制 myCobot 320 机械臂。本案例重点介绍如何实现这一集成效果。
一、本项目使用的硬件组件
M5Stack ESP32 Basic Core IoT Development Kit
Elephant Robotics myCobot 320 m5
二、知识概览
什么是 PLC?
对于熟悉工业级机械臂的人来说,PLC 可能是一个熟悉的概念。PLC 代表可编程逻辑控制器,这是一种工业数字计算机,专为控制工业环境中的各种机械和生产过程而设计。PLC 广泛用于自动化,用于执行逻辑控制、顺序控制、定时、计数和算术运算等任务。
要更深入地了解 PLC,您可以观看以下视频:
通过将机械臂的灵活性与 PLC 的稳定性和实时功能相结合,可以为特定场景开发量身定制的解决方案。
myCobot 320 M5 智能协作机器人
myCobot 320 是一款 6 自由度机械臂,有两个版本:一个使用 M5Stack-Basic 作为嵌入式开发板,另一个使用 Raspberry Pi 4B。手臂仅重 3360 克,重量轻且便于携带。它的末端执行器可以处理最大 1000g 的有效载荷,足以满足大多数实验场景。此外,用户可以将摄像头或执行器(如夹具或抽吸泵)连接到末端执行器,留下大约 600 克的剩余有效载荷能力。手臂的最大工作半径为 350 毫米,可在各种情况下灵活移动。
S7-1200 系列
Siemens S7-1200 PLC 是一款紧凑的模块化可编程逻辑控制器,专为中小型自动化项目而设计。它提供高可靠性、实时性能和灵活的可扩展性。S7-1200 支持多种工业协议(如 Profinet 和 Modbus),包括一个以太网接口,可与传感器、执行器和其他设备无缝集成。
它使用 TIA Portal 软件进行编程,支持梯形图、功能块图和其他语言,使开发和维护变得简单明了。广泛应用于工业生产、楼宇自动化和机械控制,提供稳定高效的控制解决方案。
三、硬件操作
当机械臂接收到 PLC 的 IO 信号时,它会执行一个运动,将所有关节重置为零位置。此操作主要用于在两个系统之间建立通信。
原理解释:
1. 机械臂的输出端口首先发送信号。
2. 一旦 PLC 检测到输入信号,它就会输出一个信号来为 24V 继电器线圈供电。
3. 继电器的常开触点闭合,将低电平信号传输到机械臂的输入端口。
4. 当机械臂检测到输入信号时,它会执行动作以将其所有关节重置为零位置。
硬件连接
将机械臂的输入连接到 PLC 的输出
1. PLC 为西门子 S7-1200,输出类型为 PNP,而机械臂的输入类型为 NPN。因此,需要一个中间继电器来转换信号。
2. 将电源连接到 PLC。
3、将继电器线圈连接到PLC的公共端子和Q0.0
4.将继电器的常开触点连接到端子上。
5. 然后将端子连接到机器人的 IN1 输入。
将机械臂的输出连接到 PLC 的输入
1. PLC 是西门子 S7-1200,其输入类型支持 PNP 和 NPN。机械臂的输出类型为 PNP,因此 PLC 输入应使用 PNP 配置。
2. 将 24V 连接到 PLC 的输入端子。
3. 将机械臂的接地端(GND)和输出 1(OUT1)连接到可编程逻辑控制器(PLC)的公共端和 I0.0。
4. 将端子插入机械臂的输出端。
四、软件操作
机械臂程序
from pymycobot import MyCobot
import time
# Initialize the myCobot on COM port 8
mc = MyCobot("COM8")
# Set the basic output port 1 to low level (0)
mc.set_basic_output(1, 0)
# Infinite loop to monitor input signals
while 1:
# Check the status of input port 1
if mc.get_basic_input(1) == 0:
# If the input is low level (0), send angles to reset all joints to zero
mc.send_angles([0, 0, 0, 0, 0, 0], 50)
break # Exit the loop once the action is executed
else:
pass # Do nothing and continue checking
# Set the basic output port 1 to high level (1)
mc.set_basic_output(1, 1)
五、小结
西门子PLC以其高稳定性、实时性和抗干扰性而闻名,使其专为工业环境而设计。它们非常适合工厂自动化、恶劣环境和涉及多个设备的复杂工作流程。PLC支持Profinet和Modbus等标准工业通信协议,实现与传感器、执行器和其他设备的无缝集成。这确保了系统能够以毫秒级的响应时间长期稳定运行。对于要求高可靠性的场景,如装配线控制、设备同步或环境条件严格的工厂,PLC是最佳选择。
而Python则在开发灵活性和效率方面表现出色,凭借其丰富的库和工具,Python适用于算法实现、机器学习和复杂的运动控制应用。Python更适用于可以快速开发和验证新想法的研究和实验场景。但在实时性能和对恶劣环境的适应性方面相对较弱,因为它取决于底层硬件和操作系统性能。
如果首要需求是长期稳定运行、实时控制和工业环境集成,PLC是更好的选择。如果重点是快速开发和算法灵活性,Python更适合。两者也可以结合起来,Python处理高级算法,PLC管理低级控制,为更广泛的应用提供解决方案。