问题标签 [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 投票
0 回答
145 浏览

vb.net - 无法连接到 Siemens S7 可能是由于使用了错误的协议

我在连接 PLC 时遇到很多麻烦,为此,我使用了 libnodave 库。

这是我得到的最后信息:CPU 412-2 通信:CP 443-1

到目前为止,我设法连接到自动机,但是,如果我使用 - UserTransport 协议,我的程序在我尝试读取数据时崩溃 - ISOTPC 或 MPI 协议,我无法连接到 PLC ...

到目前为止,我的代码与这个没有什么不同:http ://www.automation-sense.com/medias/images/source-code-and-example-visual-basic-libnodave.jpg

在我的例子中,端口号为 25,机架值为 0,插槽值为 3。

你可以建议我做什么?

谢谢

0 投票
1 回答
1300 浏览

plc - 读取西门子S7 PLC符号表

出于教育目的,我想通过使用 libnodave(或任何等效的开源软件,如 snap7)来读取 PLC 符号表。

实际上,当我从 merkers 读取数据时,我必须提前知道 DB 中会出现什么样的变量,这也是因为 libnodave 会按顺序读取原始字节。

我正在寻找一种方法来提前知道 plc 程序员在存储数据时选择了什么样的数据,因此,当我使用读取的原始字节时,我可以轻松地监控变量并调整我的读取和可视化例程。

提前致谢。

0 投票
1 回答
1131 浏览

networking - 如果通过 tcp/ip 与 simatic plc 通信,使用哪种协议

我正在使用libnodaves7netplus向我的 simatic s7-300 读取和写入数据块。
一切正常,但我想了解 libnodave 或 s7netplus 是如何工作的,以便我可以基于普通的 tcp/ip 套接字在 c++ 或 c# 中实现类似的东西,只是为了好玩。
在图书馆网站或源代码本身上,我找不到任何关于它们是如何实现的信息,只是它们使用的是 tcp/ip 套接字(我知道在 libnodave 中你也可以使用其他方式,但现在我只关注 tcp/ip )。
在我对其他网站的研究中,我发现我可以使用 open tcp/ip 或 modbus tcp/ip。
但是我真的找不到任何与 simatic s7-300 相关的规范,这些规范告诉我如何建立连接或发送什么来开始数据传输......
请不要理解我的错误。
例如,对于 modbus tcp/ip 本身,我可以找到规范,但如果我想从数据块 17 读取 10 个字节或向数据块 1 写入 3 个字节,这些规范并没有告诉我要向 plc 发送什么。

所以我的问题是,在 tcp/ip 之上,我必须与我的 plc 交换来自 pc 的数据以及在哪里可以找到与 simatic s7-300 相关的确切规格?

0 投票
1 回答
3149 浏览

java - 无法使用 libnodave 和 Java 从 Siemens S71500 中的 DB 读取数据

我可以使用 libnodave 从 Siemens S7300 读取数据,但无法从 Siemens S71500 读取数据。在代码中,您可以看到我正在尝试从 DB2 读取前 4 个字节的数据。当我更改IP地址和插槽号时,代码在S7300上成功运行

0 投票
1 回答
2480 浏览

android-studio - 如何在 NDK 项目(Android Studio)中导入和使用 .so 文件

我正在尝试在 android studio NDK 项目中导入和使用 .so 文件。我已经阅读了 android studio 的文档、不同的博客和 StackOverflow 上的答案,但没有一个对我有用,因为它们中的大多数都已过时(3-4 年前写或问过)。也无法遵循文档。

请帮忙!

0 投票
0 回答
500 浏览

vb.net - 将字节写入 PLC 设备

我正在处理PLC设备和我的公司之间的连接PC。这PLC是已知的Siemens S7-200,我正在使用vb.NET. 可能我应该使用另一种语言,但这vb.NET是我更习惯的语言。为此,我还使用PPI协议COM1LibNoDave库来建立连接。

我正在测试的程序必须有Input 0.0 On,所以我附加了一个开关来实现它。我还做了一个vb console读取(和写入) and 的状态InputsOutputs作为LED设备上的物理指示器)以及 的状态Bit memories

安慰

控制台阅读器(LEITOR部分 - 抱歉)按我的预期工作,如果是这种情况,所有 Q、I 和 M 都正确亮起。

问题是,要运行PLC程序,我还必须点亮Q 1.1Ladder Network描述这一点的具有以下逻辑映射:

阶梯网络

我知道我必须使用代码:

该代码工作正常,没有错误并建立连接(直到最后一个RESponse)。

这是问题所在:我可以通过执行以下操作来点亮Output 1.1(在设备上和 上console):

在哪里

通过将这两个步骤再重复五次(再一次,30再用两次50,最后再用 两次50)。

我很确定我做错了什么,但是对于像我这样的人(刚刚开始),网上并没有很多这些命令描述。

谁能解释发生了什么?还有,我怎么能Q 1.1一步点亮?

0 投票
0 回答
179 浏览

vb.net - 从 Siemens PLC S7-200(COM 协议)读取 M0 字节

我正在使用一个Siemens PLC SIMATIC S7-200和一个VB.NET与之通信的程序(并libnodave为此使用库)。我对这一切都很熟悉,但我无法弄清楚一些事情,我希望你们中的一些人能帮助我。让我试着解释一下:

建立所有通讯后

我尝试M0使用以下内容读取字节:

这是我收到错误的地方(在某些情况下)。我将问题定位PCNCTR.getS8-81. 我怎样才能变成-81一个字节?我正在使用M02FNC001函数来做到这一点,但这是我不太了解的部分。

那么,为了澄清一些事情,-81输出的正常值是PCNCTR.getS8什么?而且,如果是这样,我怎样才能将它转换为一个字节?

谢谢。