中文脚本运动控制平台1.001

中文脚本运动控制平台;中文、低代码、流程复用
本编主要讲述的特点是:中文、低代码
流程复用,详情见:设备流程复用

专于运动控制(运动控制卡,可扩展到机械手)

WCF-中文脚本运动控制平台1.001源代码https://github.com/jiliwei/WCF

优点

1、中文脚本,简单易学,没有注释也能看懂
2、中文首字母智能提示,能加快流程编写
3、任务+步骤的方式,方便流程的梳理

1、中文脚本,简单易学,没有注释也能看懂

中文脚本,是简单易学了。但实际编写要一个子一个字的输入,那么在编写的体验上,就会很难受,这什么办?什么样才能提升编写的舒适度?故这就有了,如下第二点:

2、中文首字母智能提示,能加快流程编写(VS2022没有中文首字母智能提示)

中文脚本,简单易学,也好编写了。但当项目流程复杂(即:轴的数量多,IO的数量多)时,梳理起来会不会就很乱了?有尝试过流程图编写的朋友,就能体会到当项目流程复杂时,流程图的连接线这时候就很不好梳理。这里对此也有相应的对策,故这就有了,如下第三点:

3、任务+步骤的方式,方便流程的梳理

 

 

主要界面介绍

 更多页面可通过以下链接,下载源码,打开"\bin\Debug\WCF001.exe"查看:WCF-中文脚本运动控制平台https://github.com/jiliwei/WCF

另:以下界面是在WIN11上运行的,不是WIN11(比如是:WIN10、WIN7)上运行的话,界面样式看起来不好,但不影响功能的运行。

主页

调试

 数据


 运行日志

单步骤运行

单任务运行

多任务运行

 运行的中文脚本是:

进攻:设备动作流程(二)https://blog.csdn.net/u014608071/article/details/120458099?spm=1001.2014.3001.5501

以下为复制”进攻:设备动作流程(二)“的内容(有部分完善):

任务步骤详情
贴合流水线复位任务准备无动作
流水线输出信号复位设置输出复位(贴合段阻挡气缸)
启动所有流水线设置输出置位(贴合段流水线启动)
数字累计计时秒 = 0
判断有无产品当(读取输入置位(贴合段有料信号))
{
    运行到下一步
}
延迟(1)
数字累计计时秒++
当(数字累计计时秒 > 10)
{
    跳转到(设置流水线待机状态)
}
重新运行本步骤
停止所有流水线设置输出复位(贴合段流水线启动)
提示取走产品弹窗(流水线复位过程中,贴合段有料信号检测到有信号,请取出产品后再点击确认)
当(读取输入置位(贴合段有料信号))
{
    重新运行本步骤
}
否则
{
    跳转到(判断有无产品)
}
设置流水线待机状态设置输出置位(贴合段阻挡气缸)
任务完成退出流程
贴合工位复位任务准备无动作
Z轴复位单轴回零(贴合Z轴)
XYR轴复位集合XYR轴={贴合X轴,贴合Y轴,贴合R轴}
多轴回零(集合XYR轴)
运动到待机位绝对运动(待机位)
任务完成退出流程
飞达送料

交互状态有:
橙色:供料完成
红色:取料完成
任务准备无动作
判断飞达是否有料当(读取输入置位(飞达有无信号))
{
    跳转到(设置供料完成)
}
否则
{
    运行到下一步
}
飞达连续送料连续运动(飞达送料轴)
判断飞达是否有信号当(读取输入复位(飞达有无信号))
{
    延迟(0.01)
    重新运行本步骤
}
否则
{
    运行到下一步
}
飞达停止送料单轴停止(飞达送料轴)
飞达固定送料一段距离相对运动(飞达送料轴,飞达送料补偿)
设置供料完成设置状态供料完成
等待取料当(状态取料完成)
{
    运行到下一步
}
否则
{
    重新运行本步骤
}
任务完成从头再来
贴合段流水线

交互状态有:
紫色:产品到位
蓝色:贴合完成
任务准备设置输出置位(贴合段阻挡气缸)
启动流水线进料设置输出置位(贴合段流水线启动)
检测贴合段有料信号当(读取输入置位(贴合段有料信号))
{
    运行到下一步
}
否则
{
    重新运行本步骤
}
进料完成流水线停止设置输出复位(贴合段流水线启动)
设置产品到位设置状态产品到位
等待贴合动作完成当(状态贴合完成)
{
    运行到下一步
}
否则
{
    重新运行本步骤
}
阻挡气缸下降设置输出复位(贴合段阻挡气缸)
启动流水线出料设置输出置位(贴合段流水线启动)
检测贴合段无信号当(读取输入置位(贴合段有料信号))
{
    重新运行本步骤
}
否则
{
    运行到下一步
}
出料完成流水线停止设置输出复位(贴合段流水线启动)
任务完成从头再来
贴合任务

交互状态有:
橙色:供料完成
红色:取料完成
紫色:产品到位
蓝色:贴合完成
任务准备无动作
运动到飞达取料位上方绝对运动(飞达取料位上方)
等待飞达供料完成当(飞达送料.状态供料完成)
{
    运行到下一步
}
否则
{
    重新运行本步骤
}
吸嘴取料动作绝对运动(飞达取料位下方)
设置输出置位(吸嘴真空)
延迟(取料延迟时间)
绝对运动(飞达取料位上方)
判断吸嘴是否取料成功当(读取输入置位(吸嘴真空信号))
{
    运行到下一步
}
否则
{
    跳转到(吸嘴取料动作)
}
设置飞达供料完成飞达送料.设置状态取料完成
运动到贴合位上方绝对运动(贴合位上方)
等待产品到位当(贴合段流水线.状态产品到位)
{
    运行到下一步
}
否则
{
    重新运行本步骤
}
吸嘴贴合动作绝对运动(贴合位下方)
设置输出复位(吸嘴真空)
设置输出置位(吸嘴破真空)
延迟(贴合延迟时间)
绝对运动(贴合位上方)
设置贴合完成贴合段流水线.设置状态贴合完成
任务完成从头再来
### Three.js 中实现运动模糊效果 为了在 Three.js 场景中实现运动模糊效果,通常会采用后期处理技术。具体来说,可以使用 `THREE.ShaderPass` 和自定义着色器来模拟这一视觉现象。通过记录物体前一帧的位置并将其与当前帧位置混合,能够创造出流畅而逼真的动态模糊感。 下面是一份简单的示例代码展示如何设置带有运动模糊的渲染循环: ```javascript // 导入必要的模块 import * as THREE from 'three'; import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'; import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer'; import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass'; import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass'; // 创建场景、相机和渲染器 const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); camera.position.z = 5; const renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); // 添加控制器以便于操作视角 new OrbitControls(camera, renderer.domElement); // 设置光源和几何体作为测试对象 scene.add(new THREE.AmbientLight(0x404040)); const light = new THREE.DirectionalLight(0xffffff, 1); light.position.set(1, 1, 1).normalize(); scene.add(light); const geometry = new THREE.BoxGeometry(); const material = new THREE.MeshPhongMaterial({ color: 0x00ff00 }); const cube = new THREE.Mesh(geometry, material); cube.position.y = 1; // 初始高度 scene.add(cube); // 初始化后期处理组件 const composer = new EffectComposer(renderer); composer.addPass(new RenderPass(scene, camera)); // 定义运动模糊所需的变量 let lastPosition = null; function updateBlur() { const velocityFactor = 0.98; // 控制模糊强度 if (lastPosition !== null && !isNaN(lastPosition.x)) { const dx = Math.abs(cube.position.x - lastPosition.x), dy = Math.abs(cube.position.y - lastPosition.y), dz = Math.abs(cube.position.z - lastPosition.z); let blurStrength = ((dx + dy + dz) / 3) * velocityFactor; if(blurStrength > 1){ blurStrength = 1; } // 应用到材质属性或其他方式影响显示效果... console.log(`Current Blur Strength:${blurStrength}`); } lastPosition = Object.assign({}, cube.position); // 复制当前位置给下一帧对比 } // 动画函数 function animate(timeStamp) { requestAnimationFrame(animate); // 更新立方体的高度使其上下移动形成动画 cube.rotation.x += 0.01; cube.rotation.y += 0.01; cube.position.y = 2 + Math.sin(performance.now() * 0.001) * 1.5; updateBlur(); // 调整每帧之间的差异度量以适应实际需求 composer.render(); } requestAnimationFrame(animate); ``` 此段脚本不仅实现了基本的对象旋转和平移动作,还加入了基于时间戳计算的速度因子调整机制,从而使得快速变化的方向更容易观察到明显的拖影痕迹[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值