无缝钢管物料跟踪系统设计规格说明书
连轧无缝钢管
1 编写目的
本文档是为 无缝钢管物料跟踪系统(以下简称物料跟踪系统)的实现,提供设计指导。本文的预期读者为: 无缝钢管物料跟踪系统项目的需求管理人员、设计和开发人员、测试人员等。
2 术语定义
3 物料跟踪系统的软件设计
物料跟踪系统的软件结构,如图3.1所示。
整个软件系统,使用数据库,将业务数据和界面所需数据进行分离,即业务定时完成逻辑处理,产生界面需要的各种数据,并将其存储在数据库;而界面部分定时从数据库获取数据,并将其组织并形象地显示出来。以此也降低了整个系统界面和业务之间的耦合性。物料跟踪系统的基本数据流图,如图3.2所示
图3.1 物料跟踪系统的软件结构
图3.2 物料跟踪系统的基本数据流图
3.1 界面层
界面层,主要是完成各种跟踪画面的显示,显示的内容包括设备状态、管材基本信息、各种工艺流程中的生产统计信息等。界面层的设计包括以下几方面内容:
⏹ 画面设计思路 ⏹ 画面设计方案 ⏹ 画面类设计
注意,界面部分并不直接与业务层交互信息,它是直接通过对数据库(以下简称DB )访问,实现界面所需数据的刷新。
3.1.1 画面设计思路
物料跟踪系统的画面分为主页面和分页面,主页面表示整个生产线的全部设备状态和物料流动的跟踪,分页面是表示生产线某一部分的设备状态和物料流动的跟踪。
无论是主页面还是分页面,都是采用1024*768的分辨率。 当用户双击画面设备时,将弹出该设备的状态和生产情况。
画面显示与跟踪数据分开,关闭画面时跟踪也是进行的。画面只是显示跟踪的情况。
3.1.2 画面设计方案
物料跟踪系统画面总体设计的方案为:
⏹ 整个画面是所有的设备采用相同的显示模版加载不同的设备图片,
在画面上按照生产线顺序组合而成。 ⏹ 生产跟踪分为管材位置显示和管材工艺流程跟踪。管材位置显示,
指通过查询数据库,得到每个设备上所有管材的信息并显示出来。管材工艺流程跟踪,指在生产画面上用虚线示意生产计划所用的工艺流程方向,因为不同生产计划采用不同的工艺流程。 ⏹ 所有的设备类图形抽象出一个基类,这个基础类的属性包括了所在
的画面的位置,设备的编号,是否可以工作,显示图片;这个类的方法包括设置画面位置,设置是否可以工作,设置显示图片。所有的设备类需要继承这个基础类。 各个画面类之间继承关系如图3.3所示。
图3.3 各个类之间继承关系
设计跟踪画面时,在辊道类中表示该辊道是否分流;若需要分流,则判断管材生产的流向;若不需要分流,则无需判断管材生产的流向。管材流向的表示方法为:用带有方向的线,把管材流向所经过的生产设备连接起来。
管材位置显示是生产设备定时查询数据库,得到该设备上面所有管材的信息,根据信息把管材表示出来的过程。
3.1.3 画面类设计
3.1.3.1 基类设计
class CEquipmentBase {
public:
CEquipmentBase(); virtual ~CEquipmentBase();
public:
//设备编号
char _szEquipmentName[DEFAULT_EQUIPMENT_NAME_LEN]; //设备显示位置 CRect m_PositionRect; //设备是否可以工作
BOOL m_bWork; //设备是否报警
BOOL m_bAlarm; //设备的显示图片
CBitmap*m_pBitMapBK; //设备上钢管列表
m_pCudgelList;
CPtrList public:
virtual void MoveTo(CPoint point) = 0; virtual void Draw(CDC *pDC) = 0; virtual void GetSteelTubeData() = 0;
};
3.1.3.2 辊道类设计
class CTramroadObj : public CEquipmentBase { public:
CTramroadObj(); void void
DrawEmbranchment(); GetSteelTubeData();
//画工艺流程线
private:
};
3.1.3.3 带锯类设计
class CMaterialSawObj : public CEquipmentBase { public:
CMaterialSawObj(); void AddFinished(); void CleanFinished(); void SetBusy(BOOL bBusy); void Draw(CDC *pDC = NULL); private: };
3.1.3.4 台架类设计
class CTableBoardObj : public CEquipmentBase { public: };
3.1.3.5 链床类设计
class CChainBeltObj : public CEquipmentBase { public:
int m_nFinished; m_bBusy;
//已经锯几次 //是否在锯
BOOL
CTableBoardObj(); void GetSteelTubeData(); void Draw(CDC *pDC = NULL);
CChainBeltObj(); void GetSteelTubeData(); void Draw(CDC *pDC = NULL);
3.1.3.6 加热炉类设计
class CFurnaceObj : public CEquipmentBase { public:
CFurnaceObj(); void GetSteelTubeData(); void Draw(CDC *pDC = NULL); void SetPace(float fPace); void GetPace();
private: };
3.1.3.7 冷床类设计
class CCoolingObj : public CEquipmentBase { public: };
3.1.3.8 加工机器类设计
class CMachiningObj : public CEquipmentBase { public: };
float m_fPace; //速度
CCoolingObj(); void GetSteelTubeData(); void Draw(CDC *pDC = NULL);
CMachiningObj(); void GetSteelTubeData(); void Draw(CDC *pDC = NULL);
3.2 业务层
业务层由以下几层组成: ⏹ 跟踪控制层 ⏹ 跟踪实现层 ⏹ 跟踪实体层
3.2.1 跟踪控制层
跟踪控制层,主要实现流程的循环控制,而且整个物料跟踪系统的主流程只有一个,即:采集基础自动化(以下简称L1)信号—>根据信号变化,进行逻辑判断,调用相应的跟踪实现—>设备状态和管材状态更新—>向L1发送命令—>时间延时—>采集L1信号……,依此循环。
3.2.2 跟踪实现层
跟踪实现层,主要根据跟踪控制的要求,去组合并调用跟踪实体模块,实现各个工艺流程段的跟踪。
根据生产线工作区的分布,将实现分为5个部分:
⏹ 管坯区跟踪:跟踪的设备段包括入口段、锯切段、输送段和环形炉
段,每段包含的逻辑处理并不相同,其中入口段、锯切段的逻辑相对复杂一些。 ⏹ 热轧区跟踪:跟踪的设备包括链床、穿孔机、、冷床、连轧机等,
各个设备的逻辑处理相对都比较简单。 ⏹ 再加热炉区跟踪:跟踪的设备包括常化冷床、再加热炉、输送辊道、
张减机等,各个设备的逻辑处理相对都比较简单。另外,管材是否经过常化冷床和再加热炉,需要根据工艺确定。 ⏹ 冷床区跟踪:跟踪的设备包括冷床本体、输送辊道、排管锯、链床
等,各个设备的逻辑处理相对都比较简单。 ⏹ 预精整区跟踪:跟踪的设备包括输送辊道、矫直机、吹吸灰装置、
检查链、测长、称重、喷标和打印设备等。各个设备的逻辑处理相对都比较简单。
3.2.3 跟踪实体层
跟踪实体层,主要是基本的跟踪单元。每个跟踪实体提供特定的接口,供跟踪实现层调用。其中,基本的跟踪实体包括:
⏹ 计划管理
⏹ L1信号采集与更新 ⏹ 逻辑管理 ⏹ 设备状态更新 ⏹ 管材属性更新 ⏹ L2命令管理 ⏹ 生产信息统计 ⏹ 库房管理 3.2.3.1 计划管理
3.2.3.1.1 基本功能描述
从生产管理系统获得生产计划信息,并将该信息存入物料跟踪系统的数据库,并提供方法,能够对这些信息进行添加、删除和查询等操作。 3.2.3.1.2 性能
无
3.2.3.1.3 输人项
输入项为来自于生产管理系统的计划信息,包括:计划号,批次号,炉号,倍尺坯的钢种、规格、长度和数量,以及倍尺数,计划生产的钢管规格、长度、数量等。 3.2.3.1.4 输出项
输出项为经过处理后的计划信息,内容基本同输入项信息,只是格式有些差异,详见数据库设计部分。 3.2.3.1.5 算法
无特殊算法。 3.2.3.1.6 流程逻辑
计划管理的基本流程包括两部分:
⏹ 调用数据库访问接口,访问生产管理数据库,查询获取本次生产计
划信息。 ⏹ 调用数据库访问接口,访问生产管理数据库,进行查询、添加、删
除和更新生产计划信息。 3.2.3.1.7 接口
计划管理对外的接口:
⏹ 上层调用接口:提供管坯区跟踪入口部分调用,采用接口函数形式。 ⏹ 下层调用接口:数据访问接口,详见3.3.1。
3.2.3.1.8 限制条件
计划管理模块运行的前提条件是:生产管理系统有新的生产计划任务时下发。
3.2.3.2 L1信号采集与更新 3.2.3.2.1 基本功能描述
通过OPC 通讯方式,获取L1传递过来的信号,并对变化的信号进行更新。 3.2.3.2.2 性能
信号采集与更新的实时性为:小于等于1次/秒。 3.2.3.2.3 输人项
输入项为通过OPC 通讯方式,获得各个PLC 特定内存的信息。 3.2.3.2.4 输出项
输出项为标识各种管材位置和设备状态的信号。 3.2.3.2.5 算法
无特殊算法。 3.2.3.2.6 流程逻辑
L1信号采集与更新的基本流程包括三部分:
⏹ 通过OPC Client,获取各个PLC 特定内存的内容。
⏹ 将给内存的内容,进行分类和解析;并与原来的信号进行对比,将
变化的信号组织成特定的格式,供上层的跟踪实现层确定,执行那部分跟踪实体模块。 ⏹ 调用数据库更新接口,将信号的变化更新到对应的数据库表中。 3.2.3.2.7 接口
L1信号采集与更新对外的接口:
⏹ 上层调用接口:提供特定格式的变化信号,供上层的跟踪实现层。 ⏹ 下层调用接口:数据访问接口,详见3.3.1.4。 3.2.3.2.8 限制条件
无。
3.2.3.3 面向画面的逻辑管理 3.2.3.3.1 基本功能描述
根据信号表的变化,确定是那些区域发生的变化对画面的显示效果产生影响,调用对应的逻辑处理。
3.2.3.3.2 性能
无
3.2.3.3.3 输人项
输入项为变化的信号表。 3.2.3.3.4 输出项
输出项为画面显示需要的逻辑状态标识。 3.2.3.3.5 算法
当物料从单支流向变成多分支流向时,需要依据原则“数量最少者优先,距离最近者优先,而且前者优先级高于后者”。 3.2.3.3.6 流程逻辑
面向画面的逻辑管理,其基本流程需要逻辑判断的主要有两类: ⏹ 单支流向变成多分支流向类,通过3.2.3.3.5节确定的原则,来判断
合理的管材运动路径。 ⏹ 设备运行异常类:当设备运行异常时,都会影响单支流向变成多分
支流向的逻辑判断,因此,设计逻辑时,必须考虑设备的工作状态。 面向画面的逻辑管理,主要分布在管坯区,位置包括: ⏹ 送管材到各个锯的上料台 ⏹ 送管材到5#锯前辊道1段 ⏹ 送管材到9#锯前辊道1段 ⏹ 送管材到11#锯前辊道1段
管坯区每个位置的逻辑处理,基本类似,现以送管材到5#锯的上料台
为例,进行说明,如图3.4所示。
图3.4 送管材到5#锯的上料台的逻辑管理
3.2.3.3.7 接口
逻辑管理对外的接口:
⏹ 上层调用接口:将逻辑处理以接口函数的形式封装,供上层的跟踪
实现层调用。 ⏹ 下层调用接口:数据访问接口,详见3.3.1.4。 3.2.3.3.8 限制条件
无。
3.2.3.4 设备生产数据与状态更新 3.2.3.4.1 基本功能描述
根据信号表的变化,确定那些设备生产数据和设备本身工作状态发生了变化,对它们的生产数据和工作状态进行更新。 3.2.3.4.2 性能
无
3.2.3.4.3 输人项
输入项为变化的信号表。 3.2.3.4.4 输出项
输出项为变化的设备状态和生产数据。 3.2.3.4.5 算法
无
3.2.3.4.6 流程逻辑
设备生产数据与状态更新的基本流程包括两部分:
⏹ 根据信号表的变化,按照每个设备确定的处理逻辑,统计设备的生
产数据,其中,设备生产数据主要包括:生产计划号、炉号、已生产数量。 ⏹ 根据信号表的变化,确定那些设备工作状态(包括正常工作、故障
(含维修)、已损坏)发生了变化,并将状态变化更新到数据库中。 3.2.3.4.6.1 管坯区
管坯区比较简单,按照锯号,分别统计生产计划号、炉号和生产数量。 3.2.3.4.6.2 热轧区
热轧区需要做一些逻辑处理,主要为环形炉定尺坯入炉/出炉/步进逻辑
处理,如图3.5所示。
图3.5 环形炉定尺坯入炉/出炉/步进逻辑处理
穿孔机和连轧机的生产数据也比较简单,主要统计生产计划号、炉号和生产数量。 3.2.3.4.6.3 再加热区
再加热区需要逻辑管理的位置有:
取样辊道、旁路辊道、常化冷床部分,如图3.6所示。
⏹ 再加热炉内数量统计,如图3.7所示。 ⏹ 张减机工艺批次号设定,如图3.8所示。
图3.6 取样辊道、旁路辊道、常化冷床部分的逻辑处理
图3.7 再加热炉内数量统计的逻辑处理
图3.8 张减机工艺批次号设定的逻辑处理
常化冷床、再加热炉和张减机的生产数据也比较简单,主要统计生产计划号、炉号和生产数量。 3.2.3.4.6.4 冷床区
冷床需要的逻辑处理,如图3.9所示。
图3.9 冷床区的逻辑处理
冷床和排管锯的生产数据也比较简单,主要统计生产计划号、炉号和生产数量。 3.2.3.4.6.5 预精整区
预精整区需要进行逻辑管理的位置有两个:
⏹ 1号预精整线横移链床需要逻辑处理,如图3.10所示. ⏹ 喷标打印后,出现废料时,需要逻辑处理,如图3.11所示。
图3.10 预精整1号线横移链床需要逻辑处理
图3.11 喷标打印后的逻辑处理
矫直机、吹吸灰装置、检查链、测长称重以及喷标打印的生产数据,主要统计生产计划号、炉号和生产数量。
3.2.3.4.7 接口
设备状态更新对外的接口:
⏹ 上层调用接口:将设备状态更新以接口函数的形式封装,供上层的
跟踪实现层调用。
⏹ 下层调用接口:数据访问接口,详见3.3.1.4。
3.2.3.4.8 限制条件
无。
3.2.3.5 管材属性更新
3.2.3.5.1 基本功能描述
根据信号表的变化,来判断管材的属性(如编号、区域号、区域内序号等)是否发生了变化,如变化,对它们的属性特性进行更新。
3.2.3.5.2 性能
无
3.2.3.5.3 输人项
输入项为变化的信号表。
3.2.3.5.4 输出项
输出项为更新的管材属性。
3.2.3.5.5 算法
无
3.2.3.5.6 流程逻辑
管材从倍尺坯到成品钢管,经历过多个加工阶段,每个加工阶段,其属性都会变化,因此,管材的属性与它所处的工艺阶段完全对应。管材属性包括:编号、炉号、基本特性(长度、钢号、管径/坯径等)、区域号、是否废料标志等。
根据信号表的变化,来判断整个生产过程中,那些管材属性发生了变化,将变化的属性进行修改,并将管材的属性变化更新到数据库中。
3.2.3.5.7 接口
管材属性更新对外的接口:
⏹ 上层调用接口:将管材属性更新以接口函数的形式封装,供上层的
跟踪实现层调用。
⏹ 下层调用接口:数据访问接口,详见3.3.1.4。
3.2.3.5.8 限制条件
无。
3.2.3.6 L2命令管理
3.2.3.6.1 基本功能描述
根据处理后的逻辑状态,向对应的区域L1发特定的命令,并监控L2命令执行的结果。
3.2.3.6.2 性能
无
3.2.3.6.3 输人项
输入项为逻辑状态。
3.2.3.6.4 输出项
输出项为发给L1的命令。
3.2.3.6.5 算法
无
3.2.3.6.6 流程逻辑
L2命令管理的流程逻辑相对简单:根据对应的逻辑状态,发送特定的命令,并读取命令执行的结果,确信每个发给L1的命令能够正确执行。
其中,中冶赛迪的环形炉、常化冷床、再加热炉都有类似的形式
太重、达涅利以及二室的PLC 中,有无类似的DB 块,来标识命令的执行情况。
3.2.3.6.7 接口
L2命令管理对外的接口:
⏹ 上层调用接口:将L2命令管理以接口函数的形式封装,供上层的
跟踪实现层调用。
⏹ 下层调用接口:无。
3.2.3.6.8 限制条件
无。
3.2.3.7 生产信息统计
3.2.3.7.1 基本功能描述
生产信息统计主要指在各个重要的工艺段,可对生产的信息进行统计,能够为生产物料分配的提供指导和参考。
3.2.3.7.2 性能
无
3.2.3.7.3 输人项
输入项为变化的信号表。
3.2.3.7.4 输出项
输出项为各个工艺段生产统计信息。
3.2.3.7.5 算法
无
3.2.3.7.6 流程逻辑
需要进行生产信息统计的工艺流程包括:
⏹ 带锯锯切工艺
⏹ 环形炉加热工艺
⏹ 穿孔机穿孔工艺
⏹ 连轧机轧制工艺
⏹ 张减机定型工艺
⏹ 排管锯锯切工艺
具体实现有些特殊,包括两部分:
⏹ 数据部分:在物料跟踪系统的数据库里有专门的表,包括在线表、
离线表和定尺坯库,记录每个工艺段的管材生产记录信息。
⏹ 控制和界面部分:在生产管理系统里实现。通过查询在线表、离线
表和定尺坯库,获得每个工艺段的管材生产记录信息,如生产了多少、产生废料多少;再查询生产计划表,确定还需要生产多少等。将这几部分信息整合,就获得每个工艺段的统计信息。
3.2.3.7.7 接口
生产信息统计对外的接口:
⏹ 上层调用接口:将生产信息统计以接口函数的形式封装,供上层的
生产管理系统调用。
⏹ 下层调用接口:数据访问接口,详见3.3.1.1
3.2.3.7.8 限制条件
无。
3.2.3.8 库房管理
3.2.3.8.1 基本功能描述
库房管理包括两个部分:原料库管理、排管锯缓冲库管理、成品库管理。原料库管理,主要进行管坯区入口处倍尺坯的出入库管理;排管锯缓冲库管理,主要对排管锯后的钢管进入缓冲库的部分,进行出入库管理;管材库管理,主要进行成品钢管的出入库管理。
3.2.3.8.2 性能
无
3.2.3.8.3 输人项
输入项为各个工艺段出入库的数量。
3.2.3.8.4 输出项
输出项为各个工艺段最新的库存统计信息。
3.2.3.8.5 算法
无
3.2.3.8.6 流程逻辑
按照三个库分别列写流程:
原料库管理:入库流程为直接从界面获取倍尺坯的入库信息;出库流程为通过界面,用批次下料的方式,完成倍尺坯的出库。即原料库的出入
库,均是通过界面,用人工操作的方式来实现,由界面操作发起更新原料库,详见界面设计部分。
排管锯缓冲库管理:与原料库管理类似,排管锯缓冲库也是通过界面操作去更新。
成品库管理:入库流程为根据信号的变化,统计每条预精整线的成品数量,并调用数据库接口,更新成品库入库信息;出库流程与原料库出库类似,也是通过界面操作去更新出库信息。
3.2.3.8.7 接口
按照三个库分别列写接口。
a. 原料库管理对外的接口:
⏹ 上层调用接口:将原料库管理以接口函数的形式封装,供界面调用。 ⏹ 下层调用接口:数据访问接口,详见3.3.1。
b. 排管锯缓冲库管理对外的接口:
⏹ 上层调用接口:将排管锯缓冲库以接口函数的形式封装,,供界面
调用
⏹ 下层调用接口:数据访问接口,详见3.3.1。
c. 成品库管理对外的接口:
⏹ 上层调用接口:将成品库管理以接口函数的形式封装,供界面调用。 ⏹ 下层调用接口:数据访问接口,详见3.3.1。
3.2.3.8.8 限制条件
无。
3.2.4 业务层实现
3.2.4.1 总体数据结构
为保证跟踪过程的正确性和实时性,将整个工艺流程划分为多个小型的区域,以区域为跟踪单元进行跟踪。
为跟踪单元建立双链表的数据结构,主要包括2个结构:产品属性链表、区域特性链表。
产品属性链表如下:
typedef struct Node
{
struct Node *prev; //指向上一个节点的指针 struct Node *Next; //指向下一个节点的指针
CString nLocation; //区域编号,其中管坯区只有一个编号,其它每个小分区都需要分类编号(含下料的各个区)
CString nProduceNumber; //管坯的编号
}DLNode,*DLNodeList;
区域属性链表如下:
区域属性链表直接使用MFC 的CPtrList ,CPtrList 封装了各种节点操作函数(下面示例节点为产品节点,区域属性链表由CPtrList 维护):包括头部/尾部添加、删除、获取一个节点,节点总数量获取,list 是否为空判断,根据位置获取、插入、获取节点等。
示例:
CPtrlist nMyNodeList;
DLNode * nNodeA = new DLNode;
nMyNodeList. AddTail(nNodeA); //向nMyNode 尾部添加一个产品节点。
nMyNodeList. AddHead(nNodeA); //向nMyNode 头部添加一个产品节点。
另外,管材的编码规则为:
XX –XX-XX-XXXX-X-X-XX-XX
年-月-带锯号-带锯切序号-组排段号-组排区-排管锯号-排管锯切序号 其中组排段号表示的是钢管位置是在冷床四段中的一段(是否使用1-7段制?)组排区表示钢管组排位置是在冷床后1区宽辊道还是2区宽辊道上。
3.2.4.2 L2画面与业务部分通讯方式
L2画面与业务部分之间的通讯方式:
⏹ 数据库方式:为通讯建立数据表,画面根据需要实时修改该数据表;
业务部分定时查询数据表,获得修改信息。
⏹ OPC 通讯方式:在OPC Server 建立变量,通过这些变量,来传递
画面与业务部分之间的信息。
⏹ Socket 通讯方式:通过Socket 数据包,在二者之间传输信息。 ⏹ 网络MSMQ (微软消息队列:Message Queue)方式:通过远程的
消息队列,来传输信息。
推荐采用Socket 通讯方式。
3.2.4.3 逻辑实现
3.2.4.3.1 上料逻辑
上料位置主要包括以下几个:
⏹ 管坯区倍尺坯上料台
⏹ 管坯区定尺坯上料台
⏹ 环形炉出炉定尺坯回炉
⏹ 冷床区排管锯后缓存库
⏹ 预精整改尺修磨后
整个上料遵从相同的处理逻辑:
⏹ 画面部分:根据上料区域不同,从数据库读取相应的下料区域信息,
由操作员选择上料管坯的编号以及数量,发送给业务逻辑部分。 ⏹ 业务逻辑部分:根据接收到画面部分信息以及L1信号,将上料管
坯和编号关联,修改逻辑部分维护的管坯链表,然后更改L2数据库(将上料信息和新排序信息写入)
⏹ 若自动统计上料,则画面部分不需要操作;业务根据L1发送的信
号,以及扫描到的条形码,业务逻辑部分将编号和上料管坯关联。 ⏹ 注意:管坯区下料时若使用条形码方式,则上料时也扫描条形码进
行匹配;如果下料时时不采用条形码,处理逻辑同上;测长称重后下料为废品不再进行改尺修磨。
3.2.4.3.2 下料逻辑
下料情况相对复杂一些,分区域进行描述,同时也对废料剔除也进行了分析。
a. 通过画面下发命令下料
画面部分:操作员在画面选择下料区域、起始位置以及数量,发送给业务逻辑部分。
业务逻辑部分:接收到画面部分信息,根据L1管坯信号,设定下料(发送管坯运行方向给L1),业务逻辑部分检测L1信号下料完成后,更改L2数据库。
b. 人工下料后,在画面确定
画面部分:操作员在画面选择下料区域、起始位置以及数量,发送给L2逻辑部分。
业务逻辑部分:接收到画面部分信息,修改逻辑部分维护的管坯链表,然后更改L2数据库(将下料信息和新排序信息写入)。
c. 废料自动剔除
业务逻辑部分:根据L1的信号,对相应的管坯进行删除操作,并写入数据库。
画面部分:读取数据库数据并显示。
因此,各区域的下料处理包括:
⏹ 管坯区下料:包含a 和b ,若定尺坯下料采用条形码,则每根定尺
坯都需要贴条形码,并建立条形码的数据表,而上料时需扫描条形码。
⏹ 环形炉出炉定尺坯下料:原因是出炉定尺坯温度不够,处理方式如
b 所示。
⏹ 冷床区排管锯后缓存库下料:原因是后续工序缓慢或出现故障,处
理方式如b 所示。
⏹ 热轧区和冷床区废料剔除:包括两种方式:穿孔机区和连轧机区是
自动剔除,处理方式如c 所示;常化冷床人工剔除,处理方式如b 所示。
⏹ 预精整下料与剔除:废料剔除共有探伤机、检查链以及测长称重后
三处,其中探伤机和检查链直接由L1剔除L2统计;测长称重后L1将钢管状态发送给L2,L2将钢管状态信息保存;当L2检测到L1发送的钢管到达测长后输送辊道信号,L2将是否剔废信号发送给L1。探伤机和检查链后废料经过改尺修磨后可以重新上料,测长称重后废料不会重新上线。
3.2.4.3.3 冷床及冷床后组排逻辑
业务逻辑部分充分使用2个链表的信息,进行组排操作。
根据对冷床及宽辊道组排区域的划分,需要建立冷床区7个list 、冷床后宽辊道1区7个list 和冷床后宽辊道2区7个list 。
冷床本体(以及管坯区锯切后到冷床前辊道),每个list 中单个ListNode 代表一根管坯。
冷床后1区和2区的14个list 虽然都只包含1个ListNode ,但是这个ListNode 是一个包含多根钢管信息的sublist (包含多个 sublistNode )。
假设冷床后区的一个list 包含一个ListNode A,A 包含sublist ,并且后面有7个sublistNode ,那么包括节点本身钢管信息,以这个A 为head 的sublistNode 可以标识8根钢管。
当L1将排管移动到排管锯区域时,L2将对应list 的节点A 移出并添加到排管锯的list 中;当排锯定尺锯切完成后,L2根据L1排管移动信号由节点A (假设锯切一次)生成节点AA 和节点AB ,并将AA 和AB 链表中钢管信息更新。
L2根据L1信号继续跟踪AA (AB 暂时不移动),排管经过锯后横移链床和预精整宽辊道,进入1#预精整线横移链床时,L2根据L1信号将以AA 为头指针的sublist 中的每个sublistNode ,恢复为单个ListNode ,添加1#预精整横移链床list 中。
3.3 数据层
数据层包括两部分:数据接口层和数据层。
3.3.1 数据接口层
数据接口层,主要为界面和跟踪实体层提供DB 的统一访问接口,包括查询、插入、删除和更新等功能。整个数据库访问接口,封装成dll 库,以接口函数的形式提供。
3.3.1.1 查询接口
3.3.1.1.1 基本功能描述
根据输入的查询条件,在数据库中检索,并将检索到的符合条件的记录或表返回。
3.3.1.1.2 性能
支持1秒内,500个画面对象的查询操作。
3.3.1.1.3 输人项
输入项为查询条件,可以为单条件,也可为多个条件(暂定不超过4个条件)。这些查询条件为查询接口函数的输入参数。
3.3.1.1.4 输出项
输出项包括两部分:
⏹ 查询接口函数的返回值:表明查询接口函数是否执行成功。 ⏹ 查询接口函数的输出参数:返回查询到的记录或表。
3.3.1.1.5 算法
无
3.3.1.2 插入接口
3.3.1.2.1 基本功能描述
将输入的记录,插入到数据库特定的表中。
3.3.1.2.2 性能
支持1秒内,500个画面对象的插入操作。
3.3.1.2.3 输人项
输入项为要插入的记录信息,以及要插入的表信息,这些信息为插入接口函数的输入参数。
3.3.1.2.4 输出项
输出项为插入接口函数的返回值,依此确定插入接口函数是否执行成功。
3.3.1.2.5 算法
无
3.3.1.3 删除接口
3.3.1.3.1 基本功能描述
将输入的记录,从数据库特定的表中删除。
3.3.1.3.2 性能
支持1秒内,500个画面对象的删除操作。
3.3.1.3.3 输人项
输入项为要删除的记录信息,以及要删除的表信息,这些信息为删除接口函数的输入参数。
3.3.1.3.4 输出项
输出项为删除接口函数的返回值,依此确定删除接口函数是否执行成功。
3.3.1.3.5 算法
无
3.3.1.4 更新接口
3.3.1.4.1 基本功能描述
用输入的记录,修改数据库特定的表某些/条记录。
3.3.1.4.2 性能
支持1秒内,500个画面对象的更新操作。
3.3.1.4.3 输人项
输入项为要更新的记录信息,以及要更新的表信息,这些信息为更新接口函数的输入参数。
3.3.1.4.4 输出项
输出项为更新接口函数的返回值,依此确定更新接口函数是否执行成功。
3.3.1.4.5 算法
无
3.3.2 数据层
数据层主要是定义各种数据及其结构,详见数据库表结构设计。 内部临时数据库设计:
⏹ 信号表:与底层完全对应,见接口信号表。(不需要) ⏹ 逻辑状态表:区域号、区域内序号、状态(用来指示单支对多支的
运行位置变化,如虚线指示),主要为界面显示准备的(不需要) ⏹ 设备生产数据:生产计划号、炉号和生产数量
⏹ 生产统计信息:每个关键工艺段的统计信息包括:已生产数量、废
料数量、还需要生产数量、统计信息产生时的时间戳。
第31 / 31页