问题标签 [twincat]

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.

0 投票
0 回答
261 浏览

c++ - Beckhoff 数据提取

我有 2 个已经运行的系统,其中一个使用 Beckhoff,我需要集成它们。我对 Beckhoff 很陌生,但我看到可以使用 C++ 代码并将其放在驱动器中运行。

所以我想问的是:是否有一些 API 可以用来从其单元(CX9020)中的传感器获取数据?
我想在这个单元的操作系统中运行一个进程,这样我就可以通过以太网将这些数据发送到另一台设备,但我不能在中间使用一台 PC(这意味着,没有 Twincat 图形界面)。

0 投票
2 回答
496 浏览

plc - 在 twincat 3 中定义占空比

对于一个学校项目,我需要将温度传感器连接到我的倍福模块并定义温度。我使用的传感器是 SMT160-30,它的工作频率在 1-4khz 之间,这对于标准 io 模块来说非常接近。我可能需要一个用于高速测量的特殊输入模块,但根据我的老师的说法,我必须能够使用标准模块来完成。但是我只是在定义占空比时遇到了麻烦,并且无法真正弄清楚如何解决它。

这是我到目前为止的代码,根据我的老师的说法,我正在朝着正确的方向前进,但我真的被困在这一点上。

希望你能帮忙

此致。

0 投票
2 回答
891 浏览

twincat - TwinCAT 3 或 IntervalZero

我打算测试一个新板的 EtherCAT 通信(假设名称是 XYZ)。所以我打算把XYZ做为Slave并连接到master。为了让我的生活更轻松,我决定在我自己的 PC 上使用 TwinCAT 3 或 RTX64 作为主控(使用 Windows 和四核至强 cpu)。3个问题。1. 这些软件哪个更好,为什么?示例 - 在模块化、进一步的项目、兼容性(软件和硬件)、matlab 集成、成本(也是不可预见的)等方面(可能比我提到的要多)。2. 我可以使用该软件配置一个 EtherCAT 主站,以通过 PC 的现有以太网端口发送数据吗?(我确实读到它们都主要支持 Intel 芯片组,但正在确认)。3. XYZ Slave 是非intel EtherCAT 从芯片组。这会造成并发症吗?(理想情况下它应该'

0 投票
1 回答
4532 浏览

c# - 通过 C# 应用程序使用 TwinCAT.Ads 写入结构数组

我正在使用 TwinCAT.Ads (TwinCAT 3) 通过 c# 应用程序进行 Beckhoff plc 通信。应用程序正在读取和写入一些 PLC 变量。我收到一个错误:

“无法编组对象。参数名称:值”

在编写结构变量数组时。但是应用程序正在读取它而没有任何错误。任何帮助将不胜感激。下面是我的代码示例。

Plc中的结构

c#中的类

我正在使用下面的代码编写,其中句柄 [0]是变量句柄,而是长度为 5 的类数组。

0 投票
1 回答
117 浏览

c# - 如何知道它是否是委托事件回调中的读者?

我有一个关于回调的问题。

我有两种形式(VS2010)。

我创建了一个类,当“valueIN”发生变化时会引发一个事件。

我在我的班级中设置了一个委托,以便任何表单在更改时都可以获取 ValueIN。

问题

我创建 Form2 对象并将回调链接到它,以便它能够获取“valueIN”。但如果 form2 对象未实例化,则运行时会告诉我该对象没有实例化。所以我想知道我怎么知道我的WorkingStation中存在Form2。这一行:SetValueINValCallback(value_received); 应该看起来像东西(在工作站中查看 Form2):if(SetValINCallbackFn.exists) SetValueINValCallback(value_received);

表格2

工作站

还是存在将事件从一个类传递到多个表单的另一种方式?

例如,我需要这些值在 Form2 中绘制图表。

在此先感谢您的帮助!

0 投票
1 回答
253 浏览

c# - 在 c# 中使用多个线程从 TwinCat 遍历非二叉树状结构

我正在尝试优化用于通过 ADS 接口在 TwinCat 3 中查找标记符号的搜索算法。这个问题与 TwinCat 无关,所以不要害怕。

问题:符号没有立即加载。我认为 TwinCatAds 库使用延迟加载。符号具有非二元不平衡树的树状结构。

解决方案:您可以向 ADS 打开多个流。并处理多个线程中的流。

问题是,我将第一级符号除以处理器内核的数量。所以因为树是不平衡的,一些线程比其他线程完成得更快。因此,我需要一个更好的解决方案来分配线程之间的工作。

PS:我不能使用 Parallel.ForEach()。由于流,它导致与单线程解决方案相同或更大的时间量。

我的测试代码看起来像这样,它只计算了一个巨大项目的所有符号。

控制台输出:

如果您尝试运行代码,请使用 TwinCat.Ads 版本 4.0.17.0(我正在使用)。他们破坏了 NuGet 提供的新版本中的某些内容。

0 投票
1 回答
977 浏览

python - 在多个 python 进程中并行使用 pyads 库

我已经导入了 pyads ( Python lib以通过 TwinCAT 库与 TcAdsDll.dll 进行通信。我在这里读到这个库具有多线程功能。

是否也可以在多个进程中使用 pyads 库而不会发生冲突?

为避免冲突,我考虑制作一个 pyads 包装器,它将 ADS 数据共享给具有多处理和队列的多个进程,但与仅执行相比,这将是相当多的工作:

在类似的过程中:

仅在多个进程中运行 pyads.open_port() 不会引发错误。我希望有人能告诉我是否会在两个进程中收到相同的数据而没有冲突/优先级。

[编辑:]我们通过多处理和在进程之间共享数据来实现我们的系统,以避免出现同步问题的风险。这完美无缺,但引入了一些数据流和编程开销。

0 投票
1 回答
179 浏览

c# - c# twincat将参数传递给类构造函数

我想知道最好的方法是什么。

如果我需要将一个类传递给一个类构造函数,为什么我应该在我的类中使用一个变量。

例子:

为什么我不能这样做:

我想_adsServer在很多未连接的课程中使用,我该如何正确地做到这一点?

感谢帮助。

0 投票
3 回答
2375 浏览

automation - 使用数组或字节在结构化文本中设置多个输出

我在 TwinCAT3 中鬼混,试图熟悉 ST。我现在有一个简单的问题。

假设我有 8 个 LED。每个分配给一个输出 1-8。现在我希望能够发送一个看起来像这样的字节:10101010。让我们调用该变量来保存该字节 setOUTPUTS。我会按如下方式初始化 setOUTPUTS 以保持它吗?

初始化该变量后,我如何循环遍历它以将每个 LED 设置为相应的位?

例如:setOUTPUTS = 10001000,我将如何循环通过 setOUTPUTS 变量将 LED 8 和 LED 4 设置为 ON,同时让其他 LED 处于 OFF 状态。

如果这是不可能的,那么使用数组的替代方法是什么?

谢谢!!

0 投票
2 回答
1989 浏览

plc - 从 PLC 启动/停止 TwinCAT 3 任务

每次 PLC 启动时我都需要运行一些代码。此代码只应运行一次,然后在重新启动 PLC 之前不再运行。在允许主 PLC 运行之前,我初始化了一些全局变量并验证了持久数据。这是因为如果其中一些变量设置不正确,机器的操作可能会造成破坏。

有没有办法启动/停止其他 PLC 任务?我注意到 TwinCAT 不支持 PLC 任务的初始化和关闭中断。