snap7在linux怎么用,Ubuntu 通过snap7连接西门子1200
前两天搞了一个西门子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相关推荐
- 初试linux编译(ubuntu+vim)+玩转智能蛇
一.初试linux编译(ubuntu+vim) 步骤: ①下载vmware15+ubuntu桌面版映像 ②安装ubuntu ③下载vim+gcc 在ubuntu终端输入: sudo apt-get i ...
- 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 ...
- Ubuntu终端远程连接计算机(Linux)
Ubuntu终端远程连接计算机(Linux) 分类: Linux 2010-07-16 18:13 4725人阅读 评论(0) 收藏 举报 ubuntu远程连接linux终端sshftp服务器 突然发 ...
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...
- wireshark使用教程 linux,Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕...
Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关 ...
- linux mint 18.3浏览器,在Linux Mint 19/Ubuntu 18.04中安装Tor Browser浏览器的方法
本文介绍在Linux Mint 19/Ubuntu 18.04系统中安装Tor Browser浏览器的方法,本文不使用Tor的默认Ubuntu存储库,因为它们包含旧版本的Tor. 一.添加Tor存储库 ...
- 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 ...
- linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...
Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步 特点: Nginx 可以部署在网络上使用 FastCGI,脚本 ...
- 为什么 Linux Mint 比 Ubuntu好?
Linux Mint由Linux Mint Team团队于2006年开始发行,是一份基于Debian和Ubuntu的Linux发行版.其目标是提供一种更完整的即刻可用体验,这包括提供浏览器插件.多媒体 ...
最新文章
- supervisor 守护多个进程_supervisor守护进程管理实操笔记
- 使用socket实现信用卡程序和迷你购物商城
- CentOS 上安装MYSQL+Apache+PHP
- 使用FiddlerCore来截取替换Http请求中的网页内容
- OA的核心模块在那里?
- Elasticsearch检索分类详解
- natcat for mysql_用Navicat for mysql连接mysql报错1251-解决办法
- CFS调度器的思想的新理解
- raspberry pi_如何进行Raspberry Pi聚会
- AI 秒杀人类!OpenAI 击败 DOTA2 世界冠军 OG
- gdb coredump oracle,GDB + CoreDump 调试记录
- 【ISL-1】统计学习概览
- Android 图片展示器
- 扑克牌的完美洗牌算法
- 使用VMProtect给软件加壳
- 10 个开源压力测试工具
- hell脚本案例(一):常见运维面试题
- 保时捷卡宴Cayenne升级原厂360全景影像系统,行车更安全
- [Discuz!模板] 听雨轩风格[GBK][utf8][一键安装 DIY][20110918更新]
- 激励员工的书推荐:这5本书让你学会员工激励
热门文章
- Python 写一个俄罗斯方块游戏
- python进程的状态及创建
- LeetCode 题 - 27. 移除元素 python实现
- Web框架中的ORM框架
- python collections 模块中的 deque
- leetcode - 62. 不同路径
- 二项分布的采样或抽样(java实现)
- 二叉查找树与平衡二叉树【转载】
- NDK编译c包含C++头文件时,出现 error: unknown type name 'class' 的解决方法
- 设置固定高度_防排烟系统的设置,前室、楼梯间、避难层!设置要求全记住!...