首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到snap7库

找不到snap7库
EN

Stack Overflow用户
提问于 2015-11-13 16:21:07
回答 4查看 17K关注 0票数 2

我尝试用python-快照70.4包装器安装snap7 (从S7-1200中读取),但是我总是通过下面的简单代码获得一个回溯。

代码语言:javascript
复制
from time import sleep
import snap7
from snap7.util import *
import struct

plc = snap7.client.Client()

回溯:

代码语言:javascript
复制
 >>> 
Traceback (most recent call last):
  File "Y:\Lonnox\Projekte\Bibliothek\Python und SPS\S7-1200 Test.py", line 6, in <module>
    plc = snap7.client.Client()
  File "C:\Python34\lib\site-packages\snap7\client.py", line 30, in __init__
    self.library = load_library()
  File "C:\Python34\lib\site-packages\snap7\common.py", line 54, in load_library
    return Snap7Library(lib_location).cdll
  File "C:\Python34\lib\site-packages\snap7\common.py", line 46, in __init__
    raise Snap7Exception(msg)
snap7.snap7exceptions.Snap7Exception: can't find snap7 library. If installed, try running ldconfig

安装snap7和python包装器的步骤如下:

  1. 从sourceforge下载snap7并将其复制到windows 8的system32文件夹
  2. 使用pip安装python-快照7安装包装器。

如何在windows上正确安装snap7?

pip安装日志

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-11-20 13:31:48

经过一些尝试和错误实验,以及一些涉及开发人员的snap7信息,我修复了这个问题。快照7.dll和.lib文件所在的文件夹必须存在于Windows的环境变量中。如果您从Python安装程序中选中了"add path“选项,则可以将这些文件复制到Python。

详细信息请参见图片:编辑环境变量

编辑环境vars

为了给像我这样的新手提供一个很好的起点,这里有一个最小的snap7教程,可以从S7 1212CPLC和Python3中读取DB的变量:

代码语言:javascript
复制
import snap7
from snap7.util import *
import struct


plc = snap7.client.Client()
plc.connect("10.112.115.10",0,1)

#---Read DB---
db = plc.db_read(1234,0,14)
real = struct.iter_unpack("!f",db[:12] )
print( "3 x Real Vars:", [f for f, in real] )
print( "3 x Bool Vars:", db[12]&1==1, db[12]&2==2, db[12]&4==4 )


plc.disconnect()

IP和子网掩码

PLC的IP必须在PC局域网设备的子网掩码范围内。如果LAN设备的IP为10.112.115.1,子掩码为255.255.255.0,则为您的PLC提供10.112.115.2至10.112.115.255的范围。超出此范围的每个PLC IP都会给您“无法到达的对等程序”错误。

防火墙

确保您的防火墙允许您的PC与PLC之间的通信。

PLC数据定位

如果您不熟悉步骤7/ TIA门户。查找“在线诊断”按钮,并查看图片,以找到您的数据的位置。

DB数和变量偏移量

PLC组态

除了使用您想要读取的变量的PLC程序之外,该PLC不需要额外的部分来与snap7通信。与snap7通信所需的服务是由打开电源的固件启动的。

票数 4
EN

Stack Overflow用户

发布于 2020-07-13 06:37:46

snap7.dll and snap7.lib "\snap7-full-1.2.1\release\Windows\Win64"粘贴到"C:\snap7-full-1.2.1\release\Windows\Win64"文件夹中。

那么“导入snap7”就起作用了。但它会给下一步带来错误。snap7.client.Client() -> AttributeError:模块'snap7‘没有属性'client’

我使用了"https://github.com/gijzelaerr/python-snap7“项目。起作用了。

票数 2
EN

Stack Overflow用户

发布于 2016-07-07 17:15:55

尝试如下:搜索snap7文件夹中的快照7.dll和快照7.lib文件,将管理7.dll和快照7.lib复制到“C:/PythonXX//快照7”目录中,然后再次运行代码。您可以在同一个目录下的common.py文件中计算出这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33697263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档