问题标签 [codesys]
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.
real-time - 在 CODESYS (IEC61131) 中实例化众多功能块
我使用 CODESYS 制作了一个功能块来执行电能计量。功能块的输入是电流和电压,输出是能量。现在,我们需要有 1000 个此功能块的实例来运行我们拥有的 1000 米的代码。编写(可能还有复制和粘贴)这些实例似乎不是最有趣的工作。想知道是否有人有更聪明的方法来做这个众多的实例化。
例如,下面是 2 个实例的代码(在 CODESYS 中)的样子:
我们希望拥有 1000 个实例。任何想法都受到高度赞赏。
file-io - 如何在 CODESYS (IEC 61131-3 ) 中执行文件 I/O?
我正在使用自动化设备(配备 CODESYS)来计算功能块的输出值。为了确保函数按预期工作,我们希望将此输出值与另一个我们没有编写的函数块的输出结果进行比较。
为了报告此比较的结果,我们希望以图形的形式绘制上述两个值。因此,我们需要有这两个数据的时间字符串(csv 或任何其他格式)。我做了一些谷歌研究,也看看这个问题。似乎没有大量关于如何使用 CODESYS 进行文件 I/O 的信息。
我想知道是否有人有类似的经验(执行同步文件 I/O 以生成 CSV 数据)。
任何想法都受到高度赞赏。谢谢。
opc-ua - 带有 Codesys v. 2.3 的 OPC UA
我正在尝试使用 Wago 750-881 作为 OPC UA 服务器,我正在使用 Codesys v. 2.3 对其进行编程。
我的问题是如何做到这一点?我找到了很多关于使用 Codesys v. 3.5 的 OPC UA 的信息,但没有找到关于 Codesys v. 2.3 的任何信息。
可以请任何人帮助我吗?
plc - 三菱 GX Works 2 中输入数据的平均值
我需要从三菱输入模块 Q64AD 获得输入信号的平均值。我在结构化文本中的 GX Works 2 中工作。
这就是我过去在 Codesys 中获得平均值的方式:
napr1 - 来自模块的值
这段代码在 GX Works 2 中不起作用,我认为因为 SUM1 不是 INT 数据类型,而只是 Word[signed] 类型。
有没有办法使 SUM1 成为 INT 类型,或者该解决方案可能有另一种逻辑?
function - 如何使用结构化文本在 codesys 的函数中添加计时器?
我在 Codesys V3.5 SP9 Patch 5 中遇到结构化文本问题。我想做的是能够在我创建的函数中使用计时器,该函数在 POU 中调用。我通过将计时器直接放入 POU 并在不使用函数的情况下完成了相同的操作,并且它正在工作。
我的函数声明:
我的功能代码:
我在 POU main 中的代码:
此代码用于根据变量“DDUC_ComSta_Dcux_x”为“AssignDOORStatus”分配 0 或 1,然后,当“DDUC_DCUxEmHdler_x”为真时,它使用计时器将“AssignDOORStatus”值从“0 或 1”翻转为 10。
我必须多次调用 POU 这个函数。
提前致谢!
arduino - PLC和Arduino之间的MODBUS TCP
我正在尝试在 PLC(WAGO 750-8101)和 Arduino(UNO)之间交换数据,PLC 作为主机,Arduino 作为从机,但似乎无法连接。
对于 Arduino,我有一个 MINI ENC28J60 作为网络模块,并像这样连接到 arduino:
SCK - 引脚 13,SO - 引脚 12,SI - 引脚 11,CS - 引脚 10
VCC:3.3V
对于 arduino,我正在使用这些库:
主设置
和主要代码:
从站设置(arduino):
输出(调试)从站:
我能够在 PLC 和 Modbus Slave 模拟器之间建立连接(并交换数据),但是当我尝试连接 arduino 时,我似乎无法建立连接。
这是我在 PLC 中遇到的错误:
有什么建议么?问题是否可能是我正在使用交叉电缆(即使 WAGO 在以太网设置中设置为切换模式?)
c++ - C++ Builder 中的 ActiveX 内存泄漏
我在项目中使用 activeX 组件时遇到内存泄漏。我正在使用 Embarcadero Rad Studio 10.2 并开发一个需要与同一台机器上的 Codesys 软 PLC 通信的 C++ 工业程序。
所以,我有一个 ActiveX 组件可以处理我的程序和软 PLC 之间的通信部分。
我导入了 ActiveX,一切看起来都还不错,但我发现了一个每小时大约 20MB 的内存泄漏......要导入库,我遵循了官方指南: http ://docwiki.embarcadero.com/RADStudio/Tokyo/en /Registering_a_COM_Object
我做了很多测试,我意识到每次使用涉及变体的 ActiveX 方法时都会发生内存泄漏。看起来该程序无法释放组件使用的某种临时变体。
我已经测试了 Visual Studio 示例并且一切正常,所以我认为问题是由 Rad Studio 在我导入 activeX 组件时生成的类型库产生的。ActiveX 开发人员还声称一切都适用于 Visual Studio。
我还使用了 Dr. Memory 和其他确认泄漏存在但无法提供详细信息的工具,因为我认为 ActiveX 不是为调试而编译的。
关于这种行为的原因有什么想法吗?
RAD studio 中的 ActiveX 可能存在一些不兼容问题?
提前致谢
编辑
显示 ActiveX 用法的示例。
单元1.cpp
单元1.h
并根据要求在导入 ActiveX 时由 RAD Studio 生成 TLB
.cpp 文件
.h 文件对于问题主体来说太长(此处为完整代码),但 MSyncReadVarsFromPlc 方法是
正如您在 TLB 中看到的那样,MSyncReadVars 方法返回一个 VARIANT,该 VARIANT 实际上包含具有请求的变量值的字节数组。
Variant varReceived 存储返回的 VARIANT,但在完成时使用 VarClear 解除分配。
知道什么会产生内存泄漏吗?
我的感觉是从 MSyncReadVarsFromPlc 返回的 VARIANT 在方法执行后没有被释放。但我看不到任何解决此问题的方法,也因为 Visual Studio 示例中的相同用法可以正常工作。
ActiveX 能否在 Visual Studio 而不是 RAD Studio 中正常工作?
arrays - 注释 Codesys 在线视图的数组元素
Codesys 有一个很好的 (IMO) 功能,当在线时,与变量声明相邻的注释会显示在表格视图中,这使得其他人更容易理解原始程序员的意图。
如果有某种方法可以为数组的各个元素添加类似的注释以指示特定含义,那就太好了。有谁知道这是否可以实现?
raspberry-pi - Codesys V3 和 Raspberry Pi SL - 如何从地址读取值
晚上好。我有一个关于 CODESYS Development System V3 和相关 CODESYS Control for Raspberry Pi SL 的使用的简短问题。我如何设法获取连接的传感器(例如 si705x、vcnl)的值或通过 I2C 总线写入某些位?不幸的是,我找不到任何决定性的结果或有用的文档可供使用。使用各个传感器的数据表,我也不了解。
格力兹