前两天搞了一个西门子1214的PLC,以前跟树莓派连过,想着没事看看能跟笔记本连上读个数据不。经过一晚上的努力,终于还是搞定了!把整个流程记一下。

首先是包的下载,直接通过pip下载就行了,

pip3 install python-snap7

可以在terminal里试一下,导入是没问题的

但是对client实例化的时候还是会报错

注意一下报错的信息,是common.py文件里load_library里有点问题

在windows环境下,我们是通过两个dll动态库文件来执行程序的, 在linux下差不多,但是文件是so类型的。

下载snap7的完整程序包,这是我放在网盘里的程序包

https://pan.baidu.com/s/1rVoyAYmOOFPi43Ab_NFh0Q 密码44ln

下载完了以后解压,注意看一下readme文件,进入文件夹下build/unix路径,看下readme里对应的系统版本,编译文件,由于我的系统是x86架构,直接按照说明里的运行

sudo make -f x86_64_linux.mk all

然后就生成了我们需要的so文件,

对应的路径就是我们执行的mk文件名,然后我们把这个文件复制到一个固定的地方

sudo cp /Desktop/snap7-full-1.4.2/build/bin/x86_64-linux/libsnap7.so /usr/lib/libsnap7.so

注意要记得后面那个地址,一会要用到

还记得前面报错的commen.py文件么?直接vi进去修改

classSnap7Library(object):"""Snap7 loader and encapsulator. We make this a singleton to make

sure the library is loaded only once."""_instance=Nonedef __new__(cls, *args, **kwargs):if notcls._instance:

cls._instance= object.__new__(cls)

cls._instance.lib_location=None

cls._instance.cdll=Nonereturncls._instancedef __init__(self, lib_location=None):#加上lib_location的地址

lib_location='/usr/lib/libsnap7.so'

ifself.cdll:returnself.lib_location= lib_location or self.lib_location or find_library('snap7')if notself.lib_location:

msg= "can't find snap7 library. If installed, try running ldconfig"

raiseSnap7Exception(msg)

self.cdll= cdll.LoadLibrary(self.lib_location)

在构造函数中我们要加上lib_location的地址,就是前面复制到的地址。保存退出

然后就成功了!

至于snap7具体的使用方法网上还是有不少的,直接搜就好了!

snap7在linux怎么用,Ubuntu 通过snap7连接西门子1200相关推荐

  1. 初试linux编译(ubuntu+vim)+玩转智能蛇

    一.初试linux编译(ubuntu+vim) 步骤: ①下载vmware15+ubuntu桌面版映像 ②安装ubuntu ③下载vim+gcc 在ubuntu终端输入: sudo apt-get i ...

  2. Linux Versus Windows, Ubuntu/Mint V XP/Vista/7

    原文:http://petermoulding.com/linux_versus_windows_ubuntu_mint_v_xp_vista_7 Linux Versus Windows, Ubun ...

  3. Ubuntu终端远程连接计算机(Linux)

    Ubuntu终端远程连接计算机(Linux) 分类: Linux 2010-07-16 18:13 4725人阅读 评论(0) 收藏 举报 ubuntu远程连接linux终端sshftp服务器 突然发 ...

  4. ASP.NET Core 发布至Linux生产环境 Ubuntu 系统

    ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...

  5. wireshark使用教程 linux,Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕...

    Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关 ...

  6. linux mint 18.3浏览器,在Linux Mint 19/Ubuntu 18.04中安装Tor Browser浏览器的方法

    本文介绍在Linux Mint 19/Ubuntu 18.04系统中安装Tor Browser浏览器的方法,本文不使用Tor的默认Ubuntu存储库,因为它们包含旧版本的Tor. 一.添加Tor存储库 ...

  7. labview linux 内核 不匹配,Linux CentOS7(或Ubuntu)中安装NI-VISA后一打开范例Simple Serial.vi就闪退,LabVIEW就崩溃。...

    Linux CentOS7(或Ubuntu)中安装NI-VISA后一打开范例Simple Serial.vi就闪退,LabVIEW就崩溃. 我安装了LabVIEW pro 2017 for Linux ...

  8. linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...

    Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步 特点: Nginx 可以部署在网络上使用 FastCGI,脚本 ...

  9. 为什么 Linux Mint 比 Ubuntu好?

    Linux Mint由Linux Mint Team团队于2006年开始发行,是一份基于Debian和Ubuntu的Linux发行版.其目标是提供一种更完整的即刻可用体验,这包括提供浏览器插件.多媒体 ...

最新文章

  1. supervisor 守护多个进程_supervisor守护进程管理实操笔记
  2. 使用socket实现信用卡程序和迷你购物商城
  3. CentOS 上安装MYSQL+Apache+PHP
  4. 使用FiddlerCore来截取替换Http请求中的网页内容
  5. OA的核心模块在那里?
  6. Elasticsearch检索分类详解
  7. natcat for mysql_用Navicat for mysql连接mysql报错1251-解决办法
  8. CFS调度器的思想的新理解
  9. raspberry pi_如何进行Raspberry Pi聚会
  10. AI 秒杀人类!OpenAI 击败 DOTA2 世界冠军 OG
  11. gdb coredump oracle,GDB + CoreDump 调试记录
  12. 【ISL-1】统计学习概览
  13. Android 图片展示器
  14. 扑克牌的完美洗牌算法
  15. 使用VMProtect给软件加壳
  16. 10 个开源压力测试工具
  17. hell脚本案例(一):常见运维面试题
  18. 保时捷卡宴Cayenne升级原厂360全景影像系统,行车更安全
  19. [Discuz!模板] 听雨轩风格[GBK][utf8][一键安装 DIY][20110918更新]
  20. 激励员工的书推荐:这5本书让你学会员工激励

热门文章

  1. Python 写一个俄罗斯方块游戏
  2. python进程的状态及创建
  3. LeetCode 题 - 27. 移除元素 python实现
  4. Web框架中的ORM框架
  5. python collections 模块中的 deque
  6. leetcode - 62. 不同路径
  7. 二项分布的采样或抽样(java实现)
  8. 二叉查找树与平衡二叉树【转载】
  9. NDK编译c包含C++头文件时,出现 error: unknown type name 'class' 的解决方法
  10. 设置固定高度_防排烟系统的设置,前室、楼梯间、避难层!设置要求全记住!...