栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

PC-DMIS 高级编程:操作员输入注释和 If

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PC-DMIS 高级编程:操作员输入注释和 If


客户:

我有一个程序可以在夹具上测量 8 个样品。该程序是使用每个夹具位置(L1 到 L8)的标签和 IF_GOTO 语句编写的,以防并非所有 8 个样本都被加载。样本也标记为 1 到 8,我们将样本加载到相应的位置。

我正在寻找一种方法来告诉 PC-DMIS 在该示例未加载时跳过某个位置。(例如,如果未加载样本 4,则跳过位置 L4 的例程)。
如果输入注释只缺少一个样本,我可以这样做。如果缺少一个以上的样本(例如 3 和 5)因此跳过 L3 和 L5 的例程,这可以起作用吗?我的经验是,如果在 Input Comment 中输入了多个数字,程序只会读取第一个数字。

回复:

这将根据操作员的输入运行任何部件组合。我只展示了四个部分,因为它是重复的,但可以使用任意数量的部分。注意:我使用名称 FUNCTION1、FUNCTION2、FUNCTION3 和 FUNCTION4,而不是标签(您帖子中的 L1 到 L8)。同样的事情只是 L1、L2、L3 是分配给标签的通用名称。

此例程的想法是您输入要运行的部分的逗号分隔列表。不同输入和结果的示例如下所示:

输入:1、2、3、4
结果:按该顺序 运行第 1、2、3 和 4 部分

输入:1,3
结果:按该顺序运行第 1 部分和第 3 部分

输入: 3,1
结果:按顺序运行第 3 部分和第 1 部分

输入:4,3,2,1
结果:按顺序 运行第

4、3、2和 1
部分输入:1,1,1,1结果:将第 1 部分运行四次(可能不想要但不容易阻止)

RUN_INPUT  =COMMENT/INPUT,NO,FULL SCREEN=NO,
            Enter parts to run in comma separated list
            (Example: 1,2,3,4)
            ASSIGN/PART_NUMBER_STRINGS=RUN_INPUT.INPUT

; Get the string to the left of the first comma and remove from the input string
            DO/
            ASSIGN/LSTR=INDEX(PART_NUMBER_STRINGS,",")
            ASSIGN/PART_NUMBER_STRING=MID(PART_NUMBER_STRINGS,0,LSTR - 1)
            ASSIGN/PART_NUMBER_STRINGS=MID(PART_NUMBER_STRINGS,LSTR)

; Run the function from the integer of the input string.  Any odd entries, text, or unhandled goes into DEFAULT_CASE
            SELECT/INT(PART_NUMBER_STRING)
             CASE/1
              GOTO/FUNCTION1
             END_CASE/
             CASE/2
              GOTO/FUNCTION2
             END_CASE/
             CASE/3
              GOTO/FUNCTION3
             END_CASE/
             CASE/4
              GOTO/FUNCTION4
             END_CASE/
            DEFAULT_CASE/
              COMMENT/OPER,NO,FULL SCREEN=NO,AUTO-CONTINUE=NO,
              Part not handled
            END_DEFAULTCASE/
            END_SELECT/

; all GOTO/FUNCTIONx return here
END_FUNCTION=LABEL/

; keep looping until next comma not found
            UNTIL/LSTR < 1

; program is done.  Jump to end.
            GOTO/END_PROG

FUNCTION1  =LABEL/
            MODE/DCC
P1         =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
            THEO/<0,0,0>,<0,0,1>
            ACTL/<0,0,0>,<0,0,1>
            TARG/<0,0,0>,<0,0,1>
            SHOW FEATURE PARAMETERS=NO
            SHOW CONTACT PARAMETERS=YES
              AVOIDANCE MOVE=NO,DISTANCE=0
            SHOW HITS=NO
            GOTO/END_FUNCTION

FUNCTION2  =LABEL/
            MODE/DCC
P2         =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
            THEO/<100,0,0>,<0,0,1>
            ACTL/<100,0,0>,<0,0,1>
            TARG/<100,0,0>,<0,0,1>
            SHOW FEATURE PARAMETERS=NO
            SHOW CONTACT PARAMETERS=YES
              AVOIDANCE MOVE=NO,DISTANCE=0
            SHOW HITS=NO
            GOTO/END_FUNCTION

FUNCTION3  =LABEL/
            MODE/DCC
P3         =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
            THEO/<0,100,0>,<0,0,1>
            ACTL/<0,100,0>,<0,0,1>
            TARG/<0,100,0>,<0,0,1>
            SHOW FEATURE PARAMETERS=NO
            SHOW CONTACT PARAMETERS=YES
              AVOIDANCE MOVE=NO,DISTANCE=0
            SHOW HITS=NO
            GOTO/END_FUNCTION

FUNCTION4  =LABEL/
            MODE/DCC
P4         =FEAT/CONTACT/VECTOR POINT/DEFAULT,CARTESIAN
            THEO/<100,100,0>,<0,0,1>
            ACTL/<100,100,0>,<0,0,1>
            TARG/<100,100,0>,<0,0,1>
            SHOW FEATURE PARAMETERS=NO
            SHOW CONTACT PARAMETERS=YES
              AVOIDANCE MOVE=NO,DISTANCE=0
            SHOW HITS=NO
            GOTO/END_FUNCTION

END_PROG   =LABEL/
            ROUTINE/END
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/581297.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号