问题标签 [twincat-ads]

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 投票
1 回答
4532 浏览

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

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

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

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

Plc中的结构

c#中的类

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

0 投票
1 回答
2878 浏览

unix-timestamp - 如何在 TwinCAT3 中获取 unix 时间戳?

我们正在开发 Beckhoff TwinCAT3 中的数据记录应用程序。要获取我们当前使用 LTIME() 的时间,然后使用 C# 将其转换为 ms:

一定会有更好的办法。此外,我们看到此时间与计算机时间(任务栏中的时间)之间存在差异。

从计算机时钟获取自 1970 年(格林威治标准时间)以来的毫秒的最佳方法是什么?

我看到NT_GetTime。看起来我们需要对结构进行数学运算

感谢您的任何指示。

0 投票
2 回答
612 浏览

twincat - 在 twincat 2 和 twincat 3 之间发布和订阅变量

我需要通过以太网将变量从 Twincat 3 发送到 Twincat 2。这可能吗?我怎么能那样做?

0 投票
1 回答
812 浏览

.net - 通过 vb.net 应用程序使用 TwinCAT.Ads 写入结构数组

我正在使用 TwinCAT.Ads (TwinCAT 3) 通过 vb.net 应用程序进行 Beckhoff plc 通信。应用程序正在读取和写入一些 PLC 变量。我需要写一个结构数组。

我的结构:

我的PLC:

我的代码:

启动此程序时出现错误:

我解决了问题:
vb.net 和 Beckhoff 的类型不一样

....ETC

所以我的结构的参数不是好的类型

0 投票
2 回答
3563 浏览

c# - 通过 ADS.Net 将数组从 C# 发送到 TwinCat 3

我想使用 TwinCat 3 来控制阀门和 Visual Studio C# 来处理想要在喷泉上显示的图像来制作一个自动图形喷泉。

图像处理程序的最终形式是二进制数组图像(附): 图像处理结果1图像处理结果2

我想使用图像处理的最终形式来控制机器上的阀门(阀门为 1 时打开,为 0 时阀门关闭)。我对 TwinCat 3 非常新,尤其是 ADS图书馆。

infosys beckhoff 的样本对我没有帮助,有人可以帮我吗?

谢谢你

0 投票
1 回答
1375 浏览

python - Pyads 读取通知值:当 TwinCat 循环发生时

我想从带有 pyads 的 ADS 路由上用 TwinCat 3 编写的 SPS 中读取一些。循环发生时必须读取这些值。在我的 Python 脚本中,我首先获得了 SPS 的循环时间。我定义了一个读取时间(5000 ms),读取时间和检测到的循环时间(10 ms)我计算了要读取的值的数量。

在一个while循环中,我想读取定义的值数量。

在代码中,它看起来像这样:

当我这样做时,我只是轮询一些值。这意味着每个值都存在多次,我没有读取预定义的 5000 毫秒。

有人熟悉pyads-library吗?发生循环时是否有可能获得某种通知?我不想在 python 脚本中设置计时器。只是为了确保在我阅读时不要跳过一个循环。

0 投票
1 回答
770 浏览

java - Twincat ADS 事件驱动的读取在一段时间后停止工作(Java)

我们开发了一个 Java 应用程序,它使用 TwinCat ADS 库 (DLL) 来读取、写入和处理来自 Beckhoff PLC (CX5120) 的事件。我们在几台机器上成功地运行了它,但不幸的是,我们目前遇到了事件处理突然停止的问题。这是我们经历的确切场景:

  • 正确处理读取、写入和事件。
  • 突然间,我们再也没有收到任何事件,但阅读和写作仍然正常工作。
  • 换了另一台PLC,又开始正常工作了。我们当时认为这是一个许可问题。
  • 在无人值守运行一周后,同样的问题再次出现,PLC/ADS 库似乎不再触发事件,我们似乎无法以任何方式让它再次工作。读/写仍然可以正常工作。

使用另一台装有 Java 应用程序的 PC 进行测试,同样的问题。所以PLC中的某些东西似乎冻结/停止工作。

以下是我们设置事件处理的方式:

0 投票
1 回答
4048 浏览

routes - TwinCAT 3:无法通过 ADS 路由登录(内部错误:System.NullReferenceException)

我有一个可编译的 Beckhoff TwinCAT 3 项目。
我可以直接在机器上登录(没有 ADS 路由)。
当我尝试从远程计算机(通过在线更改)通过 ADS 路由登录时,我收到一条错误消息:
Ads-Error 0x2AF9: A unknown Ads-Error has occured.
Internal error:System.NullReferenceException: Object reference not set to an instance of an object.
我在机器和远程计算机上使用相同的 TwinCAT 版本(TwinCAT v3.1.4022.22)。所以这应该不是问题。
无需任何代码即可登录 更改是可能的,所以我可以看到所有变量。但是由于此错误,我无法更改任何内容。这很奇怪。

0 投票
1 回答
1144 浏览

twincat - 仅运行 TwinCAT 3 ADS(无 XAR)

我有一个可用的 C 项目,它使用 ADS C API 与本地或远程 TwinCAT 3 系统通信(在线示例也很好用)。

但是,我们现在正尝试将程序部署到仅安装了 TwinCAT ADS 的另一台机器上(如仅安装 TwinCAT 3 ADS”下所述)。我们在两台机器上都添加了路由。为了简化测试,我们甚至在 ADS 机器和运行时机器上都完全禁用了防火墙。但我仍然无法将数据返回到应用程序。

我从 ADS 得到的错误是 10051,这基本上是一个Winsock 错误

网络不可达。尝试对无法访问的网络进行套接字操作。这通常意味着本地软件不知道到达远程主机的路由。

但是,我很确定这些路线是有效的。它们是使用广播搜索添加的,我可以在 Wireshark 中看到两个系统都在不断地交换 ADS 读/写请求(如果我删除任何 PC 上的路由,交换就会停止)。

一个细节是仅 ADS 系统未处于启动模式,即我无法将其置于“启动”状态,尽管这可能是正常的,因为那里没有运行时?

我的问题是:

  • 仅 ADS 系统是否也必须使用托盘图标(“启动/重新启动”)切换到启动模式?即这个操作是否也会影响消息路由器?因为如果我在 ADS 系统上尝试这个,我会得到一个错误,所以我不确定这是因为那台 PC 上没有运行时,还是有错误。事件查看器显示错误:“启动 TCRTSOBJECTS 服务器时出错。系统找不到指定的路径”,没有其他线索。

  • 除了配置路由之外,在仅 ADS 的系统上是否还有其他必须完成的设置?

0 投票
2 回答
1124 浏览

python - 无法使用 Pyads 建立路由(Python 和 TwinCAT 3)

我正在尝试使用 Python 中的 Pyads 包连接到 TwinCAT 以与 PLC 通信。我已经在 TwinCAT 中添加了路由,但是当我尝试在 Python 上连接时,我收到以下错误:

“ADSError:找不到目标机器缺少 ADS 路由 (7)”

我的Python代码如下:

请让我知道我哪里错了。如果有人能提供有关使用 Pyads 将 Python 与 TwinCAT 连接的逐步说明,我将不胜感激。