nx mcd中怎么做吸真空和破真空

勇哥注:

设备中真空和破真空很常见,但是在mcd中我们并没有这样的mcd对象,下文中勇哥是使用固定幅来实现的。


真空还是有必要的,不然像下图中的料盘,在随着轴的载盘移动时,速度一快就会甩下去。
m37.gif

解决这个问题的办法大家可能都会想到用固定副。


先对x轴添加“碰撞传感器”

image.png

再对x轴添加固定副,连接体空出来,一会有用。

image.png

然后在仿真序列中设置一下。

选择刚才设置的固定幅,然后勾选运行时参数的“连接体”和“基本体”。

这个时候连接体就可以选择“触发器中的对象”。

因为载盘是碰撞感应器,料盘落在载盘上面,触发器中的对象就是料盘,于是连接体就变在了料盘了。


image.png

注意上图中还添加了一个控制变量Signal_0,如果为true,我们就让x轴吸住料盘。(其实就是让固定幅的连接体变成料盘)


效果如下图:

让Signal_0置为true后,手动移动x轴,可以看到无论怎么动,料盘都不可能甩出来。

这个就像真空吸住料盘一样了。
这里注意成功的标志:就是连接体的值,它不是null,而是“料盘”。

m38.gif

这里成功的关键在于,我们是通过Signal_0手动控制固定副生效。

因为仿真序列执行时,未必刚才是物料落到位置的时候,这里存在可能不适合的时间差。

用Signal_0手动控制固定副生效就能确保时机是正确的。

如果你不要这个Signal_0信号,则可能成功,也可能不成功。


那怎么样外部控制这个真空信号呢?

其实可以直接定义外部信号并做信号映射就好了。

下面我先把信号singal_0改个名字,叫“真空”。

image.png


定义外部信号,这里勇哥用的是tcp modbus。

image.png


然后做信号映射

image.png


image.png

现在跑仿真,会有一个警告,我们可以忽略。

image.png


打开modbus poll,可以看到对继电器地址0,置为on,直接改变了mcd这边的“真空”信号。


m39.gif


结论:

对于真空和破真空,我们可以定义一个bool信号,然后通过外部来修改即可。

然后你还得在仿真序列中定义一个对固定幅的“连接体“做 赋值的动作。

因为你不能靠“信号适配器”完成这种操作,它指定固定幅,却无法控制“连接体”,它只能控制固定幅的下图所示的属性。

这些都不是我们想要的。

image.png


另外,如果靠”运行时表达式“可不可以?

答案也是不可以,如下图所示,它只能控制运动幅的”活动“这个属性。

这个也达不到我们要的效果。

image.png


因此,我们用信号+仿真序列,可以实现真空和破真空。


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2025-08-19 09:32:30 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年8月    »
123
45678910
11121314151617
18192021222324
25262728293031
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864