问题标签 [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.
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。
你可以建议我做什么?
谢谢
plc - 读取西门子S7 PLC符号表
出于教育目的,我想通过使用 libnodave(或任何等效的开源软件,如 snap7)来读取 PLC 符号表。
实际上,当我从 merkers 读取数据时,我必须提前知道 DB 中会出现什么样的变量,这也是因为 libnodave 会按顺序读取原始字节。
我正在寻找一种方法来提前知道 plc 程序员在存储数据时选择了什么样的数据,因此,当我使用读取的原始字节时,我可以轻松地监控变量并调整我的读取和可视化例程。
提前致谢。
networking - 如果通过 tcp/ip 与 simatic plc 通信,使用哪种协议
我正在使用libnodave和s7netplus向我的 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 相关的确切规格?
java - 无法使用 libnodave 和 Java 从 Siemens S71500 中的 DB 读取数据
我可以使用 libnodave 从 Siemens S7300 读取数据,但无法从 Siemens S71500 读取数据。在代码中,您可以看到我正在尝试从 DB2 读取前 4 个字节的数据。当我更改IP地址和插槽号时,代码在S7300上成功运行
android-studio - 如何在 NDK 项目(Android Studio)中导入和使用 .so 文件
我正在尝试在 android studio NDK 项目中导入和使用 .so 文件。我已经阅读了 android studio 的文档、不同的博客和 StackOverflow 上的答案,但没有一个对我有用,因为它们中的大多数都已过时(3-4 年前写或问过)。也无法遵循文档。
请帮忙!
vb.net - 将字节写入 PLC 设备
我正在处理PLC
设备和我的公司之间的连接PC
。这PLC
是已知的Siemens S7-200
,我正在使用vb.NET
. 可能我应该使用另一种语言,但这vb.NET
是我更习惯的语言。为此,我还使用PPI
协议COM1
和 LibNoDave
库来建立连接。
我正在测试的程序必须有Input 0.0
On
,所以我附加了一个开关来实现它。我还做了一个vb console
读取(和写入) and 的状态Inputs
(Outputs
作为LED
设备上的物理指示器)以及 的状态Bit memories
:
控制台阅读器(LEITOR
部分 - 抱歉)按我的预期工作,如果是这种情况,所有 Q、I 和 M 都正确亮起。
问题是,要运行PLC
程序,我还必须点亮Q 1.1
。Ladder Network
描述这一点的具有以下逻辑映射:
我知道我必须使用代码:
该代码工作正常,没有错误并建立连接(直到最后一个RESponse
)。
这是问题所在:我可以通过执行以下操作来点亮Output 1.1
(在设备上和 上console
):
在哪里
通过将这两个步骤再重复五次(再一次,30
再用两次50
,最后再用 两次50
)。
我很确定我做错了什么,但是对于像我这样的人(刚刚开始),网上并没有很多这些命令描述。
谁能解释发生了什么?还有,我怎么能Q 1.1
一步点亮?
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
什么?而且,如果是这样,我怎样才能将它转换为一个字节?
谢谢。