Python-snap7 安装和测试

article/2025/7/16 11:06:04

本文章记录Python-snap7零基础的安装和测试过程。

1 部件和软件

硬件:
1)S7-1500 CUP 1511-1 PN(6ES7511-1AK02-0AB0)
2)SD存储卡 4M(6ES7 954-8LC03-0AA0)
3)220V AC 转 24V DC 电源适配器
4)网线

软件:
1)博途 V15.1
2)Python 3.7.4

平台:
win7 SP1 64位

技术参考

https://blog.csdn.net/weixin_40844416/article/details/80889165
https://blog.csdn.net/qq_34935373/article/details/97374783
https://sourceforge.net/p/snap7/discussion/general/thread/ef6aab94/?limit=25
https://github.com/gijzelaerr/python-snap7
https://pypi.org/project/python-snap7/
https://www.python.org/

Python3的安装

安装完成博途V15.1后,在https://www.python.org/下载Python3的安装程序。
注意尽量选择Windows x86-64 executable installer版。

在这里插入图片描述
安装过程中,需要勾选 Add python to PATH 添加路径。
在这里插入图片描述

安装pip

snap7 安装需要用pip,先用下面命令检查是否安装了pip。

pip --version

在这里插入图片描述

安装过程中pip没有装上,可以先安装PIP。可参考下面的连接安装。
https://jingyan.baidu.com/article/7c6fb428d84f9480642c90d1.html

安装Python-snap7

先下载snap7-full-1.4.2和Python-snap7

拷贝dll和lib

解压snap7-full-1.4.2,找到release\windows\win32下的的snap7.dll和snap7.lib,分别拷贝到Python的安装目录和系统windows下的SysWOW64下。

安装Python-snap7

win+R打开“运行”,输入cmd,确定后,进入DOS命令行终端,输入下面的命令:

pip install python-snap7

PLC连接和设置

接线

24V电源线正接CPU红色接头,负极接蓝色。
在这里插入图片描述

1500CPU显示屏设置

接通电源后,CPU开启,但是背景是黄色,表明设置有问题。
主要设置PI地址。
按照下面的步骤进行设置:

  1. 浏览到“设置”(Settings)。
  2. 选择“地址”(Addresses)。
  3. 选择接口“X1 (IE/PN)”。
  4. 选择菜单项“IP 地址”(IP Addresses)。
  5. 设置 IP 地址 192.168.000.001。
  6. 按下模块上的“右”箭头键。
  7. 设置子网掩码 255.255.255.000。
  8. 按下模块上的“下”箭头键选择菜单项“应用”(Apply),然后单击“确定”(OK) 确认设置。

新建项目

打开博途V15.1 软件,创建新项目
在这里插入图片描述

添加设备

在设备和网络中,添加设备。操作如下:

  1. 打开“设备与网络”Portal。
  2. 插入新设备。
  3. 输入CPU 名称,可以不输入。
  4. 双击创建 CPU。
  5. 选择CPU的订货号
  6. 设置IP和子掩码地址 (备注:曾测试过1214 CPU IP地址设置192.168.0.1,也能用snap7-python访问,虚拟机或连接交换机等可能会产生IP冲突,若出现b’ TCP:Unreachable peer,需要重新更改IP地址
    在这里插入图片描述

变量设置

设置IO变量。如下表。
在这里插入图片描述

设置

为了使snp7和s7 进行通信需要在软件中进行设置。
1)防护安全,必须选择“完全访问权限”;

在这里插入图片描述
2)连接机制,必须勾选允许来自远程对象的PUT/GET通信访问
在这里插入图片描述
3)若创建了DB块,需要对其属性进行设置,取消优化的块访问,勾选可以OPCUA访问DB
在这里插入图片描述

编译

按上面步骤进行设置后,必须重新进行编译。否则用snap7连接PLC可以成功,但是不能获取数据,报“snap7.snap7exceptions.Snap7Exception: b’CLI : function refused by CPU (Unknown error)’”。

下载

点击下载,装载后完成即可。
没有报错就行,CPU显示屏幕由黄色变为绿色,Run状态。
若将已经在不同版本型号PLC CPU写入程序的SD卡,回出现下载硬件配置报错。例如:先在1511 CPU中插入SD,编译完成后,再将这张SD卡插入1214 CPU中,就会出现“硬件配置——加载硬件配置失败,请检查目标硬件设备的诊断缓冲区”。1200PLC可以断电后拔除SD卡即可。若1500PLC需要将SD卡再window下删除“SIMATIC.S7S”目录下的数据。切记、切记、切记(重要事情说三遍🙂)不能在window下格式西门子的SD卡,不然卡就报废了。

测试连接

win+R打开“运行”,输入cmd,确定后,进入DOS命令行终端,输入下面的命令:

import snap7
plc=snap7.client.Client()
plc.connect('192.168.0.1',0,1)
data=plc.read_area(0x81,0,0,1)
print(data)

在这里插入图片描述

转PLC在线,将I0.0和Q0.0强制变为1.

在这里插入图片描述
再在终端输入下面命令

data=plc.read_area(0x81,0,0,1)
print(data)
data2=plc.read_area(0x82,0,0,1)
print(data2)

在这里插入图片描述
此外对I0.0进行写入操作

plc.write_area(0x81,0,0,b'\x00')
data=plc.read_area(0x81,0,0,1)
print(data)

在这里插入图片描述

这样就表明snap7和simatic s7通信程序成功。


http://chatgpt.dhexx.cn/article/291cEeGW.shtml

相关文章

SNAP7 C++ 通讯

静态调用的dll的一个实例 2017年11月17日 09:49:18 净无邪 阅读数:334 版权声明:本文为博主原创文章,欢迎各位朋友转载。转载时,保留链接地址! https://blog.csdn.net/naibozhuan3744/article/details/78557761 本实…

Qt5调用Snap7

Snap7是一个与西门子PLC通信的开源库, 在网上下载了一个例子, 研究了一天终于通信成功了, 在此记录一下 项目文件 win32:LIBS C:\Qt\Qt5.7.0\Tools\mingw530_32\i686-w64-mingw32\lib\libws2_32.a win32:LIBS C:\Qt\Qt5.7.0\Tools\mingw530_32\i686-w64-mingw32\lib\libwin…

python snap7 plc_Python-Snap7获取西门子PLC 300数值

说明 在一次数采项目中,对现场PLC300进行取数。本人小白,在网上搜罗了大量信息,终于找到解决方法。 准备事项 1. 操作系统 2.Python环境(本次使用Python3.6.6) 3.Snap7 connect connect(192.168.0.1, rack=0,slot=1) 三个参数分别为:IP 地址,机架,插槽 read_ar…

python-snap7的安装记录

python-snap7的安装记录-windows(仅供个人备忘) 首先 pip install python-snap7其次安装包再然后是环境变量最后是测试 网上其他人的资料尝试上去总感觉不靠谱,很多内容不是一篇网上的文章就能解决(不是这里不对就是那里看不懂&am…

snap7

The Snap7 theatre (剧场、讲堂) The purpose of Snap7 is to fully integrate your PC station into a PLC network, without anybody sees the difference. To allow this, the Snap7 theater must be the same as the Siemens and contain the same actors. Snap7 library…

Python基于Snap7与PLC建立连接并读写数据

最近偶尔在网上看到可以用Python通过snap7与PLC建立连接并读写数据,好多小伙伴没有现成的PLC,这里介绍一个电脑模拟PLC与python通讯。效果与实际情况一样的。这里是以SIEMENS的PLC为例,通过Pycharm与TIA V17建立连接,对其DB块、M区、Q区、I区…

snap7通过NetToPLCsim工具接入模拟西门子PLC S7-1200步骤简介

概述 本文主要是设备通过S7协议接入西门子PLC S7-XXXX系列的开发使用文档,主要包括西门子PLC组态工具博途V15,PLC模拟工具S7-PLCSIM,IP地址映射工具NetToPLCsim等使用使用说明,S7协议的编译及使用说明等; 1 开发工具之间的关系 仿…

基于Snap7实现与西门子PLC通信

​如果你对西门子PLC通信或者上位机开发稍微有一点研究的话,应该对Snap7有所耳闻。 Snap7是一个基于以太网与西门子S7系列PLC通信的开源库,在世界领域应用很广。但也许是因为资料比较少,而且很多都是纯英文,在国内反而没有大规模…

c++ snap7通信vs环境配置与编程入门

前言:作者基本为电脑桌面软件开发小白,搜索网上的教程中踩了不少坑,在此整理分享最基础的vs环境下c开发snap7应用环境搭建,完成第一条snap7与PLC成功通信。 准备工作 Visual Studio 2013 及以后版本(以下简称vs&…

Python使用python-snap7实现西门子PLC通讯

Python简介 Python是开源的高级编程语言之一,广泛应用于人工智能、数据分析、爬虫等领域。由于它拥有大量的开源库和标准库,以及简单且贴近自然语言的语法,所以即便是从未接触过编程的人,也能快速上手。2021年10月,Py…

手把手教你强化学习 (三)马尔可夫决策过程与贝尔曼方程

马尔可夫决策过程 (Markov Decision Process,MDP)是序贯决策(sequential decision)的数学模型,一般用于具备马尔可夫性的环境中。最早的研究可以追溯到最优控制 (optimal control)问题上,1957年,美国学者Richard Bellman通过离散随…

数学建模,8月学习感想

数学建模概览 Matlab入门常用的操作指令数据类型 建模流程分析问题建立模型&求解模型数据建模技术优化技术连续模型求解评价模型求解机理建模方法 撰写论文前情提示正文部分配套说明排版工具 写在最后 长文预警!!! Matlab入门 Matlab可谓…

「从零入门数据分析」01_ 数据分析概述

作者 | gongyouliu 编辑 | auroral-L 本篇文章共8628字,预计阅读时间35分钟。 大家好,我是强哥。一个热爱暴走、读书、写作的人! 本章目录 一、数据分析的发展简史 二、数据分析的应用场景 三、常用的数据分析工具与技术 四、数据分析的思维…

数学建模心得分享(校赛)——2021.6.7

一、个人感受 总结为:找队友->讲方法->找知识->善讨论->勤实践 基础能力(个人见解): 第一次比赛完,还有这刚刚实习完的余温,工作中的思维的惯性还时刻在影响着我,身边的人几乎都为了自己的生活而奋斗。有幸…

matlab在管理学中的应用简述【一】

1、问题研究与描述 1.1 问题与模型 (1)问题 问题与人们的日常生活和工作有着密切的联系,人们每天都要面对各种各样的问题需要处理和解决。 如:资源配置问题,救灾抢险问题,时间安排问题,生产组…

大数据和人工智能属于什么专业 - 学大数据和人工智能出来做什么

人工智能专业主要从事什么工作? 1、算法工程师。进行人工智能相关前沿算法的研究,包括机器学习、知识应用、智能决策等技术的应用。以机器学习的过程为例,涉及到数据收集、数据整理、算法设计、算法训练、算法验证、算法应用等步骤&#xff0…

方差分析 anova一般指方差分析

方差分析(Analysis of Variance,简称ANOVA),又称“ 变异数分析”或“F检验”,是R.A.Fisher发明的,用于两个及两个以上 样本均数差别的 显著性检验。 由于各种因素的影响,研究所得的数据呈现波动状。造成波动的原因可分成两类,一是不可控的随机因素,另一是研究中施加的对…

继续无题

企业分为:决策层、管理层、执行层。 所以企业也会有:决策软件、管理软件、执行软件。 (1) 啥叫分析?分析就是根据现状,思考原因,这就是典型的归因:从现在往过去捋,这就叫…

数学建模经验分享及比赛时间汇总

一、浅谈数学建模1.1 什么是数学建模 先来看看官方的解释:数学建模是运用数学的语言和方法,通过抽象,简化建立能近似刻画“解决”实际问题的一种强有力的数学手段。数学建模就是用数学语言描述实际现象的过程。这里的实际现象既包涵具体的自然…

数模论文写作入门——正文篇

提示:数模论文写作入门还有“首页篇”和“排版篇”,可查看专栏补充。 目录 前言 一、问题重述 1、改词降重 水论文方法 2、 查阅相关背景资料 引用高大上 二、问题分析 三、模型假设 1.题目中明确给出假设条件 2.排除生活中小概率时间&#xff08…