问题标签 [snap7]
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.
python - Snap7-Python 数据读取/写入 PLC 期间的作业挂起异常
在使用 Python-Snap7 向 Siemens s7 1200 PLC 读取和写入数据期间,我收到如下异常:
我在单通道 db_read/db_write 期间没有遇到此问题,但在其他读取或写入通道处于活动状态时会发生此问题。
我尝试了 area_read & area_write 和 db_read 和 db_write 选项,但收到了类似的错误。
主要代码:
PLC数据-读写代码
提前致谢。
python - 如何使用 Python-snap7 与西门子 PLC 进行 Python 通信?
我正在尝试将 Python 与 CPU1212C PLC(使用 PLCSIM)进行通信,但总是出现错误。
代码:
这是Windows10的问题吗?
我正在使用 Windows10 64 位、Python 2.7.17、Snap7 1.1.0、Python-Snap7 0.10。
我将 snap7.dll 和 snap7.lib 文件复制并粘贴到 System32、Python27、Python27/site-packages/snap7 文件夹中。我为每个文件夹在环境变量中创建了一个路径以尝试工作。
python - 通过 python 与 Fluke 耐久高温计 (profinet/RS485) 通信
我有一个 Fluke Endurance 高温计(和一个非常脆弱的用户指南),它通过以太网电缆输出,然后我通过 USB3.0 到千兆以太网适配器连接到我的计算机(Windows 控制面板告诉我它正在工作)。根据指南,应该可以通过 RS485 和 profinet 进行通信。但我不清楚两者是否可以通过同一根电缆实现。
我最初的计划是尝试使用 snap7 来尝试 profinet 通信,但是当我尝试时:
我明白了
我可以在该 IP 地址 ping 设备。
所以我的问题是:
任何想法为什么我可以 ping,但 snap7 似乎有连接问题?
如果我无法使 profinet 通信正常工作,我是否有可能通过以太网电缆以某种方式进行 RS485 通信?我查找的所有内容都在谈论拥有进行转换的硬件,所以我假设它不仅仅是在正确的电线上寻找正确的信号格式。我在手册中找不到任何可以打开/关闭一种通信形式的东西,如果可能的话,从菜单上看它们都处于活动状态。
更好的是,如果有人在 python 中与此设备进行过通信,任何建议将不胜感激!
谢谢,
马修
更新:
如果其他人有类似的问题,我通过使用这样的套接字和 ASCII 命令解决了这个问题:
plc - 如何使用 Python 在 plc 中将数据写入 int 值
我的代码:
输出:
Bağlantı Drumu: True
Data AA: HELLO WORD //string
Data BB: 55 //int
Data CC:True //bool
过程结束,退出代码 0 ...
////////////////////////////////////
如何在这里更改整数值?
plc.db_write(?????????)
c++ - ROS CPP Snap7 Linux - CMake 未链接到 lib
我想使用 Snap7 (多平台以太网 S7 PLC 通信套件)在 ROS 和 Siemens S7 1500 之间建立通信。
我遇到了链接器问题 - 虽然我可以使用自定义 FindLibSnap7.cmake 找到包含和库 .so 文件本身,但target_link_libraries
没有链接到 snap7 库。这是我的方法和有助于调试的输出:
(注意:目前我们被迫使用 ROS Kinetic,因此使用 Snap7 Python 包装器似乎不是一个选项,因为它是用 python3 编写的。)
我安装了库:
sudo add-apt-repository ppa:gijzelaar/snap7
sudo apt-get update
sudo apt-get install libsnap71 libsnap7-dev
结果:
FindLibSnap7.cmake:
CMakeLists.txt:
catkin_make 输出:
lld 输出
如您所见,找到了包含以及库。提供${LibSnap7_LIBRARIES}
给target_link_libraries
不是链接到 libsnap7.so
从源代码安装 snap7 后,我发现示例 cpp 的链接正确。
如果有人知道为什么会发生此错误链接,我将很乐意提供任何帮助。
先感谢您!
python - 适用于 Windows 10 的 Anaconda 上的 python snap7 - 找不到 snap7 库
我尝试在适用于 Windows 10 的 Anaconda 上使用 snap7(从 S7-1200 读取)python 3.8。我在这个问题上遵循了许多建议。但是,我无法解决这个问题。
Snap7Exception:找不到 snap7 库。如果已安装,请尝试运行 ldconfig
如果您对此问题有任何建议,我会感谢所有帮助。
arrays - 从位列表转换为字节数组
作为一个新的编程,我在这里真的很挣扎,它使用 snap7 库连接到 siemens PLC,在树莓派上使用 Python3。基本上,我将数据作为字节数组读取,然后对其进行修改并将其发送回 PLC。我能够读入它并将其转换为列表并修改数据。
所以我的数据是一个看起来像 [0,0,0,0,0,0,1,0] 的列表。它总是正好是 1 个字节(8 位)。所以我可以修改这些位。但是,我正在努力将它们重新放入字节数组中。我需要从那个列表转换成一个字节数组响应,看起来应该像 bytearray(b'\x02')
我所期待的几个例子
它是一个只有 1 个字节的字节数组,这有点奇怪,但这就是库如何工作以写入 PLC 中的数据块。
如果有任何其他数据可以分享,请告诉我凯文
python - 西门子 LOGO! PLC 数据顺序错误
所以我正在访问一个 Siemens LOGO!PLC从中提取一些数据。我设法和我的工作伙伴一起做到了这一点,但我们对如何保存数据感到困惑。数据在字典中加上来自 PLC 的输出和输入字节的时间戳。但是数据以特定顺序出现,并在提取数据的那一刻加上时间戳。
现在的问题是时间戳和数据的保存顺序与数据进入的顺序不同。在这个过程中的某个地方它犯了一个错误(我认为),但我们似乎找不到它。
这是我们使用的 Python 代码:
而我们得到的数据:
这是脚本的一次连续执行。正如您所看到的,时间戳并不是真正按顺序排列的。谁能帮我们解决这个问题。也许你们能看到我看不到的东西。
非常感谢!
python - 通过 siemens s7-1200 plc 中的 python snap7 库读取定时器、计数器和数据寄存器的问题
我正在使用 python 和 snap7 库来读取我电脑中的 plc (siemens-s71200) 数据,我已经成功读取了输入、输出和内存位,但我无法读取计时器、计数器和数据寄存器。我曾尝试使用库的“read_area”、“tm_read”和“ct_read”函数,但无法获得结果。我在我的 plc 程序(TIA 门户 v15.1)中使用了四个计时器(db1、db2、db3、db4)和三个计数器(db5、db6、db7)和一些数据寄存器(mw0、mw5 等)。我的编码如下:对于计时器,我同时使用了“read_area”和“tm_read”函数
它抛出索引超出范围错误(我尝试使用不同的数字作为参数,有时它会抛出无效参数错误)。
我也试过这也显示与上面相同的错误。