问题标签 [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.
plc - CoDeSys 中指向 bool 的指针数组
我想声明一个带有初始化的指针数组
其中 r0, r1, r2 在 Modbus 中声明为按位保持寄存器。我得到一个错误:错误的初始值。
如果:
一切都按我的意愿工作。
codesys - 使用 CoDeSys 在 WAGO PLC 上跟踪程序更改
每次更新 PLC 程序以跟踪更改时,我都需要增加一个整数值。
有类似online_change
and之类的系统事件before_download
,但我不知道如何实现它们的功能。
我还需要在更新之间保存价值。我认为应该创建跟踪变量,RETAIN
但不确定。
java - 在不同的编程语言(Java <-> CoDeSys)之间通过 TCP Socket 发送结构
我需要通过 TCP 套接字发送一个结构(由布尔值、整数和字符串组成)。发送器(PLC)用 CoDeSys 实现,接收器用 Java 实现。
一种解决方案是使用数据创建一个大字符串,通过套接字发送它并在 Java 中对其进行解释。但这似乎非常低效(因为结构有 50 多个变量)。
还有其他发送结构的方法吗(例如:在 Java 中有序列化,但在 CoDeSys 中不支持)?
如果不是,那么格式化数据的好方法是什么?(e.g.: "variableName1:value1;variableName2:value2;...")
是否有任何“技巧”可以自动将字符串中的值分配给 Java 端的对象?
codesys - 在 Codesys 中显示日期和时间
我正在尝试在 Codesys Visualization 中显示系统时间。
我正在使用“#dt”来获取时间并将其显示在文本字段中
%t[ddd MMM dd.MM.yyyy HH:mm:ss] 占位符。
我想显示当地时间。但我正在进入“UTC”时间标准。
我应该怎么做才能获得当地时间?
c++ - 在基于 Linux 的 WAGO PFC200 PLC 上与 CoDeSys 程序通信
我目前正在熟悉 PLC,尤其是 WAGO 750-8206 PLC。它提供了一个 linux 操作系统,可以运行 CoDeSys 程序。控制器连接了一些 I/O 模块:750-530、750-430 和 750-600。我想知道的是:
是否可以编写在 PLC 上运行并获取/设置数字输入和输出的 C++ linux 应用程序?
更好的是:我可以编写一个 CoDeSys 程序,它“与 I/O 对话”并处理所有逻辑,同时可以被 C++ linux 程序访问吗?想法是这样的:我希望 CoDeSys 程序检查两个数字输入。如果两者都很高,则应将变量设置为定义的值。linux 应用程序应该能够读取该变量并进行进一步处理(例如将 JSon 数据发送到服务器或类似的)。
此外,当 linux 应用程序收到触发命令的消息时,我需要能够将命令从 linux 应用程序发送到 CoDeSys 程序,以便切换数字输出(或设置模拟输出等值)。
非常感谢您对这个主题的任何想法和评论,因为我对这个主题完全陌生。提前致谢!
codesys - 我需要连接几个字符串
我是结构化文本的新手,我想知道如何连接多个字符串。最干净的方式。在这个实例中,我只需要在创建字符串时更改一个变量。我还有另一个需要做的事情 2。这个数字可能会增长。这样做的目的是让我可以将 XML 消息发送到 HTTP 服务器。这是用于记录数据。
在这种情况下,reader 变量是一个单词。
c# - C# + CoDeSys 自动化平台 SDK -> PLC 的变量 = VarRefState.NotMonitoredYet
我正在尝试读取 PLC 的变量。
在自动化平台中,我有一个插件来启动我的测试(我用 C# 编写的)。
当我第一次执行插件时,它总是给我同样的错误。但是如果再次执行它就很好了。
我使用 aList<IOnlineVarRef6> vars
来读取我的变量。我的错误是我vars
的State
是NotMonitoredYet
。例子:
我认为问题在于获取我的变量的方法:
我有一个在调用 CompareValues() 之前等待的方法,它重试 3 次,然后在重试之前等待:
32-bit - 将 32 位实数转换为 2 个 16 位字节
我正在尝试通过 CAN 通信 (IFM) 发送 32 位实数,但 CAN 通信仅接受 16 位值。
如果我尝试发送的值高于 255,它会重置为 0 并继续以该模式。因此,我需要将 32-Bit Real 值拆分为两个 16-Bit 值,然后在通讯的另一侧重新组合。
我似乎无法理解如何在结构化文本中做到这一点。
任何帮助,将不胜感激
plc - 如何在 Codesys 3.5 的 ST 上的自定义功能块中实时工作
我正在尝试完成非常简单的任务,但看起来我无法弄清楚我们的方法。
我的任务是每日计划。输出Q1
必须是HIGH
每天从 1:00 到 2:00。我找不到对我有帮助的功能块。我决定创建自己的。
这是我的定义。
这个想法是这样的。EN
是输入。也应该是为了HIGH
输出。Q
HIGH
其他是一周中的几天。如果我想在那天安排工作,我可以设置 1 或 0。几乎可以创建任何类型的时间表的通用功能块。
问题 1:当我制作工作日变量类型BOOL
时,当我将块添加到 LD 行时,它会为每个工作日参数创建联系。
我该怎么做才能使EN
联系人仅连接到线路?
如果我尝试使用 EN/ENO 添加功能块,那么我不知道
1)我如何知道功能块内部EN
是什么,HIGh
或者我如何访问该变量?2) 我无法将线圈连接到我的Q
输出。它只连接到ENO
. 我如何控制状态ENO
?
但这还不是全部。我添加了时间和日期库
但我发现唯一能与时间一起工作的是RTCLK.GetDateAndTime
功能块。而且我无法弄清楚如何使用它。
我的简单任务是仅获取当前时间和一周中的当前日期,如果启用了本周,并且当前时间在 input T1
-make Q
= HIGH
else的范围内LOW
。
有什么提示吗?
codesys - 如何在 CoDesys 可视化中以新行显示文本
在 CoDeSys 可视化中,如何在换行符中显示文本。
我有一个 csv 文件,它由 CoDeSys 读取并在 CoDesys 矩形文本块中显示 csv 列文本。
在 csv 文件中我尝试给 $N, \n\r,\n, 没有机会