问题标签 [s7-1200]

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

python - 如何在 Siemens S7-1200 和 python 之间进行通信?

我正在 S7-1200 plc 上运行一个进程,我需要它向我的 python 脚本发送一个启动信号,在脚本运行完成后,它需要向 plc 发送一些内容以启动下一阶段。哦,它必须在梯子上完成。

有没有一种快速而肮脏的方法可以通过 profibus 发送东西,或者我最好只使用 RS232 东西?

0 投票
1 回答
3912 浏览

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

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

这是主程序:

这是 TestISOTCP 类:

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

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

0 投票
2 回答
747 浏览

agents-jade - JADE 代理与 siemens S7 1200 PLC 之间的通信

我想了解如何使我的代理与 PLC(西门子 S7 1200)进行通信。基本上,代理是在 JADE 中创建的,并做出一种决定,即他们将发送 PLC 的真假决定。如果它为真,则 PLC 被激活或以其他方式激活。我听说过使用简单对象访问协议的概念,但不熟悉它(如果有人知道如何使用它,他们可以帮助我提供示例程序或链接我的程序的方法)。在 2013 年 4 月 8 日之前完成这项工作

0 投票
1 回答
1344 浏览

html - 如何解决来自网络服务器应用程序的 Siemens s7-1200“GET”错误?

我使用 siemens s7-1200 网络服务器。我正在尝试从 1200 读取数据,所以我制作了 jsnop 文件并将其放在 1200 上,并在我的电脑上制作了一个网页来读取该文件。我已经在我的虚拟机上测试了 Web 服务器上的代码,它工作得很好。当我尝试在 1200 Web 服务器上执行相同操作时,我收到“GET”错误。

我的 json 文件:

和我的html:

ip是正确的。就像我说的,当我将 json 文件放在我的虚拟机 Web 服务器上并在朋友的电脑上读取它时,这工作得很好。

0 投票
1 回答
285 浏览

javascript - 在javascript中使用变量的值?

我正在尝试做一个基于 WEB 的电源管理系统,我正在使用 PLC Siemens S7-1200。我想在 javascript 中使用 PLC 中的一些标签来构建图表。当我使用:

在图表代码中,这可以正常工作。

现在我想使用带有标签“电压”的变量值而不是固定数值“230”作为 PLC 中的标签。我怎样才能做到这一点?

0 投票
0 回答
1445 浏览

java - Siemens S7-1200 Web 服务器返回错误 500

我想知道这里是否有一些大师可以帮助我解决以下问题。

我有一个西门子 S7-1200 PLC,我通过 HTTP 和 PLC 中的内置网络服务器访问它。PLC 已经设置了一个非常简单的网页,该网页在“HTML 表格”内有两个标签,以便可以加载页面并将标签的新值写入 PLC。这已经通过浏览器进行了测试并且运行良好。

然后我有一个 Java 应用程序,它每小时连接到 PLC 两到三次,使用 GET 请求加载页面,将新值写入任一标签字段(值为 1),然后将页面发布回网络服务器. 这也很有效。

因此,在加载带有标签字段的页面之前,HTTP 客户端必须使用用户/密码通过 PLC 网络服务器中的另一个页面登录。Java 应用程序实际上执行此操作,然后获取“标记页面”、更新标记并发布页面。

问题是这将运行几周,然后突然网络服务器将在登录阶段开始返回“错误 500 ”:

500内部服务器错误

关闭并重新打开 PLC 可以让一切重新开始工作,但这仍然不好,因为 PLC 和 Java 应用程序应该按照特定的时间表敲响学校的铃声,当这个问题发生时,每个人都会坐在那里等待它响起,但它没有:-)

我知道,没有太多信息可以继续,我主要希望其他人有类似的问题,并了解为什么会发生这种情况。我不是PLC专家,所以我不知道PLC上是否有可以研究的日志或类似的东西。

有关更多信息,我正在使用 Apache HTTP 客户端库从 Java 应用程序与 PLC 网络服务器通信。

提前致谢,

霍杜尔·索达森

0 投票
1 回答
807 浏览

c# - BMS通过C/C++/C#读/写

嗨,我正在搜索整个互联网,但我想我没有正确搜索它。我正在尝试查找 dll 或库或对我有帮助的东西,从 PLC(例如 Siemens S7-1200)读取和写入值。

我发现了 Arduino(我认为这是 PLC 和 PC 之间的中间件),其中的功能如下

让我非常容易阅读和写入引脚。以某种方式可以通过程序员可以理解的功能从/向 PLC(Siemens S7-1200 ex.)读取/写入数据。我知道它可以通过位移等低级编程来完成,但我不熟悉它。

那么是否有参考、文档或一些代码示例可以帮助我了解如何使用 C/C++/C# 和可理解的功能打开/关闭灯并从温度传感器读取值。

先感谢您

0 投票
2 回答
8531 浏览

plc - 从 Siemens s7-1200 (0x8104) 读取时出现 libnodave 错误

在检查 s7nodave 对 S7-1200 的 EPICS 设备支持时,我遇到了一个涉及 libnodave 的问题。当我尝试读取 PLC 中的任何内存地址时,IOC 控制台报告错误:

那是 libnodave 状态码 0x8104。当我尝试在网上搜索此错误代码时,所有结果都引用了 S7-1500,而不是 S7-1200。

我可以通过 Siemens SDK 访问这些内存块:它们存在并包含有效数据。

为什么 S7-1200 拒绝向 libnodave 发送数据?是否有任何选项可以使数据块从网络中可用?

我用的是 EPICS 版本。3.14.12.4, s7nodave 1.03 build with asyn ver. 4.11,增强版。1.55.0。在 PC 和 Virtualbox 上尝试了各种版本。

0 投票
1 回答
1828 浏览

plc - S7 200/1200 到 oracle 数据库数据传输。选择 OPC。与 WinCC6 的通讯方式

我是PLC的新手。
目前我有一个 s7-200 cpu + cp243-1 和一个连接到工厂网络(以太网)的 s7-1200 cpu。目标是将数据从这两个 cpu 传输到 Oracle 数据库。我的部分工作是将数据传送到 opc 服务器。我正在考虑 3 种变体:

-电脑访问 OPC (6ES7840-2CC01-0YX0)。真的很便宜,但我注意到有“单一许可证 F.1 安装”。我想知道这是什么意思?这是否意味着我可以在一台机器上多次或一次安装它?此外,据我在网上看到的,使用 S7-1200 时可能会出现一些问题,因为它最初是为使用 s7-200 而设计的。

-Simatic网络 OPC。这个有什么优点?

- Matrikon Siemens S7 PLC OPC 服务器。好像不错,就是贵。

我只需要传输大约 30 个标签,这使我无法在 Matrikon 上花钱,在这种情况下,我的首要任务是访问 PC,但有人说它有时会不稳定。顺便说一句,我在工厂网络中的某些计算机上安装了 WinCC 6(不灵活)。据我所知,WinCC 6 包括它自己的 opc 服务器(不确定)。那么可以在那里转移标签吗?到目前为止,我找到了 2 个来源:

这里他们说需要 OPC 才能与 WinCC 进行通信。

在这里,它们暗示不需要额外的 opc。作为 WinCC 的一部分提供。

老实说,我对 WinCC 没有经验,所以我需要你的建议。

0 投票
1 回答
4099 浏览

c++ - 与 S7-1200 的 libnodave 通信

几天来,我一直在尝试使用 libnodave 作为通信库与西门子的 S7-1200 PLC(CPU 1214C)进行通信。libnodave 库提供了一些东西。Delphi 应用程序正在运行,Windows 可执行文件正在运行。

在 Vmware 上,我正在运行 Linux,并且 testISO_TCP 的预编译二进制文件正在运行。好像可以用吧?

但是当我将源代码 1:1 复制到我的 IDE (Eclipse) 时,我收到以下错误消息:

连接到PLC时似乎出现了一些错误。以下函数会生成此错误:

DaveConnectPLC(直流)

请注意,当您将其与 Linux 中执行的二进制文件进行比较时,机架和插槽是不变的!

有人能帮我让它在 Eclipse IDE 上运行吗?所有的可执行文件/二进制文件都在工作,这很奇怪,但是当我想直接从 IDE 执行它时却没有。

提前致谢。