基于RS485串口总线上位机IPC控制机器人的方法及系统与流程

文档序号:11913701阅读:1136来源:国知局
基于RS485串口总线上位机IPC控制机器人的方法及系统与流程

本发明涉及机器人控制领域,具体地,涉及一种基于RS485串口总线上位机IPC控制机器人的方法及系统,即基于RS485(或RS232、RS422)串口总线,上位机IPC与PLC通讯,进而实现对机器人的控制。



背景技术:

mxAutomation是德国库卡机器人提供的软件接口。通过此软件接口,可以实现PLC控制机器人,使机器人可以完全集成到用户的控制系统中。在这个过程中,保留了KUKA控制器KR C4compact以及现有的机械结构。因此,对于系统集成用户而言,可以方便地使用KUKA现有的运动函数,以及安全函数。

PLC(Programmable Logic Controller,可编程逻辑控制器),它是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它具有可靠性高,环境适应性强、灵活通用、使用方便等优点。

尽管mxAutomation为PLC提供了丰富的接口,可以通过PLC实现机器人的所有功能,但是上位机不能通过主程序完全控制机器人。为了保证主程序可以稳定、准确的控制机器人,让其按照指定的路径运动;机器人的当前状态(包括当前错误信息,当前位置等信息)可以实时地显示到上位机的控制台;可以远程消除机器人的报警、错误信息,使其可以继续运动(或者撤回)。必须通过某种机制实现IPC(Industrial Personal Computer,工业个人计算机)与机器人之间的稳定、可靠通讯,从IPC角度来看,机器人相当于其一个外部设备,可以随时读取/改变其状态。因此,有必要提供这种IPC与PLC通讯控制方法,以实现IPC直接控制机器人。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于RS485串口总线上位机IPC控制机器人的方法及系统。

根据本发明提供的基于RS485串口总线上位机IPC控制机器人的方法,包括如下步骤:

步骤1:基于RS485串口总线建立上位机IPC与PLC之间的通讯;

步骤2:上位机IPC通过RS485串口总线向PLC发送字符串;

步骤3:PLC对接收到的字符串进行解析以实现写变量或读变量操作,如果为读操作,PLC将包含变量的字符串打包发送至上位机IPC;

步骤4:上位机IPC对接收到的打包数据进行解析,获得PLC的变量值;

步骤5:上位机IPC根据变量值获得机器人的运行状态,并根据运行状态向PLC发送新的字符串,实现上位机IPC对机器人的控制。

优选地,所述步骤1还包括:设置上位机IPC与PLC的端口参数与RS485串口总线的通讯端口参数一致,所述端口参数包括:波特率,数据位,校验位,停止位。

优选地,还包括:校验步骤,即对上位机IPC发送给PLC的数据进行校验,以及对PLC发送给上位机IPC的数据进行校验;当数据校验成功时,上位机IPC确认PLC已接收到数据;或者PLC发送的数据有效,上位机IPC进行相应地解析;当数据校验失败时,舍弃相应的数据。

优选地,所述步骤3中的写变量的字符串遵循如下协议:起始字符、机器人选择、功能码、变量代号、变量目标值、终止字符;

所述步骤3中在读变量时,PLC打包的包含变量值的字符串遵循如下协议:起始字符,5个BOOL、5个INT、5个DINT、6个REAL数据类型,终止字符。

优选地,还包括:通讯数据的校验步骤;

具体地,对于上位机IPC到PLC的数据,PLC将接收到的数据返还给上位机IPC,上位机IPC将该数据与之前发送给PLC的数据进行比较,如果数据一致,则确认PLC已收到该数据;如果不一致,则重新发送;

而对于PLC到上位机IPC的数据,IPC对接收到的数据,验证该数据的首尾是否包含“\r”来校验,若数据的首尾包含“\r”,则验证成功,若数据的首尾不包含“\r”,则验证失败。

根据本发明提供的基于RS485串口总线上位机IPC控制机器人的系统,包括:多台机器人、交换机、上位机IPC以及PLC;上位机IPC通过RS485串口总线建立与PLC的通信,所述PLC与交换机相连,其中,所述多台机器人均能够通过交换机的局域网络与PLC进行数据传输。

优选地,所述机器人为KUKA机器人,型号为:KR 10R900SIXX,控制器型号:KR C4Compact。

优选地,所述交换机型号为:Rockwell 1783-US8T。

优选地,所述PLC型号为:Rockwell 1769-L33ER。

优选地,所述上位机IPC的配置为:凌华RK-608MB机箱,Intel Core i5,8GB RAM。

与现有技术相比,本发明具有如下的有益效果:

目前IPC与PLC的通讯都是通过某种现有的协议,如基于Modbus/TCP协议;或者基于组态软件的通讯(如西门子的WinCC)。本发明基于RS485总线(也可以用RS232、RS422总线),这是大多数PLC都有的接口,因此适用性更广。另外,本发明提供的基于RS485总线的上位机IPC与PLC通讯控制方法,将PLC对机器人的控制间接地转移到IPC对机器人的控制,可以更加方便的在IPC上开发相应的软件,将对机器人的控制集成进去,从而实现对机器人的控制。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的系统构成图;

图2为本发明IPC与PLC的通讯协议,适用于IPC发送给PLC的字符串;

图3为本发明IPC与PLC的通讯协议,适用于PLC发送给IPC的字符串;

图4为本发明的PLC程序架构示意图;

图5为本发明的上位机程序架构示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

根据本发明提供的基于RS485串口总线上位机IPC控制机器人的方法,包括如下步骤:

步骤1:基于RS485串口总线建立上位机IPC与PLC之间的通讯;

步骤2:上位机IPC通过RS485串口总线向PLC发送字符串;

步骤3:PLC对接收到的字符串进行解析以实现写变量或读变量操作,如果为读操作,PLC将包含变量的字符串打包发送至上位机IPC;

步骤4:上位机IPC对接收到的打包数据进行解析,获得PLC的变量值;

步骤5:上位机IPC根据变量值获得机器人的运行状态,并根据运行状态向PLC发送新的字符串,实现上位机IPC对机器人的控制。

所述步骤1还包括:设置上位机IPC与PLC的端口参数与RS485串口总线的通讯端口参数一致,所述端口参数包括:波特率,数据位,校验位,停止位。

所述基于RS485串口总线上位机IPC控制机器人的方法还包括:校验步骤,即对上位机IPC发送给PLC的数据进行校验,以及对PLC发送给上位机IPC的数据进行校验。当数据校验成功时,上位机IPC确认PLC已接收到数据;或者PLC发送的数据有效,上位机IPC进行相应地解析。当数据校验失败时,舍弃相应的数据。

所述步骤3中的写变量的字符串遵循如下协议:起始字符、机器人选择、功能码、变量代号、变量目标值、终止字符;

所述步骤3中在读变量时,PLC打包的包含变量值的字符串遵循如下协议:起始字符,5个BOOL、5个INT、5个DINT、6个REAL数据类型,终止字符。

所述基于RS485串口总线上位机IPC控制机器人的方法还包括:通讯数据的校验步骤。

具体地,对于上位机IPC到PLC的数据,PLC将接收到的数据返还给上位机IPC,上位机IPC将该数据与之前发送给PLC的数据进行比较,如果数据一致,则确认PLC已收到该数据;如果不一致,则重新发送。

而对于PLC到上位机IPC的数据,IPC对接收到的数据,验证该数据的首尾是否包含“\r”来校验,若数据的首尾包含“\r”,则验证成功,若数据的首尾不包含“\r”,则验证失败。

根据本发明提供的基于RS485串口总线上位机IPC控制机器人的系统,包括:多台机器人、交换机、上位机IPC以及PLC;上位机IPC通过RS485串口总线建立与PLC的通信,所述PLC与交换机相连,其中,所述多台机器人均能够通过交换机的局域网络与PLC进行数据传输。

所述机器人为KUKA机器人,型号为:KR 10R900SIXX,控制器型号:KR C4Compact。

所述交换机型号为:Rockwell 1783-US8T。

所述PLC型号为:Rockwell 1769-L33ER。

所述上位机IPC的配置为:凌华RK-608MB机箱,Intel Core i5,8GB RAM。

如图1所示,包括IPC1、PLC2、交换机3、机器人4、5。所述的PLC2与机器人4、5在由交换机2组成的同一局域网内,它们之间的通讯为Ethernet/IP;所述的IPC1与PLC2通过RS485总线进行连接。

如图2所示为所述的上位机发送给PLC的字符串,包含:起始字符6,用于PLC接收串口数据的标识符,当PLC接收到起始字符时,PLC开始存储;机器人选择7,用于选择相应机器人来控制;功能码8:用于指定对不同变量数据类型进行写操作;变量代号9,每个变量在该数据类型下对应的唯一编号;变量目标值10,写变量时,给变量赋此值;终止字符11,用于PLC接收串口数据的标识符,当PLC接收到终止字符时,PLC停止存储。其中“#”字符用于分隔相邻字符,方便PLC程序的解析。PLC接收到上述字符串后,自动回发给上位机,上位机将之与之前发送的字符串进行比较,完成校验,确保PLC已正确接收到数据。

如图3所示为所述的PLC打包后发送给上位机的字符串。起始字符12、终止字符17用于上位机程序对PLC发送的数据进行校验,当该字符串包含12、17时,表示上位机接收到的数据有效;5个BOOL量13,包含5个BOOL数据类型,按照二进制的方式存储,类似于0000 0101(仅后五位有效);5个INT量14,包含5个INT类型数据,彼此之间以“#”分隔;5个DINT量15,包含5个DINT类型数据,彼此之间以“#”分隔;6个REAL量16包含6个REAL类型数据,彼此之间以“#”分隔。

图4所示为所述的PLC程序流程图。由于IPC读PLC变量基于写PLC变量,因此在初始化S1后,PLC接收IPC发来的字符串S2,通过对字符串的解析S3,写相应的BOOL、INT、Position变量S4,从而执行相应的KUKA指令S5-1。另外,通过写BOOL变量,执行Any2String功能块,最后使能串口发送字符串S5-2。

图5所示为所述的IPC程序流程图。首先启动程序S6,然后启动UI主线程S7-1:负责处理用户对界面的操作,显示相应的数据;串口接收线程S7-2:负责接收串口数据,其中包括对接收到(PLC返回的)数据进行校验;从PLC发送的字符串中解析出相应的变量值。在需要读/写PLC变量S8-1/S8-2时启动串口发送线程S9:负责发送串口数据,实现写PLC变量。

下面以上位机使用串口通讯程序,其它硬件如优选方案所述,给出一个具体的通讯控制过程。

当上位机要更改PLC内部变量代号为“001”的INT数据类型,使其值为2,该变量对应于#1机器人,那么上位机发送的字符串为“\r01#02#001#2\r”,PLC接收到此字符串后,更改相应的变量,并自动回发,上位机将PLC回发的字符串与之前发送的字符串比较,如果相同,证明PLC已正确接收到数据。

当上位机要读PLC内部的数据,首先在PLC程序中将需要读取的变量打包成一个字符串(通过相应的功能块函数);然后控制PLC发送此字符串。

即上位机先发送字符串:

“\r01#01#009#1\r”(执行字符串打包功能块)

“\r01#01#010#1\r”(PLC串口数据的发送使能)

PLC就将字符串:

“\r#21#1#2#3#4#5#11#22#33#44#55#11.11#22.22#33.33#44.44#55.55#66.66#\r”发送到上位机,上位机从中解析出相应的变量值。

实践证明,本发明所涉及的这种基于RS485串口总线,上位机IPC与PLC通讯控制机器人的方法,通讯可靠,错误率极低,而且可操作性强,实现了对两台(也可以是多台)机器人的控制。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1