核心内容摘要
无码高清:18岁般的感官觉醒,男女激情碰撞的影音盛宴
NX MCD时序仿真的学习模板包涵运行时参数运行时表达式条件仿真序列的编写等等。
关键是如何实现抓取。
包涵PLC仿真程序。
最近在折腾NX MCD的时序仿真发现运行时参数和条件序列真是灵魂所在。
先来个实战场景产线上机械臂抓取工件既要根据传感器信号动态调整夹爪力度还得在特定时序触发PLC动作。
下面直接上硬菜。
运行时参数调教现场在MCD里给夹爪添加运行时参数时别急着点完成。
试试在属性窗口的Value栏直接敲表达式if(SensorTrigger
then 50 else 30。
这个骚操作能让夹爪压力随传感器状态自动切换比在PLC里折腾方便多了。
抓取动作的位置控制更带劲local target_pos CurrentPosition (ConveyorSpeed *
0.
if target_pos 200 then GripperPosition math.floor(target_pos/
*10 -- 取整防抖 else GripperPosition DefaultPosition Compensation end这段脚本藏在运行时表达式里实现动态跟随补偿。
注意那个math.floor的用法实测能减少传送带震动导致的坐标飘移。
条件仿真序列的坑位预警做抓取时序时最容易翻车的是状态机跳转。
推荐用这种结构with sequence(): wait_for(PhotoSensor
# 等工件到位 set_action(GripperClose, speed
when(ForceFeedback 45, lambda: set_action(GripperShake, amplitude
) timeout(
0, emergency_stop())这里藏着三个重点阻塞等待、异步响应、超时保护。
特别注意when()函数是非阻塞的和wait_for混用时容易引发时序错乱。
NX MCD时序仿真的学习模板包涵运行时参数运行时表达式条件仿真序列的编写等等。
关键是如何实现抓取。
包涵PLC仿真程序。
与PLC的联调黑科技用TIA Portal搞联合仿真时在OB1里埋个彩蛋IF #GripCommand AND NOT #SafetyLock THEN #GripperPower : GripPowerDB.ActualValue *
2; WAIT_UNTIL #PositionFeedback #TargetPosition - 5; #GripComplete : TRUE; ELSE RESET_GRIPPER(); END_IF这个ST段子实现了抓取力度的动态补偿。
注意WAIT_UNTIL的位置放循环外避免阻塞其他逻辑。
实测时记得在MCD里把仿真步长调到50ms以下不然会丢信号。
抓取判定的骚操作在Collision属性里加个隐形触发器RuntimeCondition CollisionDetection Threshold force15 torque
8/ Action eventonExceed targetPLC.AlarmCode value0x21/ /CollisionDetection /RuntimeCondition当夹持力超过15N或扭矩超
8Nm时自动触发PLC报警。
这个配置可以直接在MCD的XML配置里修改比用脚本监听省资源。
调试时开个变量监视窗把GripperForce、PositionError、PLC_Status三个参数拖进去同屏显示。
突然发现当夹爪压力达到38N时工件会有
2mm的滑动——这就是为什么要用运行时表达式做动态补偿。
最后扔个压箱底的调试技巧在时序脚本里插入SimulationSpeed
5用半速模式观察夹爪接触瞬间的力学变化。
搞定收工下次再聊怎么用Python脚本批量生成仿真序列。