设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2811|回复: 0

SIMIO用户扩展程序(simio user extensions)

[复制链接]
发表于 2018-11-27 21:13:30 | 显示全部楼层 |阅读模式
Simio二次开发从主要应用场景和目的来看,主要分成两大类,一类是在Simio环境内使用的功能,我们称之为Simio用户扩展程序(Simio User Extensions),另一类是和外部软、硬件系统部件进行互动的功能,更多是脱离Simio环境,以实时反馈、实时决策为主,使用Simio后端仿真引擎(BackEnd Simio Engine)功能。注:开发人员利用Simio API开发的独立软件系统能够正常使用的前提是需要有有效的Simio软件许可。
(下一代系统仿真软件和高级排程解决方案:http://www.simio-china.com
10.3.4.        Simio用户扩展程序
Simio架构给开发级用户提供了多个软件内部功能的扩展点,用户可以将他们自己已有的代码或新开发的代码和Simio做整合,前提是这些代码是基于.NET的编程语言开发的,例如Visual C#、VB.NET、VISUAL C++.NET、F#、IronPython.net等,据不完全统计,支持.NET的语言至少有三十来种。这些用户扩展类型主要支持以下内容的开发。

►        用户自定义步骤(特殊的输出输出接口、创建Simio事件、或者定制化逻辑)
►        用户自定义元素(配合自定义步骤使用)
►        用户自定义选择规则
►        设计时插件
►        表格输入和绑定
►        设计/运行仿真实验

Simio用户扩展程序主要是由一系列的“接口”所组成(需要了解C#相关知识如接口,继承,集合等),接口描述了方法和调用规范。用户可以在软件安装目录下(通常是C:\Program Files (x86)\Simio)下面找到Simio API用户指南(Simio API Reference Guide.chm)学习Simio提供的接口信息。虽然你可以使用任何.NET的语言开发Simio用户扩展,Simio为C#用户提供了更多的支持。为了帮助你更快的开始创建用户自定义扩展程序而无需从零开发,软件提供了预制的项目模板,在Simio的程序组下面有个Install Simio Visual Studio Template选项,用户点击该选项,启动项目开发模板的安装。在VSIX Installer的面板上确认Visual Studio为2015版本或者2017版本,点击“安装”,完成后会给出提示“成功安装扩展”。


图1:Simio用户扩展程序的VisualStudio模板

用户打开微软Visual Studio 2015或Visual Studio2017开发环境,点击新建项目,在最近→已安装→模板→Visual C#下面找到已安装的Simio用户扩展类型,分别是Simio UserAddIn(Simio设计时插件)、Simio User-defined Element with Step(Simio用户定制化的步骤和元素)和Simio UserSelectionRule(Simio用户选择规则)。用户也可以在已有的Visual Studio项目文件中点击右键,选择添加项目(类),同样可以到达刚才那个界面。用户选择其中一种扩展类型(以定制化的步骤和元素为例),点击确定后,就自动为我们创建了一个开发的框架,并对每一部分做了注释。在模板的命名空间部分自动添加了SimioAPI和SimioAPI.Extensions两项内容。用户开发好插件或者定制化过程步骤后,在Visual Studio环境中将其编译成DLL动态链接库文件,并部署到[My Documents]\SimioUserExtensions目录中,或部署到Simio安装目录下的UserExtensions目录(通常是C:\Program Files (x86)\Simio\UserExtensions),重启Simio即可以在软件内找到这些新开发的用户扩展(Simio设计时插件可以在ProjectHome的Select AddIn下拉菜单、步骤和元素在Processes窗口左侧面板的User Defined下面、用户选择规则在对象的动态选择规则属性下面、数据导入和绑定插件在Table工具栏的Create Binding选择下拉列表中找到)。注意:如果DLL文件是第三方提供的,出于安全考虑有时候Windows操作系统会屏蔽这些DLL文件,你可以选中DLL文件,鼠标右键选择属性,并点击“解除锁定”后才可以正常使用。

图2-Simio用户扩展模板(新建项目时“New Project”)

图3-Simio用户扩展模板(添加项目时“Add New Item”)

图4:定制化的步骤和元素开发模板


关于Simio用户扩展的内容,有以下这些学习资源可供学习:
►        Simio API Reference Guide.chm(Simio开发指南)
►        Simio帮助文档(按F1键)搜索关键词extension或者API
►        软件自带的用户扩展开发实例(源代码):有Binary Gate,TextFileReadWrite,ExcelReadWrite,DbReadWrite,CSVGridDataProvider,GoodSelectionProcedure,SelectBestScenario,SimioScheduling,SimioSelectionRules,SimioTravelSteeringBehaviors,SourceServerSink等,这些例子通常存储在C:\Users\Public\Documents\Simio\Examples\UserExtensions目录中
►        Simio学习论坛Simio Insider的SI-API板块分享的源代码
►        Simio学习论坛Simio Insider的SI-Shared Items板块分享的源代码
►        Simio学习论坛Simio Insider的SI-Emulation板块分享的源代码
►        采用.NET程序集反编译工具如.NET Reflector、DotPeek或ILSpy查看Simio动态链接库中的定义(主要的Simio API动态链接库文件有SimioDLL.Dll、SimioAPI.Dll、SimioAPI.Extensions.Dll等,用户可以在Simio安装目录下找到它们)。Simio的动态链接库是架构中性的,可以自动识别是32位还是64位的结构。

图5:.NET Reflector反编译
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2024-3-29 16:56 , Processed in 0.010702 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表