问题标签 [libnodave]

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 回答
1969 浏览

c# - 每当我尝试“writeBytes”时,libnodave 都会超时

我正在使用该libnodave库与 Siemens S7 PLC 进行通信。它工作正常,直到我尝试写入字节。我几乎总是超时。

我必须连接的代码:

并写入字节(在另一种方法中,在稍后阶段调用):

几乎总是返回-1025(超时)。

更改超时,或直接在写入之前移动连接例程都没有效果。

0 投票
1 回答
3912 浏览

android - 在 Android 中使用 LibNoDave 库,总是从 PLC 内存接收 0

我正在尝试使用 Android 设备(当前使用模拟器)与我的 S7-1200 PLC 通信。我找到了示例程序,但我无法让它工作。

这是主程序:

这是 TestISOTCP 类:

连接似乎正在工作,我可以 ping 它并且代码的第一部分显示连接状态正常。

但是,每个返回值都等于 0,我确定我在 PLC 中设置了它。我还在PLC中启用了网络服务器功能(据我所知,这是必要的)。

0 投票
1 回答
3067 浏览

c# - Libnodave:connectPLC 返回 -1

我正在尝试使用 Libnodave dll 通过 CP 343-1 Lean 通过以太网连接到 Siemens CPU315-2 DP。

我已经尝试了下载文件中包含的示例程序“simpleISO_TCP.cs”。函数 openSocket 工作得很好,但函数 connectPLC 总是返回 -1 ,这意味着与 PLC 的连接失败。

任何人都知道什么可能导致这个问题?

PS:我在 Windows 7 64 位中使用 Visual Studio 2012。

0 投票
2 回答
1023 浏览

c# - MVVM WPF 新手,从外部源获取数据

我是 MVVM 的新手,在这里我有点不知所措。英语不是我的首选语言,所以请多多包涵。

我正在尝试为 PLC 制作 HMI。我应该连接到两个不同的 PLC,并显示来自 PLC 中不同数据块的数据。为简单起见,让我们谈谈仅连接到一个 PLC,并仅从一个数据块获取数据。数据块有一个重复的数据结构,在我的解决方案中,我将每个结构都变成了一个对象。

对于与 PLC 的通信,我使用Libnodave。适用于 MVVM 事物的 MVVM Light。

模型。

包含 PLC 结构的“配方”。它还包括get-set-methods。

视图模型。

从 ViewModelBase 继承,并有一个模型对象作为成员。公共的 get-set-methods,它会在 set 上引发 propertychanged。例子:

集合视图模型。

ViewModel 的 ObservableCollection。从 ModelData.cs(具有两个数组 name 和 startbyte 的类)获取模型名称和 startbyte。使用 RelayCommands 我已经测试了将 ViewModels 添加到集合中。

看法。

目前可以使用,希望以后也可以使用

我的程序看起来有点像这样:

(ViewModel 和 ModelData 互不认识)

所以,继续收集数据。我的计划是让 ViewModel 引用一个 PLC 对象(这是Libnodave出现的地方),并使用 PLC 对象方法收集数据。PLC 对象表示与 PLC 的连接,并包含用于写入和读取数据的方法。在 ViewModel 中,我将使用 PLC 对象方法来收集数据(和写入数据)。

这意味着很多 PLC 引用,但锁定有望防止崩溃。我的问题是我不知道如何为 ViewModel 提供对 PLC 对象的引用。PLC 对象也将被其他 ViewModel 使用,并且将有两个不同的 PLS 对象,每个 PLC 一个。

这是一种有效的方法,还是我应该研究完全不同的东西?

0 投票
0 回答
509 浏览

android - 在模拟器上工作,但不在安卓手机上

我正在开发一个包含 libnodave 库(与 Siemens PLC 连接)的应用程序。我想简单地读取一些数据并定期放在android屏幕上。该应用程序在模拟器上运行得很好,但在真实设备上我得到了NullPointerException。我认为我的问题有点来自 Java 语言的使用,但我不确定。我在下面添加代码:

谁能解释为什么会发生这种情况?

这是错误信息:

这是EnglishScreen.java

这是 DataIsoTCP.java:

在清单文件中我放

TCPConnection.java:

0 投票
1 回答
789 浏览

lazarus - libnodave getbit 函数不返回任何值

我正在使用 lazarus 和 nodave 组件,我想读取数字输入的状态,例如 I45.6 我通过以太网连接,据我所知,我有一个连接,CPU 位于插槽 3 和通信卡中是插槽 5。

为此,我正在尝试使用该GetBit功能。

但无论我做什么,我都无法得到回应。我不确定它是组件属性还是其他东西。

这里是完整的代码,组件设置 Area=daveinputs 和 protocol = protoISOTCP

0 投票
1 回答
1661 浏览

c# - 使用 LibNoDave 到 CP 343-1 的多个连接

我想通过 CP 343-1 模块与 CPU 315-2 DP 建立多个连接。在软件中,我可以与设备建立一次连接,但第二次连接失败并在函数 connectPLC 中返回 -1。

这里提出了一个类似的问题:Libnodave: connectPLC returns -1,但我可以建立一个连接,但不能建立第二个连接。

在同一个网络中还有另外两个 CPU 315-2 PN/DP PLC,我们可以与这些 PLC 建立多个连接。

我使用带有 C# 的 Visual Studion 2010,并使用 LibNoDave 连接到 PLC。谁能告诉我是否可以通过 CP 343-1 模块与 CPU 315-2 DP 建立多个连接?

0 投票
0 回答
1288 浏览

java - 从 android 设备(libnodave)连接到 PLC

我使用 libnodave 库(Java 版本)从 android 设备连接到 PLC(S7-300)。在 Eclipse 中编写项目。当我尝试连接时,会出现连接错误。这是日志文件:

请帮帮我!

0 投票
1 回答
2323 浏览

c++ - Libnodave - daveStart() 使用 TCP 连接时出错

我已经使用 libnodave 库建立了与 Siemens S7-300 PLC(通过 PlcSIM 模拟)的连接。将数据连接和写入 PLC 没有问题。但是,我无法从 Start/Stop 更改 PLC 的状态。我正在尝试将以下 libnodave 方法用于此类操作:

两个函数调用都返回相同的错误:33794

nodave.c引用错误如下:

案例 0x8402:返回“CPU 已处于 RUN 或已处于 STOP 状态?”;

daveStart()和函数的使用daveStop()可以在例子中查看testS7online.c

在示例中,仅当 MPI 连接到 PLC 时才会调用启动/停止功能。有谁知道 TCP 连接是否支持启动/停止功能?如果是这样,关于可能导致我的错误的任何建议?

0 投票
2 回答
2036 浏览

c# - 是否可以从同一应用程序中的多个线程与 OPC 服务器进行通信?

我正在从事一个自动化项目,我需要并行处理 21 个固定安装的条形码扫描仪(即所有扫描仪将一直运行)以实现我正在使用多线程。在这里,每个线程将处理一个条形码扫描仪。

现在,我想通过使用 OPC 更新 PLC 中的扫描数据(数据库/内存块/标签)所以,我想知道是否可以在多线程应用程序中使用 OPC 客户端更新 PLC 值。
我正在使用西门子 PLC(型号:- CPU 315-2 PN/DP,第 7 步,300 系列)。

我也想知道我应该使用 OPC Server 还是 LibNoDave。我需要读取大约 300 个标签(PLC 中的数据块)并检查数据更改事件。