暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

案例46丨创建Flexsim与SQL Server的连接

Flexsim仿真 2017-07-02
984

模型涉及SQL的操作,需要对数据库有一定的了解。参考用户手册《3.2.1SQL教程》可以学习Flexsim如何与数据库进行交互。

这里使用SQLServer 2008 R2,与教程有所不同。

连接数据库需要先创建ODBC数据源,创建方法:参考《资料丨创建ODBC数据源》。

开始进入正题:

创建一个AGV模型如图:

在这个模型中,每一台AGV都会经过路径中的每一个控制点。我们的目的是AGV到达某个控制点时,将它当前的状态(当前的控制点、到达时间、AGV状态等)统计出来,这是一个动态变化的过程。

AGV网络属性(AGV NETWORK PROPERTIES)中可以很好实现这个功能。打开AGV网络属性,选择路径点(Way Points)选项。进行如下设置:

1、创建一个路径点,默认命名为“WayPoint1”;

2、设置触发点:这里有两种模式:到达触发(On Arrival);到达前触发(On Pre-Arrival),它们的区别是前者如果达成触发条件且路径点被选中,则AGV减速并停在该点然后触发路径点触发器;后者是AGV为了停在某个路径点而开始进行减速时触发。我们并不希望AGV在每一个路径点都停下来,所以这里选择On Pre-Arrival。

3、设置触发条件:根据模型需要,选择总是触发(Always Fire)

4、设置路径点逻辑:在这里设置逻辑实现统计功能,因为步骤2,3的设置,AGV在到达控制点时会触发这里的逻辑。

5、选择路径点成员(Way Point Members):选择需要统计的控制点作为路径成员,这里统计所有控制点,所以选择全部控制点。红选所有控制点后,点击绿色“+”,选择“Add All Select Control Point”,把所有选中的控制点作为路径点成员。

 如图:

在设置路径点逻辑之前,先完成数据库的创建。使用SQL Server2008 R2 创建一个数据库"AGVinfo",并创建一个数据表"AGVRun"agvname列数据手动输入AGV的名称,其余三列通过Flexsim写入。如下图:

然后创建一个命名为“AGVCTL”的数据源。

设置路径点逻辑如下:代码部分有两种写法,可以使用SQL语法,也可以使用flexsim脚本。区别是连接数据库的打开方式。SQL使用dbopen(“数据库”,“SELECT * FROM 数据表”,0);flexsim脚本使用dbopen(“数据库”,“数据表”,1)。相关用法可以查询命令帮助。这里使用的是SQL语法。

运行到某个时间点后,SQL数据表的统计结果如下:

代码中同时增加了将数据写入全局表的方法,在这里作为一种对比。全局表的统计结果如下:

通过以上结果可以“实时”得知AGV的状态信息,如AGV1293.43秒的时候到达ControlPoint34,它此时是空载状态。还可以统计更多的AGV信息,比如AGV的速度,加速度,到达的下一个控制点,达到的最终目的地等。

 

 

如有更多问题,请在公众号或者文章末尾回复你的问题。

公众号:Fx20160720

文章转载自Flexsim仿真,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论