戴俊良 伍耿民 凌旭 张冠勇
(湖南化工职业技术学院,湖南 株洲 412000)
随着智能制造的发展,工业机器人与可编程控制器已广泛应用于不同的生产线上。在生产过程中,工业机器人与可编程控制器的数据共享、信号互传是不可避免的问题。因此,必须要实现二者通信[1−2]。
目前,工业机器人与可编程控制器可通过工业以太网来建立通信,有以下2种实现方式:一是通过组态的方式进行通信。硬件端通过以太网线将二者连接起来,软件端通过可编程控制器编程软件来完成组态,实现工业机器人与可编程控制器的通信,但此种方式要由工业机器人厂商提供组态所需的GSD文件,而工业机器人的GSD文件要单独购买,导致生产成本增加;二是采用通信程序,即在可编程控制器编程软件中编写通信程序,同时工业机器人端也要编写通信程序,这是因为工业机器人与可编程控制器要实时传递数据,通信程序就要一直运行。因此,该方式要求工业机器人端能支持多任务同时运行,保证通信程序和工作程序能并行执行,而此部分功能也要单独购买,此外提供可编程控制器和工业机器人的厂家不同,导致数据格式也不一致。因此,采用第二种方式通信时还要编写数据解析程序,才能保证二者通信无误,这就导致生产线的建设周期延长。
目前,远程I/O的可靠性高、价格实惠,可编程控制器与远程I/O、工业机器人与远程I/O的单独通信已广泛应用于实际生产中,实现方式也很简单。可编程控制器与远程I/O的通信通过组态即可实现,远程I/O的GSD文件也无须单独购买;工业机器人与远程I/O的通信只用配置信号即可完成。因此,对基于远程I/O来实现工业机器人与可编程控制器的通信进行研究是很有必要的。
工业机器人采用ABB IRB120,其是ABB公司目前制造的最小机器人。工业机器人的控制器采用IRC5紧凑型控制器,其支持DEVICENET通信[3],借助DEVICENET接口来实现机器人与远程I/O的连接,满足数字量输入输出和模拟量输入输出。可编程控制器采用西门子公司生产的1212C DC/DC/DC,其 支持PROFINET通信,可借助PROFINET接口来实现可编程控制器与远程I/O的连接[4]。远程I/O采用南京华太公司生产的高性能总线FR系列模块。其中,工业机器人端的远程I/O适配器选择FR8030,通过DEVICENET总线与工业机器人连接;可编程控制器端的远程I/O适配器选择FR8210,通过PROFINET通信线缆与可编程控制器进行连接。通信实验平台的硬件架构图如图1所示。其中,FR1108为数字量输入模块,FR2108为数字量输出模块,FR3004为模拟量输入模块,FR4004为模拟量输出模块,①~⑧为各模块上对应的接线孔位,输入输出模块通过电缆线进行连接。
工业机器人端通过示教器在控制面板中配置I/O信号,包括8个数字量输入信号、8个数字量输出信号以及1个模拟量输出信号,工业机器人端远程I/O信号的名称、地址、信号类型及对应的物理孔位详见表1。
表1 机器人端远程I/O信号表
可编程控制器端在TIA Portal中完成对可编程控制器和远程I/O的硬件组态,可编程控制器端远程I/O模块的信号地址、信号类型以及对应的物理模块详见表2,包括一组数字量输入信号、一组数字量输出信号及一组模拟量输入信号。
表2 可编程控制器端远程I/O模块信号表
按照三类情况分别验证工业机器人与可编程控制器的通信,即工业机器人向可编程控制器发送数字量信号、可编程控制器向工业机器人发送数字量信号及工业机器人向可编程控制器发送模拟量信号。
工业机器人通过数字量输出模块FR2108向可编程控制器数字量输入模块FR1108发送数据,并监视可编程控制器对应地址的变量。试验结果如图2所示,机器人对FR2108_1~FR2108_8信号循环写入0和1,机器人端的数字量输出模块FR2108对应的物理孔位也会根据相应的信号来断开和接通,即信号值为0的孔位会断开、信号值为1的孔位会接通。
机器人端的数字量输出模块FR2108的物理孔位通过电缆线与可编程控制器端的数字量输入模块FR1108对应的物理孔位进连接。因此,可编程控制器端的数字量输入模块FR1108的对应孔位也会相应地断开和接通,即可编程控制器端的数字量输入模块FR1108的每个点位也接收到0和1。可编程控制器端的数字量输入模块FR1108将接收到的值传递给可编程控制器对应的I10.0~I10.7地址,即I10.0~I10.7地址也会相应地接收到0和1。由图2可知,可编程控制器对应地址接收到的数据值与机器人对应信号的发送值一致,这说明机器人传递给可编程控制器的数字量信号是正确的。
可编程控制器通过数字量输出模块FR2108向工业机器人数字量输入模块FR1108发送数据,从而监视工业机器人对应地址的变量。试验结果见图3、图4。
可编程控制器向QB10写入0,即Q10.0~Q10.7地址的值都为0,也即可编程控制器端的数字量输出模块FR2108每个孔都是断开的。而机器人端的数字量输入模块FR1108的物理孔位通过电缆线与可编程控制器端的数字量输出模块FR2108对应的物理孔位连接在一起。因此,机器人端的数字量输入模块FR1108的所有孔位都处于断开状态,与之对应的FR1108_1~FR1108_8的信号值都为0。由图3可知,工业机器人对应的所有DI信号接收到的值都为0。
可编程控制器向QB10写入255,Q10.0~Q10.7地址对应的值都变为1,即可编程控制器端的数字量输出模块FR2108的每个孔都为1,因此可编程控制器端的数字量输出模块FR2108的每个孔都变为接通状态。与之对应的是,机器人端的数字量输入模块FR1108的所有孔位也处于接通状态,即FR1108_1~FR1108_8的信号值都为0。由图4可知,工业机器人对应的所有DI信号接收到的值都为1。
由图3和图4的试验结果可以得出,工业机器人对应地址接收到的数据值与可编程控制器的发送值一致,这说明可编程控制器传递给工业机器人的数字量信号是正确的。
工业机器人通过模拟量输出模块FR4004向可编程控制器模拟量输入模块FR3004发送数据,监视可编程控制器对应地址的变量。工业机器人通过程序循环发送变化的实数值,发送值从0开始,每次递增8.2,递增10次后,每次再递减6.5。试验结果如图5所示。由图5可以看出,可编程控制器对应地址接收到的数据值与工业机器人发送值一致,这说明机器人传递给可编程控制器的模拟量信号是正确的。
通过硬件接线将工业机器人端的远程I/O点位与可编程控制器端对应的远程I/O点位连接起来,同时在工业机器人端配置I/O信号,在可编程控制器端组态对应远程I/O模块,并进行试验验证。试验证明工业机器人向可编程控制器发送数字量信号、可编程控制器向工业机器人发送数字量信号及工业机器人向可编程控制器发送模拟量信号都能正确传递,通过远程I/O通信实现工业机器人与可编程控制器的通信,完成二者的数据共享与信息传递,能有效解决通过工业以太网通信存在的GSD文件要单独购买、多任务并行运行模块需单独配置、不同厂家数据格式不一致的问题。