问题标签 [industrial]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 我可以创建和存储简单模拟的快照吗?
我正在使用simpy和一个将订单分配到生产系统中的工作站的代理(通过 tensorforce 的启发式或强化学习)构建一个生产过程的模拟。
每个模拟都从一个空的生产系统开始,该系统逐渐被订单填满。为了分析我的代理,我想看看他们在没有最初填充空生产系统的预热阶段的情况下如何执行。
有没有办法创建和保存一个简单模拟的“快照”,我可以在稍后阶段再次使用不同的参数(即不同的代理)开始?
我已经阅读了 simpy 文档,但找不到这样的功能。我目前的解决方法是每次都使用空的生产系统启动模拟,并在系统充分利用后更改代理。但是我想摆脱这种方法,因为它浪费了大量的计算时间。
非常感谢您的帮助。非常感谢!
c - 如何让程序在 stm32f7 中等待确切的持续时间?
我正在为我的一个项目使用 STM32f7 Nucleo 板。我需要让程序等待我正在使用的变量指定的确切持续时间。等待时间以纳秒为单位,所以我不能使用HAL_Delay()
方法。
定时器频率为 216 Mhz。我正在使用TIM3
它以 1usTIM2
滴答作响,而在 1 毫秒处滴答作响。
但是,我无法达到程序的确切等待时间。
但是,最终currentTime
总是大于configTime
。
有什么办法可以使currentTime
&configTime
完全相等,以便代码的执行恰好从 开始configTime
?
两个时间都存储在一个结构中
非常感谢这方面的任何帮助
提前致谢
raspberry-pi - 实现树莓派 3b+ 工业化的最佳方式
我在一个 Raspberry 项目上工作,这个项目的目的是使用 Raspberry 来控制工业机器。
我的客户想生产数百个覆盆子。
我有一个自定义的 Raspbian 图像,我想知道如何以工业方式在这几个 Raspberry 上“闪现”我的图像。
目前,客户想要使用Raspberry Pi3b+。
你有什么想法 ?
reverse-engineering - 找出 CRC 或 Chechsum Meter 通信
我需要与设备通信,但没有协议规范。捕获请求我收到此消息。
我的猜测是最后 4 个字节是 CRC 或校验和
如何发现计算最后 4 个字节的算法?
更新
答案是使用reveng <- 这个工具很棒。
并且可以使用 lib [pwntools] ( https://python3-pwntools.readthedocs.io/en/latest/util/crc.html )
pwnlib.util.crc.generic_crc(data, polynom, width, init, refin, refout, xorout)
protocols - 将传感器数据写入标签的 OPC UA 块
OPC-UA 可以将数据以块/块的形式写入标签吗?假设我有一个以 100Hz 采样的传感器/UA 客户端,需要将这些数据发送到 UA 服务器,我在该服务器上有一个 OPC UA 标签来接收该传感器的数据。我可以进行“阻塞”写入,每秒在一个事务中将 100 个样本一起写入该标签吗?每个样本都有一个源时间戳。因此,对于离线应用程序,数据的发送方式并不重要。
目前,我一个一个地传输样本,因此 1 秒数据的 100 次写入事务效率不高。
kubernetes - Prometheus Alertmanager 是否能够区分事件和条件?
我们有一个 kubernetes 系统,在处理来自传感器的数千个输入输入的其他活动中。一些传感器可能会不时停止报告,因此我们可以对断开事件发出警报。当传感器回来时,我们也希望为此获得一个事件。因此,在这些事件(连接和断开连接)之间,特定传感器的状态可以是 OK 或 NOK,我们希望查看当前断开连接的传感器的状态,而不需要检查所有已发布的事件并每次都找出来。
我们可以用 Prometheus Alertmanager 做到这一点吗?如果是,您能否参考可能的方法来完成此操作?如果不是,您处理此要求的默认方式是什么?
robot - 如何在没有硬件的情况下使用 xArmStudio 进行模拟?
我刚刚下载了 xarmstudio,但我无法通过欢迎页面。它要求硬件IP。有没有办法绕过这个。我正在为 xarm 开发,但 xarm 机器人在不同的城市。我在家远程工作。有没有办法绕过这个?
3d - 用于预测材料反应的模拟软件
是否有任何模拟软件可以预测当从不同位置在表面上施加力并且具有可变表面积,可变温度时材料反应。
例如:如果我在软件中在室温下拿一个玻璃杯并用锤子从中间敲它会破碎,类似地如果我在它几乎融化之前在非常热的温度下拿它,那么我敲它会像凝胶状的。那么有没有什么软件可以模拟这一切
python - 用 Python 编程一个工业 pc 来控制液压阀
我最近被介绍到使用 Python 进行工业自动化编程。为此,我的雇主购买了一台工业 PC,并希望借助 Python 编码的程序来控制压力阀、Hyfrauliv 阀。但是,我不确定该怎么做。有人可以指导我吗?
plc - Codesys Control RTE V3 - Ethercat 实时总线的网络适配器配置
我对 Codesys 平台还很陌生,在尝试将 Windows IPC 上的 RTE 用作目标设备时遇到了一些问题。
我正在使用具有以下运行时版本的 IPC(Windows 7 Embedded)-> CODESYS Control RTE V3 v3.5.17.0
我在笔记本电脑上运行 Codesys 环境(也是版本 v3.5.17.0),通过选择正确的目标 PLC 设备(CODESYS Control RTE V3 x64)连接到 IPC 运行时没有问题。
我在我的项目中添加了一个“Ethercat Master SoftMotion”设备,并分配了堆栈将在其中运行的相应 IEC 任务(Bus Cycle Task),并选择堆栈使用的 NIC,没有大问题。正如文档中所述-> https://help.codesys.com/webapp/_ecat_tutorial;product=core_EtherCAT_Configuration_Editor;version=4.1.0.0
当我登录并下载项目以便开始扫描网络以查找不同的 Ethercat 从站时,我收到以下消息:
- [致命错误] 未解决的参考:'SYSETHERNETADAPTERCLOSE'
- [致命错误] 未解决的参考:'GETNUMBEROFADAPTERS'
- [致命错误] 未解决的参考:'GETADAPTERINFO'
- [致命错误] 未解决的参考:'SYSETHERNETADAPTEROPEN'
- [致命错误] 未解决的参考:'SYSETHERNETETHFRAMESEND'
- [致命错误] 未解决的参考:'SYSETHERNETETHFRAMERECEIVE'
- [致命错误] 未解决的参考:'SYSETHERNETFRAMERELEASE'
- [致命错误] 未解决的参考:'GETIPETHFRAME'
- [致命错误] 未解决的参考:'SYSETHERNETIPFRAMESEND'
- [致命错误] 未解决的参考:'SYSETHERNETIPFRAMERECEIVE'
我也得到我的对话框,说明:
“下载时出错:10 个未解决的引用,0 个签名不匹配,0 个版本不匹配找到
硬件上的设备版本似乎与项目中使用的设备版本不同。尝试升级/降级项目中的设备以匹配硬件的实际版本。
请查看消息视图以获取更多详细信息”。
此错误消息似乎具有误导性,因为这是一个新安装环境中的新项目,其中 Codesys 开发和运行时都具有完全相同的版本,因此该项目是为正确版本的运行时创建的。
我看了一下手册,我必须选择正确的驱动程序-> https://help.codesys.com/webapp/_cds_rtev3_startup_cifx_hil;product=core_codesys_control;version=3.5.17.0
此时是我发现问题的时候:
根据文档,我需要在我所做的 PLC 配置的组件管理器选项卡中添加 CmpHilscherCIFX 组件,然后重新启动 IPC。
稍后,必须通过修改“CODESYSControl.cfg”文件来选择引导加载程序和正确的固件。这也是我在附件中看到的一个步骤,我只是添加了 Ethercat,根据我在“C:\Program Files\CODESYS\CODESYS Control RTE3\”中找到的“_cifX firmware.txt”选择 Ethercat 固件文件HilscherCIFX\固件":
应用这些更改后,我再次重新启动了 IPC。但是,我仍然收到此未解决的参考错误,我注意到“C:\Program Files\CODESYS\CODESYS Control RTE3\HilscherCIFX\Firmware”中没有任何 Ethercat 固件文件(cifxecm.nxf):
选择在 IPC 上运行 Ethercat 堆栈的 NIC 是 Intel I211,因此理论上支持 Chipset。
这怎么可能?我不确定这是我问题的原因,但它肯定看起来很奇怪。此外,文档似乎与我使用的运行时版本不是最新的,我相信它是最新的。
我希望有人有一些建议,如果您需要进一步澄清,我会提供更多细节。