python-snap7安装各种报错
准备:win10 64位专业 、pycharm 、snap7-full-1.4.2
- **python-snap7安装各种报错**
- 错误一、snap7.snap7exceptions.Snap7Exception: can't fintd snap7 library. If installed, try running ldconfig![欢迎使用Markdown编辑器](https://i-blog.csdnimg.cn/blog_migrate/057460e832681faae3ad805ad2d8896b.png)
- 错误二、OSError: [WinError 193] %1 不是有效的 Win32 应用程序。![新的改变](https://i-blog.csdnimg.cn/blog_migrate/1b1f9117141a5fcd8cd1bac9d5e12467.png)
- 第一步:pycharm中安装python-snap7
- 第二步:复制snap7-full-1.4.2文件路径:snap7-full-1.4.2\snap7-full-1.4.2\release\Windows\Win64 下的snap7.dll和snap7.lib,放入C:\Windows\SysWOW64路径和G:\Python\Python38(你的python安装路径)
错误一、snap7.snap7exceptions.Snap7Exception: can’t fintd snap7 library. If installed, try running ldconfig
错误二、OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
第一步:pycharm中安装python-snap7
第二步:复制snap7-full-1.4.2文件路径:snap7-full-1.4.2\snap7-full-1.4.2\release\Windows\Win64 下的snap7.dll和snap7.lib,放入C:\Windows\SysWOW64路径和G:\Python\Python38(你的python安装路径)
读取s7 200smartPLC 输出区(Q)数据的代码示例:
from time import sleep
import snap7
from snap7.exceptions import Snap7Exception
'''
其中address是服务器的IP地址,如果使用NetToPLCsim连接PLCsim,则IP地址应该是计算机的IP地址,rack和slot和NetToPLCsim设置的一样,针对S7-1200此处应该是0和1,端口默认是102,不需要进行更改
连接后可以通过get_connected检查连接是否建立,返回值如果是True,则代表连接成功
连接建立后,通过read_area方法获取PLC各个区的数值
'''
def connect(device, ip, rack, slot):
while True:
if device.get_connected():
break
try:
device.connect(ip, rack, slot)
except:
pass
sleep(1)
def ReadOutput(dev):
data = dev.read_area(0x82, 0, 0, 1)
binary_list = [int(x) for x in bin(data[0])[2:]]
print(binary_list)
def main():
s71200 = snap7.client.Client()
connect(s71200, '192.168.2.1', 0, 1)
while True:
try:
ReadOutput(s71200)
sleep(1)
except Snap7Exception as e:
connect(s71200, '192.168.2.1', 0, 1)
if __name__ == '__main__':
main()
参考博文: https://blog.csdn.net/lcb411/article/details/101936678