张 磊,雷 斌,高 博
(兰州交通大学机电技术研究所,兰州730070)
自动化立体仓库作为CIMS(Computer Intergrated Manufacturing Systems,计算机集成制造系统)和FMS(Flexible Maunfacture System,柔性制造系统)的一部分,是生产加工环节中的一个缓冲环节。它是一个将毛坯、半成品、配套件或成品、工具等物料自动存取、自动检索的多层仓库存储系统。现在智能化仓储技术还处于初级发展阶段,自动化立体仓库仍是目前市场的主体。随着中国企业规模的扩大和数量的增加,以及重视与合理应用土地这一稀缺资源的意识不断增强,自动化立体仓库必将得到更广泛使用。
自动化立体仓库设备主要包括堆垛机、输送机等,这些设备由PLC控制。对这些设备的监控实际上就是上位监控计算机向控制相应设备的PLC发操作控制指令,同时接收下位PLC报告的设备工作信息。
设备监控系统功能一般包括设备调度、设备工作状态显示、记录、报警、操作引导信息显示、条码读取等。监控通信协议对于系统实现安全和高效的监控和调度是一个关键,设备监控通信协议需要考虑监控对象的工作特点和数据传输实时性要求以及可靠性要求。
系统监控可以分解成控制和监视两个任务。控制是指上位监控计算机给PLC发送操作指令。操作指令类型包括:出库、入库、拣选出库、库内搬移。每条指令除了指令类型信息,还包括操作的操作地址,以及确认信息。监视主要是指记录和显示设备工作的状况,主要是故障状况。立体仓库监控系统主要完成对入库输送机和堆垛机的监控。
本设计选择的基于以太网的设备监控通信协议层次模型,如图1。
图1 监控通信协议层次模型
在传输层采用UDP/IP协议。UDP是一种无连接的传输协议,位于IP协议的上层。UDP采用简单的校验和技术进行差错控制,不处理流量控制。同TCP协议相比,UDP传输不需要建立连接,报文简单,传输的额外负载小,使得数据传输效率非常高,适用于实时通信。但UDP无法解决以太网本身通信不确定性和冲突的问题。这些问题可通过两种方法结合解决:(1)在底层采用交换式以太网技术。(2)在应用层设计可靠的通信协议。
2.2.1 数据结构
为了防止通信对PLC输入输出映像区的占用和干扰,最好不要直接对输入输出映像区进行读写。同时为了方便实现用户层应答协议,常用的方法是在PLC数据存储器开辟2个数据区“窗口”,作为通信数据区。一块数据区用于监控计算机发送指令,称为PC写区,专门由监控计算机写,PLC读。另一块用于PLC报告状态,称为PLC写区,专门由PLC写,监控计算机读。
PLC检出故障后需要向监控计算机报告,如果把所有检测到的状态位(“0”表示正常、“1”表示故障)都传到监控计算机,则信息量太大。例如,8个位置的超限故障则需要8 byte表示。对其进行压缩是必要的,最常用的办法是对故障状况进行编码,形成故障代码。故障状况以故障代码形式发送给监控计算机,监控计算机把故障代码翻译成具体故障描述,在监控界面上显示、报警,并记录到数据库,以备查询。由于正常状态没必要报告,在正常情况下下位机不报告异常。系统中涉及的故障代码包括堆垛机故障代码和输送机故障代码。
2.2.2 通信原理及步骤
数据通信的关键在于数据的实时性和准确性。以PC向PLC发送数据为例,不仅要保证数据正确发送,还要保证PLC正确读入。由于双方各有独立的数据块,PC将数据写到自己的数据块中后,应等到PLC将数据读入自己的数据块中后,校验PLC的读取是否正确。
基本通信步骤如下:
(1) PC发送指令允许为1时,表示PLC可以接收指令。PC在PC写区中写入指令。(2) PLC在事件号发生变化时,将指令读入,验证指令合法性,验证通过则清零PC发送指令允许,并将PC写区“确认信息码”置为1。表示PLC已经读到指令数据,并禁止PC发送指令。(3) PC在收到“确认信息码”为1后,表示指令发送成功。双方作相应的处理后进行第2次通信。
下位机执行完一条指令后通过将“PC指令发送允许”置为1,向上位机报告。上位机接到完成报告后,即可发送下一条指令。通信过程中出现任何异常,下位机必须通知上位机,并结束此次通信,作相应的异常处理后,重新开始下一轮数据交换;若连续3次通信异常,系统将发出警告或停止运行。若下位机执行指令过程中出现异常,应停止运行并向上位机报告,等待管理员处理后重新联机运行。
按照上述监控系统通信协议来完成监控,所需数据包括指令信息,条码信息,PC写区以及PLC写区等几部分组成。
指令信息来源于监控系统与管理系统的公共数据库。首先在数据库中建立指令缓冲表,无线终端作为数据产生者向数据库中写入指令,而监控系统作为数据使用者从数据库取走指令,构成生产者-消费者通信模式。通过SQL语句,监控系统可以从公共数据库中获取指令信息。当指令处理过程中,可以进一步通过SQL语句完成对指令信息的修改。
条码信息的获取是通过映射得到的固定条码扫描仪端口获得的。经过映射后,监控系统可以像使用监控机本机所配的串口设备一样使用该串口。通过加载VB程序中的RS-232串口通信控件,并进行相应的串口参数设置后即可通过该串口获取条码信息。
PC写区以及PLC写区这两部分信息为PLC的两个数据块。完成对这两个数据块操作,必须通过OPC服务器来实现。
监控系统启动时,首先建立与公共数据库的链接。连接代码如下所示:
If Conn.State Then Conn.Close Conn.Open Connstring
在与下位PLC建立连接的同时,应打开A区左右两侧的固定条码扫描仪对应串口。代码如下。
' 串口波特率设置
ComA.Settings 9600, n, 8, 1
ComB.Settings 9600, n, 8, 1
'串口接收门槛值设置
ComA.RThreshold = 7
ComB.RThreshold = 7
' 打开串口
If ComA.PortOpen = False Then ComA.PortOpen = True
If ComB.PortOpen = False Then ComB.PortOpen = True
串口打开后在OnComm事件中即可接收条码信息。具体处理流程如图3。
基于OPC技术规范的实时数据访问方法主要有同步访问、异步访问和数据订阅3种访问方式。本系统中采用了同步方式和订阅方式两种方式完成数据访问。
系统中的输送机占位状态、PC指令发送允许,堆垛机箱号和删除通知标志位等数据为实时更新数据,在监控系统工作是需借助这些变量来完成系统工作,因而加入到了同步方式数据组,可以随时采集该组变量信息。
输送机报警、堆垛机报警,自动模式变换和PLC数据删除通知,这几类数据平常是不会发生变化的,不需要定时采集,而且这些变量是不需要监控机干预的,它反映了下位PLC系统的工作状态,为只读数据。比如输送机报警,输送机正常工作时没有报警发生,则PLC数据块中输送机报警字恒为零。一旦发生报警,则输送机报警字将发生变化,此时需要通知PC。采用订阅方式时,一旦数据发生变化,则OPC服务器将自动通知监控程序,监控程序则可以做出相应的处理。这样则节省程序定时去查询这类数据,而让OPC服务器来完成查询工作,可以提高系统运行效率,节约系统资源。
图3 串口接收数据处理流程
作为可靠的通信标准,以太网侧重于数据处理方面,它满足了制造业自动化现场级的部分要求,但有些现场级的要求是以太网所不能满足的,例如过程自动化系统中需要本质安全防爆要求等等。因此,还需要进一步加以完善。本系统自投入以来,运行状况良好,精确地完成了50 000余件托盘的出/入库操作,入库准确率达到了99.2%,库存准确率达到了99.8%,有效提高了仓库运行效率40%以上,同时还缩短了企业供货时间,降低了企业生产成本,为公司带来了明显的经济效益。
[1] 张春城. 对基于以太网的多路数据进行统计复用的研究与实现[D] . 成都:电子科技大学,2002 .
[2] 陆超,张曦煌. 基于工业以太网实时协议的改进[J] . 计算机应用,2005(10) .
[3] 方晓柯. 现场总线网络技术的研究[D] . 沈阳:东北大学,2005 .