一种基于AutoCAD的I/O点信息自动快速处理方法与流程

文档序号:11729485阅读:563来源:国知局
一种基于AutoCAD的I/O点信息自动快速处理方法与流程

本发明属于计算机辅助设计和数字化工业控制技术领域,具体涉及一种基于autocad的i/o点信息自动快速处理方法。



背景技术:

autocad是美国autodesk公司开发的交互式绘图软件,用于二维及三维设计、绘图的系统工具,用户可以使用它来创建、浏览、管理、打印和共享富含信息的设计图形。作为通用型的制图软件,autocad广泛应用于各个行业。

虽然autocad的功能已经非常强大,但是面对不同的工程需求时,大量的工作还是需要人工来完成,效率低下而且错误率高。例如在数字化工业控制领域,通常需要将工程设计组态软件用图纸的形式绘制出来,以便于进行审核和验证,这种表示组态软件逻辑的图形称为功能图。功能图中不仅要包括组态软件中实现的工艺逻辑(如与或非门),而且还需要包含具体的i/o(输入和输出信号)点的信息,如点名、点的类型(如开关量输入点或开关量输出点等)、量程、该点所分配的卡件类型和通道号等。

对于一个比较大型的工业控制项目,有将近上万个点需要录入到autocad中,不仅工作量大而且如果人工录入的话错误率高,无法保证工程的质量,还需要后续花费大量的人力去校对和审核。



技术实现要素:

本发明的目的在于提供一种基于autocad的i/o点信息自动快速处理方法,实现了大量的i/o点信息的自动快速导入,实现了数据库与autocad的信息快速同步,不仅极大的减少了工作量,而且确保了正确率。

为达到上述目的,本发明所采取的技术方案为:

一种基于autocad的i/o点信息自动快速处理方法,包括如下步骤:(1)创建一个i/o点数据库;(2)在i/o数据库中添加i/o点时,为每个i/o点分配一个唯一的id号;(3)利用autocad中图形块的方法创建一个块,并命名为i/o块,该块应该包括i/o点的基本属性名,这个块是i/o点的模板,每次功能图中需要添加i/o点的时候就添加这个块;(4)基于autocad.net二次开发平台,利用c#语言,以插件的方式实现导入功能如下:首先将cad文件打开,在图中查找i/o块;读取其中的属性参数并将其填入一个表对象list_a中;然后通过odbc的方法建立与i/o数据库的数据读取通道,读取i/o数据表,并将所有的i/o点属性填写到另外一个表对象list_b中;在list_a中,利用linq查询语言,轮询查找每个i/o点的id号,根据id号在表list_b中提取该id号的i/o点的其它属性,并将这些属性写入list_a表中;最后再将list_a中的信息基于i/o点的id号写入到cad中的i/o块中;(5)实现功能图与数据库之间的同步功能如下:先将cad中的i/o点数据与i/o数据库中的i/o点数据都导入到不同的表对象中;然后利用linq语言,基于id号对同一个i/o点的属性比较两个表中的内容,并将比较的结果保存到excel文件中。

以上功能使用方法如下:首先在收到设计输入时,先将所有i/o点的信息填写到i/o数据库中,每个i/o点都有一个唯一的id号;其次在绘制功能图时,当需要在功能图中添加i/o点时,只需要在图中添加一个i/o块,并填写该i/o点的id号即可,其它i/o点的属性不需要填写;完成所有的功能图以后,利用导入功能插件将i/o点所有的其它信息从i/o数据库中导入。

当i/o数据库和功能图都经过多次修改以后,两者之间可能会出现不一致的情况,可以采用i/o数据库与功能图同步的方式对双方的数据进行对比,通过查看最终结果的excel文件,查找出i/o数据库与功能图之间的不同点。

所述的基本属性名包括i/o点名、点类型、所分配的卡件号和通道号。

本发明所取得的有益效果为:

本发明针对在数字化工业控制领域常见的功能图,提出了在autocad中添加导入和同步数据功能的方法,不仅可以完成i/o点的自动批量导入,而且可以同步autocad文件与数据库,大大减少了人力的投入,节约了资源;同时避免了人为导致的错误,极大的提高了功能图的正确率;同时通过.net的linq语言实现了数据处理功能,加快了数据处理的速度,更加适合在大型数字化工业控制项目中使用。

以数据导入工作为例,如使用手动导入,100页图纸需要10-20个人工时。如果使用本发明设计的软件,处理时间在2-3分钟左右。同时如果人工手动完成导入数据任务,正确率一般在90%左右。而如果使用本发明的话,正确率保持100%,极大的提高了功能图的正确率。

附图说明

图1为导入i/o点信息流程图;

图2为同步功能图与i/o数据库。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

(1)首先需要集中管理i/o点信息。在工业控制项目中,i/o点的信息一般是集中在数据库或excel表中进行管理。(2)在数据库中,为每个i/o点确定一个唯一的标识,称为id。要保证其在整个数据库中是唯一的,且id号与i/o点一一对应。(3)在autocad中建立一个图形块(block),命名为i/o块,块中需要包含i/o点所有需要显示在功能图中的属性,如i/o点名,卡件类型和通道号等,同时还需要有i/o的id号属性。(4)在autocad中进行二次开发,本方案并没有采用常用的odbc通道方法来频繁读取数据库,odbc对于点数较少的应用来说没有问题,但是对于常见的大型数字化工业控制应用来说,将近两万个点的相关信息的读取和比较需要花费大量的时间,而且由于点数较大还可能导致系统死机。因此本方案采用了.net的linq语言的方法,直接通过odbc一次性的读取数据表到内存,然后利用linq语言对数据进行查询和比较,由于都是在内存在进行,而且不需要频繁通过odbc通道读取数据库,因此加快了处理速度。(5)首先对autocad进行二次开发,根据图1的流程实现自动批量导入数据功能。(6)其次,在autocad中进行二次开发,实现同步功能。

由于功能图与数据库分别是两个文件,会由不同的人修改和维护,因此在工程实施过程中,会出现以下的问题:(1)不一定所有的i/o点都会导入到功能图中。所有的i/o点都应该被分配到相应的功能图中,但是由于人为错误或者是新加的点等原因可能会漏掉一些i/o点;(2)i/o数据库与功能图都会不时进行变更。当i/o数据库变更时,如果没有同时更新功能图的话,就会导致i/o数据库与功能图不一致。同理,如果仅仅更新功能图,而没有更新i/o数据库的话,也会出现不一致的情况。

因此需要加入同步功能,对比功能图与i/o数据库中的信息,寻找双方的差别供设计人员分析原因。其流程如图2所示。

(1)首先创建一个i/o点数据库

(2)在i/o数据库中添加i/o点时,为每个i/o点分配一个唯一的id号

(3)利用autocad中图形块的方法创建一个块,并命名为i/o块,该块应该包括一些i/o点的基本属性名,如i/o点名、点类型、所分配的卡件号和通道号等。这个块就是i/o点的模板,每次功能图中需要添加i/o点的时候就添加这个块。

(4)根据图1的流程实现autocad中的数据导入功能,本发明基于autocad.net二次开发平台,利用c#语言,以插件的方式实现了所需的功能。导入功能的实现流程如下:

a)首先将cad文件打开,在图中查找i/o块;读取其中的属性参数并将其填入一个表对象list_a中;

b)然后通过odbc的方法建立与i/o数据库的数据读取通道,读取i/o数据表,并将所有的i/o点属性填写到另外一个表对象list_b中;

c)在list_a中,利用linq查询语言,轮询查找每个i/o点的id号,根据id号在表list_b中提取该id号的i/o点的其他属性,并将这些属性写入list_a表中;

d)最后再将list_a中的信息基于i/o点的id号写入到cad中的i/o块中。

(5)实现功能图与数据库之间的同步功能。其步骤如下:

a)与数据导入功能相同,先将cad中的i/o点数据与i/o数据库中的i/o点数据都导入到不同的表对象中;

b)然后利用linq语言,基于id号对同一个i/o点的属性比较两个表中的内容,并将比较的结果保存到excel文件中,供设计人员查找问题。

下面描述如何使用以上开发的功能:

(1)首先在收到设计输入时,先将所有i/o点的信息填写到i/o数据库中,每个i/o点都有一个唯一的id号;

(2)其次在绘制功能图时,当需要在功能图中添加i/o点时,只需要在图中添加一个i/o块,并填写该i/o点的id号即可,其他i/o点的属性不需要填写;

(3)完成所有的功能图以后,利用导入功能插件将i/o点所有的其他信息从i/o数据库中导入;

(4)当i/o数据库和功能图都经过多次修改以后,两者之间可能会出现不一致的情况,比如在i/o数据库中加入了新的i/o点,但是忘记了在功能图中添加等情况;

可以采用i/o数据库与功能图同步的方式对双方的数据进行对比,通过查看最终结果的excel文件,就能够查找出i/o数据库与功能图之间的不同点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1