1 引言
数据库可以实现数据的表格化处理,使程序功能得到极大的增强。在plc的应用中,一般针对逻辑控制的对象,很少涉及数据库的功能实现。但随着plc应用的日益广泛,高端的plc中逐步引入了一些数据表的操作的功能,利用这些指令可以实现简单的数据库功能,使plc的应用更为灵活,程序功能更强。
cc-link是三菱公司提供的面向现场应用的一种plc现场总线网络系统,利用cc-link网络模块可以实现异地plc之间的信息通信和共享。本文讨论在cc-link网络系统及plc中实现具有异地数据共享的网络数据表功能。
2 系统的构成
图1是一个喷漆机器人的系统构成。
图1 喷漆控制系统
喷漆系统应用在连续喷涂的生产线中,根据客户及机器人的要求,在生产线的上件处设置信息录入系统输入工件的信息,在喷房区域设置工件检测确认系统,检测输送机上的工件状态,查询工件的信息并发送给机器人。因此在工件上件处和喷房分别设置了plc站,plc站和四台机器人之间通过CC-Link系统连接成一个网络系统,利用cc-link的网络通信功能实现系统的信息通信。
在这个系统中,要求实现如下的数据库功能:在上件处录入信息,在喷房处检测工件状态并将对应的录入信息发送给机器人,同时在上件处和喷房处能够同步显示已录入的信息及其状态,而且两地都能够实现对已录入信息的修改、删除、查询、插入等功能。
3 功能实现
3.1数据库的建立
为了数据的唯一性及数据库实现的方便,数据库建立在本地站,录入站的数据操作通过指针对本地站的数据库进行相应的操作,两站之间通过cc-link进行数据交换。
首先是数据表的建立。受plc特点的限制,建立数据表时要根据设计的要求预先确定数据表中每个字段的最大存储要求,根据该存储量对表格中的每个变量字段分配一段连续的存储区。在本文的应用中,根据机器人的要求,必须建立两个数据表。其中第一个表格记录录入程序的信息,该表格包括以下字段:程序号,颜色,要处理的工件数量,程序的状态。第二个表格记录每个工件的当前位置,工件的对应程序在第一个表格中的位置。在本系统中,最大的工件程序限定为100个,最大的待处理工件数也限定为100个,因此两个数据表的长度都限定在100的范围内,为此建立表格如表1、表2所示。
表1 程序表
表2 工件队列表
上述两表中的第二行表示在plc中分配给对应字段的内存地址。其中工件队列表中"工件的对应程序位置"字段的值指向该工件所需处理程序在程序表中的位置,因此两表之间构成了相关的关系。
第二步是指针的建立,在q系列plc指令系统中提供了基本的数据表指令,但为了实现更灵活的功能需要建立指针。对工件队列表建立查表指针d8000和指向数据表末端的指针d8001,利用d8000可以查询表中的任意记录,利用d8001可以将新的工件信息正确地录入到数据表中,从而建立起正确的工件队列信息。
由于程序表需要在本地站和录入站中进行表格显示,因此对程序表建立本地站数据显示表格的表头对应的指针d8002,表尾对应的指针d8003以及查表指针d8004,相应地针对录入站的操作也有对应的一组指针d8005,d8006,d8007。为了数据的录入,建立程序表的表尾指针d8008。对应正在处理的程序,建立跟踪当前处理程序的指针d8009。
3.2 数据库基本功能的实现
数据库基本的功能包括添加、插入、修改、删除、查询等操作。
其中,plc本身提供了数据表的添加、插入、删除指令,他们是:添加指令fifw将数据写入到数据表的末尾,插入指令为fins,删除指令为fdel分别在表格的对应位置插入或删除数据。查询、修改功能没有对应的plc指令,但可以利用plc提供的变址访问功能实现。以查询为例:查询指针记录了表中的查询位置,利用以下程序,可以查询到程序表中某个记录的值。
修改功能则是对指针所指向的存储器的值进行修改即可。但是,在实现上述功能时,都会涉及到某些指针的修改,plc本身并不提供指针的自动修改功能,因此必须在功能实现时,及时对指针进行修改。考虑到plc梯形图程序是按顺序扫描执行,因此在进行功能实现和指针修改时,可以不用考虑相互功能实现之间的影响。
3.3 数据的异地访问
在我们的系统中,以喷房的本地站为主站,录入处的plc为子站,并且分配四个逻辑子站给子站plc。在录入站中要实现程序数据的录入和主站中的程序表的显示,因此利用cc-l
ink网络,将录入站的数据库操作命令及数据写入或从本地站读入数据。但是,对于每个子站,cc-link规定了远程输入点和远程输出点各16位,而写远程寄存器和读远程寄存器各4个,本系统中,对数据库的写入只需要3个寄存器,但因为在子站的表格的显示需要,需要每次从主站读入20个数据,而4个cc-link子站提供的读远程寄存器只有16个,如果寄存器与数据一一对应,则实际的寄存器数量满足不了需要。为了解决这个问题,将子站的操作指针直接设置在主站,主站根据子站的操作命令对该指针进行修改或调用,然后将需要的数据返回子站。返回时,将20个数据通过数据之间的组合编码,转换为16个字的内容,通过cc-link返回给子站,在子站再进行解码,还原出20个对应的数据进行显示。
4 结束语
通过上述的分析,利用plc本身的数据表指令以及变址访问的应用,可以在plc中实现数据库的基本功能,而通过cc-link的网络数据通信功能以及数据变换编码的技术可以实现数据库中异地数据的录入及查询显示功能。