03AGVs调度管理系统之外部系统接口组件详解

前言

本来上周计划写静态交通管制算法的,但是由于管制算法涉及的知识面太广,结果是越写越复杂,所以最后便决定找一个富裕时间来完成它,所以这周先讲点逻辑组织上的东西。

关于ESI(外部系统接口组件)的设计。它的简要介绍在前面已经说过----用于AGVS和外部主机系统(MES,WCS,ERP等)的数据交互,今天是对它更详细的讲解。

正文

ESI主要由以下几部分组成:

1、轮询数据库通讯线程1

ESI应该具备一个继承自通讯线程(CommunicationThread)的数据库轮询线程—PolledDatabaseCommunicationThread(简称PDCT)。

ESI使用该线程对中间数据库表进行相关操作(增删改查)。
在前面我们提到,在国内大多数AGVS和MES使用的是中间数据库表来进行数据交互的方式(协议)。
轮询线程的数据库连接,使用通用数据库工厂模式:DbProviderFactory,所以你需要建立一个DatabaseConnection类来进行通用(sql、mysql、Oracle)数据库连接、关闭、资源释放。

2、通用数据库连接工厂

DatabaseConnection类的建立很简单,所以这里不详细介绍。
算了,还是说一下吧:

一个DatabaseConnection类应该包括:

  • 通用数据库工厂DbProviderFactory;
  • 连接数据库字符串Connection用于连接到数据库;
  • 数据库连接DbConnection;
  • 数据库事务DbTransaction;
  • 释放资源方法Dispose();
  • 连接数据库Connect(建立工厂数据库实例(sql或者oracle),con.Open());
  • 添加指令参数AddCommandParameter(用于数据库增删改的存储过程,cmd.CreateParameter);
  • CreateDataAdapter来获取数据库table;
  • BeginTransaction和EndTransaction(Rollback、Commit);
  • ToString()等等
    这个通用数据库操作工厂将适用于大多数数据库的连接,相当于SqlHelper+OracleHelper+。。。Helper的DbHelper集合。其实它本身也没有什么可说的&#x
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值