• 本站域名:OceanCoder.cn 若您喜欢本站,请添加至收藏夹!
  • 网站少部分资源来源自网络,如有侵犯您的权益,请联系站长删除!
  • 本站所有文章,除特殊标明外,皆为本人原创,转载请注明出处,谢谢合作!
  • 本站所下载的资源,若无特殊说明,使用统一解压密码:oceancoder.cn
  • 本站已实现布局自适应,支持手机端、pad端访问,欢迎体验
  • 本站部分资源可通过微信公众号留言获取,欢迎体验

[PlantSimulation]#C012#基础组件学习-Worker-02

PlantSimulation OceanCoder 2020-04-27 3268 次浏览 0个评论


Worker学习,实现下面的简单案例!


一、案例介绍

不同的工件由不同的工人进行处理。


二、建模

image.png


三、参数设置

不同零件由不同的工人处理,此部分功能通过代码实现!

1、表文件

随机生成3种零件

image.png


2、工人池

image.png


3、协调器、工作区等等的设置不再详细介绍,可查阅以前的文章。接下来主要介绍“单处理”


4、若想实现零件A由工人A处理,零件B由工人B处理,零件C由工人C处理,需要在单处理调用“导入器”时先调用自定义的方法,方法内部根据零件名称为导入器指定相关的“服务”即可!

实现此部分功能的方法较多,具体可查看文章《[PlantSimulation]#C011#Simtalk语法学习-S02-setServices和setAlternativeServices

粘贴一个使用setServices方法的纯代码实现

param type: integer -- Importer type (0=failure, 1=setup, 2=processing, 3=transport)

var part := ?.cont
var servicesTable: table[string,integer,string] 
?.imp.getServices(servicesTable)
servicesTable.delete

switch type
    case 0
        ?.failImp.import
    case 1
        ?.setupImp.import
    case 2
        switch part.name
            case "A"
            servicesTable.writeRow(1,1, "Work_A",1)
            case "B"
            servicesTable.writeRow(1,1, "Work_B",1)
            case "C"
        servicesTable.writeRow(1,1, "Work_C",1)
        end
    ?.imp.setServices(servicesTable)
    ?.imp.import
end


5、结束。






已有 3268 位网友参与,快来吐槽:

发表评论