基于FINS协议的AGV无线控制的实现
2015-06-26许丹
许丹
(上海交通大学 软件学院,上海 200240)
0 引言
随着计算机集成制造系统技术的逐步发展和工厂运作自动化的趋势,自动化立体仓库和柔性制造系统的广泛应用,AGV作为调节和联系离散型物流系统,使其作业连续化的必要的自动化装卸搬运手段,其应用范围和技术水平得到迅猛发展[1]。AGV物流机器人的使用也渐渐普及,应用遍及各行各业,如:传统生产物料运输、柔性装配线、加工线等。
Automated Guided Vehicle,简称AGV,是指装有电磁或光学等自动导引装置,能够沿规定路径行驶,且具有安全保护以及各种移动装载功能的运输车[2]。AGV在工业应用中不需驾驶员,以可反复充电的蓄电池作为动力来源,一般可以通过电脑来控制其行进路线以及行为,或利用电磁轨道来设定其行进路线,电磁轨道粘贴于地板上,依靠电磁轨道及埋入其中的RFID卡来控制其行动。
目前,对于AGV的应用虽然较为广泛,但大部分都只是采用了单机或单任务运作的方式,缺少与上层软件及控制系统的配合调度,使AGV应用的发展受到了一定的限制。为此,研发一套可以适用于实际工厂生产制造使用的多站点、多AGV协同调度系统就显得非常重要,而不同设备间的通讯协议又成了控制系统的中枢神经。
1 系统架构
如图1所示,上位机、AGV小车、欧姆龙PLC以及工厂MES系统服务器通过工业局域网连接。其中,上位机、欧姆龙PLC通过有线网络连接到MOXA工业交换机,AGV小车通过工业WIFI无线网络连接到MOXA无线AP,MOXA工业交换机与无线AP之间通过有线网络连接组成整个局域网。工厂现场的操作按钮盒与警示灯则通过电气接线连接到欧姆龙PLC。
系统作业时,计算机通过无线电通讯系统自动将任务分配给离任务作业点最近的(由路径规划中段上小车行走时间确定)AGV小车[3]。AGV小车根据作业指令完成相应的启动、停止或急停操作,上位机软件画面见图2。
2 通讯控制方式
2.1 上位机与AGV小车
上位机与AGV小车之间通过AGV专用协议进行通讯。上位机每秒向所有AGV发送一次查询指令,AGV收到查询指令后将自己的编号、当前地标号、地标功能、状态、报警信息及路线信息反馈给上位机。
2.2 上位机与PLC
上位机与PLC之间的通讯协议分为网络传输协议与控制协议网络传输协议即采用欧姆龙PLC的FINS协议进行网络通讯。上位机根据FINS协议的规定将消息报文以固定的格式与PLC之间进行数据交互。
控制协议是在软件开发过程中自定义的协议,其作用是将AGV专用协议转换成PLC控制程序可以识别的协议。
图1 系统架构图
图2 上位机软件画面
3 通信协议
3.1 AGV专用协议
AGV专用协议是由AGV厂商提供的出厂协议,用于实现AGV与上位机的信息交互。它包含了查询与控制两种协议。
3.2 协议格式
协议格式如表1所示。
3.3 FINS 协议
FINS通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令相应系统。使用FINS指令可实现各种网络之间的无缝通信,包括Ethernet网、Controller Link网等。FINS指令是欧姆龙网络通信协议的核心。Ethernet网、Controller Link网或串口都可以通过FINS指令实现通信[4]。使用FINS协议,欧姆龙可编程控制器作为TCP服务器,用户需开发TCP客户端程序[5]。
表1 AGV专用协议格式
3.3.1 协议结构
FINS指令包含FINS报文头及命令帧或响应帧,FINS协议的命令帧与响应帧框架结构如表2~表4所示。
表2 命令帧格式
表3 响应帧格式
表4 ICF:信息控制域,用于标明指令和响应
Bit0:“0”表示需要响应,“1”表示不需要响应。
Bit6:“0”表示该条命令为指令,“1”表示该条命令为响应。
Bit7:“0”表示不使用网关,“1”表示使用网关。一般总是置1
RSV:默认为00
GCT:网关允许数,默认为02
DNA:目标网络地址
“00”表示本地网络
“01-7F”表示远程网络地址(1-127)
DA1:目的节点号,计算机IP地址(十六进制)
DA2:目的单元号,“00”表示CPU单元
SNA:源网络地址:“00”表示本地网络
SA1:源节点号,PLC设定的IP地址(十六进制)
SA2:源单元地址,“00”表示CPU单元(PLC)
SID:服务标识:识别服务来自何处
CMD:命令码
“0101”表示读取
“0102”表示写入
RSD:响应码
TXT:正文
3.3.2 建立通讯
使用FINS协议进行网络通信,首先要进行握手建立通讯:
采用socket tool测试工具,从计算机向PLC发送数据
“46494E530000000C000000000000000000000064”
PLC收到数据包后返回应答数据
“46494E530000000C00000000000000000000006400000001”
这样即表示通过握手建立了通讯。
3.3.3 数据交互
计算机使用FINS协议向PLC的D0寄存器写入数据:
“46494E53000000240000000200000000800002000100006400 00010282000000000512345678901234567890”
3.4 自定义协议
自定义协议是在控制程序编写过程中根据实际数据通讯需求而自行定义的部分通讯协议。这部分协议主要用于处理AGV小车的状态信息及各工位的控制按钮信息,简化上位机与PLC之间的控制流程。当前使用的自定义协议包括小车受控信息协议及工位按钮信息协议。
3.4.1 小车受控信息协议
小车受控信息协议包含了小车运行状态及所属控制工位两种信息。上位机通过轮询命令获取各个小车的运行状态(运行或停止)及当前所属的地标号并加以处理,并根据小车受控信息协议将信息实时更新到PLC。
小车受控信息协议内容如表5所示。
(1)为每辆AGV小车分配一个固定的数据寄存器:D500-D514对应1号-15号AGV小车。
(2)每个数据寄存器D的协议格式
表5 受控信息寄存器协议格式
3.4.2 工位按钮信息协议
工位按钮信息协议用于将工位按钮发出的控制信息经PLC处理后发送给上位机,并控制相应的AGV小车。该协议信息中包含了发出控制信息的按钮所在的工位号、按钮需要实现的功能以及控制对应AGV小车的编号(见表6)。
工位号:由1个数据字组成,Bit0-Bit12分别对应工位1-工位13
按钮功能分为4种,启动:0001;放行:0002;拍停:0003;急停:0004;复位:0005
小车号:由1个数据字组成,Bit0-Bit14分别对应1号AGV小车-15号AGV小车
表6 工位按钮信息协议格式
通过以上两个自定义协议,就在AGV小车、上位机及PLC之间建立起了沟通的桥梁,使整个通讯、控制流程变得容易和可能。
4 实现控制
根据之前的协议定义,现以1号小车及4号工位为例实现控制:假设1号AGV为停止状态,当前地标位为4号工位,现在操作人员需要通过按下4号工位的启动按钮控制1号AGV运行(见图3)。
(1)上位机由轮询获取到1号AGV的状态,通过信息处理,将1号AGV“停止状态”、“4号工位”信息更新到PLC的内部寄存器D500。上位机根据FINS协议格式,向PLC发送数据:“94E530000001C0000000200000 0008000020001000064000001028201F 400010008”完成该功能。
(2)PLC收到该信号后,即得到了1号AGV的状态:1号AGV目前停止在4号工位上。此时PLC收到来自4号工位的启动按钮信号,经PLC内部逻辑判断后确定由1号AGV响应该按钮的控制要求,PLC即向上位机发送数据“46494E5300000024000000020000 0000800002006400000100010102 82000A000005201800080002000105CD”即通知上位机4号工位的启动按钮发出信号并要求放行1号AGV。
图3 上位机软件控制框图
(3)上位机收到PLC指令后,将该指令信息记录在案,并立即根据AGV专用协议向1号AGV发送数据“20170101000000003 705”通知1号AGV启动。
(4)1号AGV收到上位机指令后立即启动并同时回复上位机“20270108004001014E05”表示自己已收到命令并已启动。至此,一套完整的控制流程完成。
5 结束语
随着科学技术的发展以及信息化的普及,通讯问题已经在控制领域中越来越突出地体现出来。无论是单体元器件本身的通讯亦或是各个不同厂商、不同型号的控制元器件之间的通讯,都是系统集成过程中需要解决的最主要的问题之一。而解决通讯问题的关键还是需要对各元器件本身的通讯方式及通讯协议深入地理解,并采用一套行之有效的方法将各种协议糅合在一起或互相转换。若在必要时采用计算机进行辅助信息处理,会使控制变得更高效、更稳定。
[1]张国亚.自动导引小车的设计与实现[D].武汉:武汉科技大学,2008.
[2]陈超,叶庆泰.基于图像引导的自动小车系统设计[J].机械设计与研究,2004,20(1):65-67.
[3]刘书婷,夏利霞.自动引导AGV小车在汽车生产线上的应用[J].大科技(科技天地),2011,2(5):167-168.
[4]FINS Commands Reference Manual[K].日本:OMRON,2001.
[5]刘保杰,吕卫星,张立锋,等.基于FINS协议和协议宏的控制网络通信的实现[J].中国原子能科学研究院年报,2011,34:164-165.
[6]狄敬国,李秀美,王凤杰.基于FINS协议的计算机与PLC的通信[J].中国农机化学报,2012,29(5):153-156.