你好!
我正在尝试根据外部信号移动一个对象。这个信号来自 SIMIT SP 11.2,信号是有效的,并且当我在 Simit 中更改它时会动态变化。
我尝试过使用链接、伺服器、信号映射和 Python 脚本来移动对象,但尚未成功。
实现这一目标的最简单方法是什么?
这是我当前的设置。我尝试过不使用 Python 来完成,因为我的 Python 编程能力不是很强,需要借助“vibe coding”,但运气不佳。
image563×484 25.3 KB
image567×483 23.1 KB
image593×687 33 KB
image595×488 23.6 KB
image1920×1152 406 KB
谢谢
KustiH 2026年1月6日 下午12:582
你好,
如果你希望链接立即移动,你可以简单地将服务器变量与关节 X1 的 VALUE 属性配对。如果我没记错的话,你需要从“创建变量对”中选择行为属性和自由度,才能将它们显示在伺服控制器下。
如果你想使用外部信号作为运动目标(并使用 VC 中定义的速度、加速度和减速度将伺服驱动到该目标),我建议你使用 eCat 类别“信号定位器”中的现有组件“平移轴”。将模式属性从“索引信号”更改为“轴信号”,它将根据信号给出的位置进行驱动。
1 个赞
VincentNorican 2026年1月6日 下午1:093
你好!
感谢您的回复!
我想知道我在帖子中是否解释清楚了自己。
来自 SIMIT 的信号是一个介于 0 到 10000 左右的整数。该值对应板材需要移动的毫米数。所有计算都在 SIMIT 中完成。
我只需要将该值“附加”到某个东西上,以便使 VC 中的对象移动。因此,如果信号 Pos_X 的值为 1000,则对象应在 X 轴上移动 1 米。
这个解释会改变您之前的建议吗?还是您仍然会建议尝试一下?
再次感谢!
KustiH 2026年1月7日 上午7:044
你好,
来自 SIMIT 的信号是关节的当前位置,还是伺服应该开始移动的运动目标?
我仍然坚持我之前的回复。既然你已经建立了连接,这两种选择都相当容易实现,如果你不确定该用哪一种,可以都尝试一下。
由于服务器变量以毫米为单位,你可以直接将其与关节值或实数类型的信号配对,因为它们也以毫米为单位。至少使用 OPC UA 插件时,整数类型的服务器变量和实数类型的仿真变量之间的配对和更新效果很好,所以我推测使用 SIMIT 插件也同样简单。
image1171×311 16.4 KB
2 个赞
VincentNorican 2026年1月7日 上午7:445
我使用第一种方法(将信号与关节 VALUE 配对)使其工作了。
谢谢,非常感谢您的帮助!