首页 理论教育物流可视化系统驱动数据建模

物流可视化系统驱动数据建模

【摘要】:整个应用系统的建模分两大部分,上述是场景的几何建模,这部分将主要讨论数据建模。驱动场景的数据建立在多网互联的基础上,主要分为管理数据和控制数据。控制数据,主要来自场地轮胎吊车的控制数据,通过对此信息的获取,可以实时驱动三维场景中场地轮胎吊车的运动。控制数据以快照形式存储于数据库中,因此最终系统的数据全部来自数据库。

整个应用系统的建模分两大部分,上述是场景的几何建模,这部分将主要讨论数据建模。驱动场景的数据建立在多网互联的基础上,主要分为管理数据和控制数据。

图9-18 轮胎吊模型数据结构及各部件运动方式

管理数据,以数据库的形式存储,其中包括有线局域网中运行的管理层数据,也包括码头关键信息节点终端发回的信息,同时数据终端可以作为GPS系统使用,因此可以跟踪集卡的运行路径。

控制数据,主要来自场地轮胎吊车的控制数据,通过对此信息的获取,可以实时驱动三维场景中场地轮胎吊车的运动。控制数据以快照形式存储于数据库中,因此最终系统的数据全部来自数据库。

下面分别对管理数据和控制数据加以介绍。本例中的可视化系统将直接引入一个实时的数据库,并且利用其中若干表的信息来实现实时驱动,即最后场景所生成的画面就是对数据库文字信息的三维呈现,数据库的信息是随时变化的,所以三维场景也在不停地发生装卸作业,更主要的是这个信息是生产过程的真实体现,便于各层管理人员对生产情况的了解。

数据库中,主要用到名为container和bayshunxu的表,这两个表中一共拥有几十个字段,在后面编程处理的过程中,不需要一一读入,因为不是每一个字段都有用处,而且每多一个变量,加大系统资源的开销,所以这里数据建模主要是针对对场景驱动起作用的信息,并且把所有有用的字段按照功能归类,理清编程的思路。

进行实时驱动时需要用到两个表,其中container表对应在场箱的信息,一个在场箱对应一条记录,bayshunxu表的功能是与container表中的信息结合,共同决定某个集装箱的发箱顺序。

① container表。

在container表中,一条记录代表一个集装箱的完整信息,根据应用系统需要实现的功能确定所需的字段有:集装箱箱号(ctnno)、箱位(rpos)、尺寸(size)、船名(vesscd)、航次(voyage)、进出口标志(iocd)、发箱顺序(fx shunxu)、目标船箱位(cellno )。表的样式如图9-19所示,各字段介绍如下。

a.集装箱箱号(ctnno):箱号多由11位字符组成,它在世界范围内统一编码,一般由4位字母+7位数字构成,具有唯一的标识性。

b.集装箱箱位(rpos):集装箱箱位由6位字符组成,它用来确定集装箱在堆场中的位置。前两位代表箱区,第三、四位代表列位,第五位代表行位,第六位代表层高。

c.尺寸(size):可取20、40、45三个值。可视化系统中场景渲染不区别40尺与45尺,所以仅分为20尺、40尺两种。

d.船名(vesscd):指某集装箱属于的船名。

e.航次(voyage):指某集装箱属于的航次。船名和航次的组合具有唯一性。

f.进出口标志(iocd):可取“Ⅰ”或者“O”, “Ⅰ”表示进口航次,“O”表示出口航次。针对出口航次需要进行发箱顺序的判断,而进口航次无须此操作,这时就必须读取该字段进行进出口的判断。

g.目标船箱位(cellno):指一个出口箱放到船上的位置,它由6个字符组成,前两位表示船的倍位,中间两位表示层,后两位表示列位。“倍”是指船长度方向上的截面,一个倍就是船的一个截面。这里真正用到的是前两位的倍位信息。

图9-19 container表

h.目标船层位信息(celldh):该字段取值“D,或“H”,D代表甲板,H代表舱内。该字段与cellno组合构成一个发箱单元,如cellno为031003, celldh为D,则03D就构成了一个发箱单元,同时这两个字段的组合也作为与bayshunxu表的连接字段。

i.发箱顺序(fx shunxu):表示出口航次发箱时,针对船上目的箱位的倍位的发箱顺序,即针对一个发箱单元的发箱顺序,并不是最终的发箱顺序,最终的发箱顺序是由倍的发箱顺序和该倍(发箱单元)的发箱顺序共同决定。

② bayshunxu表。

该表的读取是为了获取倍的发箱顺序,表的样式如图9-20所示。下面介绍一下它各字段的内容,从而引出与container表的关系。

图9-20 bayshunxu表

a.船名(vesscd)、航次(voyage):代表船名和航次。

b.航次标识(voyaio):它是航次信息的另一种标识形式,具有唯一性。

c.桥机号(jihao):它代表针对一个航次作业的桥机号,也称作业线。

d.倍发箱序号(xuhao):该字段可获得倍的发箱顺序。

e.倍位(bayno):代表某个发箱单元。

③两个表之间的连接。

集装箱的大部分基本信息已经在container表中给出,但是在进行出口航次的发箱评判时,需要先知道倍之间的发箱顺序,而这个信息必须在bayshunxu表中获取,所以最终要读取两个表。图9-21说明了两表之间的连接关系。

图9-21 两表连接字段关系图

通过三个条件的对应相等,两个表的数据可以做到一一对应,相当于为container表每条记录后面加上了jihao和xuhao字段。

终端的交互功能可以最终完成集装箱箱位信息的确认。

因此,以卸船箱为例,多网互联的数据获取过程是:岸吊旁手持终端对于岸边、场吊、集卡等码头移动设备上,车载终端或手持终端可以获得移动节点的重要信息。

岸吊旁的手持终端可以确认一个集装箱卸船作业的结束时间,标志卸船箱已经从船上卸至集卡,并从岸边出发向堆场运输。

集卡上的车载终端可以发挥GPS的功能,实时记录集卡的运输情况,可用于集卡在堆场中的定位。

场吊上的车载终端可以发挥GPS的作用,跟踪场吊的位置移动,同时发出的车子开向堆场的信号→集卡车载终端GPS车辆定位信息→场吊终端GPS场吊大车定位信息→场吊反映小车运动的控制信息→场吊终端对集装箱箱位的最终确认,写入数据库container表中。

数据库中的信息与编程是为编程服务的,需要弄清每个字段的作用,也就是它们在编程驱动时发挥的作用。

应用系统要完成的三大功能是:实时再现生产过程,箱信息查询渲染以及发箱顺序评价。编程之前应该建立与数据库连接的数据源。应用系统通过数据源与数据库连接,建立两个分别对应两个表的数据集,这样这些字段就被读入程序中,各字段的功能各有不同,在程序中各自起到了不同的作用。

初始渲染场景时,渲染的原则就是根据集装箱的箱位和尺寸在场景中增加集装箱,当数据库实时变化,三维场景也跟着变化,依据前后两次读取数据库的不同决定是否有装卸作业发生,并依据多网互联的各种信息完成生产过程的跟踪。

查询分为条件查询和点击查询。条件查询是按照箱位、箱号、船名、航次四者之一为条件进行的,如果按照船名、航次查询,返回的是若干个记录,如果按照箱位、箱号查询则返回一个记录。点击查询是利用三维软件空间景深的特性实现三维物体的点击查询。

发箱顺序的评价是嵌入在查询功能中的,这时需要先判断航次的进出口标志,如果是出口航次才进行发箱顺序的评价,此处需要用到两个表的连接,在bayshunxu表中获取某倍的发箱顺序,在container表中获取某倍中箱子的发箱顺序,通过这两者的结合得出某个箱子相对于整个航次的发箱顺序。在具体的作业过程中,一个航次通常是几条作业线并行作业,所以还应该分作业线来分析,最终得到的信息就是箱子相对于该航次某作业线的发箱顺序。由于各作业线之间的箱子分布无法做到完全独立,即不同作业线之间的箱子存在压箱现象,所以在评价时就涉及一个最理想的情况和最不理想的情况,实际的情况在这两个临界值之间。