10

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

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

4

7 回答 7

6

在使用 libnodave 和 OPC 失败后,我创建了一个 TCON、TSEND 和 TRECV 通信事物。它通过 TCP 传输一个字节并且它可以工作。

于 2012-05-28T10:18:00.017 回答
6

我会选择 SNAP7 和 python-snap7 库。有关如何在此博客中找到的 Raspberry pi 上安装它的示例:http: //simplyautomationized.blogspot.com/2014/12/raspberry-pi-getting-data-from-s7-1200.html

更新:

有关如何设置的视频演练:https ://youtu.be/yJNEsI5KJxs

于 2014-12-14T06:16:16.407 回答
5

我会在 PC 端使用libnodave来更改 PLC 中某些 M 标签或 DB 标签的值。您可以轻松地制作一个梯级梯级,该梯级将监视此标签并执行进一步的操作。尽管 libnodave 本身不支持 Python,但您可以在此处找到 Python 包装器。

于 2012-04-30T09:50:54.877 回答
2

好吧,“python rs232”的快速谷歌出现了一些谈论使用pySerial通过 rs232 进行机器人控制的网站。因此,如果您知道如何将您的小部件连接到 rs232,您就可以走这条路。

于 2012-04-27T19:46:46.517 回答
2

Rothenbacher GmbH 有一个名为“S7connector”的商业库(显然它不是 sourceforge 上的“s7connector”)。它适用于 .NET 框架,因此可以与 IronPython 一起使用。

它确实适用于 S7-1200 PLC。您只需确保要读取/写入的 DB 不是优化的 S7-1200 样式 DB,而是与 S7-300/400 兼容的 DB,您可以在 TIA 门户中创建 DB 时设置该选项。这个库还允许读取和写入所有 I/O 端口 - “影子寄存器”(不确定它们的正式名称)以及直接覆盖前者。

于 2014-06-05T09:20:04.517 回答
2

有几个可用于 Python 的 Modbus TCP 客户端,我已经成功使用了 pyModbusTCP。S7-1200 的 TIA Portal IDE 具有 Modbus 服务器功能,您可以将其加载到 PLC 中,从而允许您直接读取和写入 PLC。

https://support.industry.siemens.com/cs/ww/en/view/83130159

于 2016-09-06T20:56:34.790 回答
1

与 S7-1200 PLC cpu 进行通信的最佳方式是使用 OPC UA 或 Classic OPC(通常称为 OPC DA)。Libnodave 是为 S7-300 和 S7-400 而不是 S71200(2.x 固件)。

如果您使用第三方解决方案与 S7-1200(或 S7-1500)通信,则必须通过允许 put and get 机制来降低 PLC 的安全级别。put 和 get 是纯粹的邪恶使用。您为每个进程打开 CPU 的内存。不要再使用它们了。西门子实际上应该阻止这一点。

这适用于 S7-1200 的所有固件版本。西门子推动人们使用 OPC UA 作为来自 PLC 的默认通信。有什么意义,因为 OPC UA 是工业 4.0 和 IIoT 的协议。

编辑:重写一切。信息严重过时。如果您使用固件 2 或 3 1200,请考虑更换或升级。这些版本不再受支持,并且包含蠕虫问题。

于 2012-05-27T10:57:22.477 回答