首页 > 编程语言 >python通过snap7通讯西门子PLC仿真配置

python通过snap7通讯西门子PLC仿真配置

时间:2024-01-10 11:34:30浏览次数:43  
标签:解释器 snap7 python 编辑 PLC plc TIA


 一、资料

链接:https://pan1.baidu.com/s/1-Dt7yc8e4zEVC5ySqXMLXQ?pwd=1010 
提取码:1010  --来自百度网盘超级会员V6的分享,俺的网盘到24年11月,过期自己网上搜吧

二,准备工作

1、安装python

我用的是32位的,因为期间报了个这个错误,调试了好几次解释器才解决

python通过snap7通讯西门子PLC仿真配置_网盘

python通过snap7通讯西门子PLC仿真配置_自动生成_02编辑

正常安装python就行,很简单,注意事项其他的文章都有

2、安装pycharm

此处忽略。。

3、安装snap7

win+R,打开cmd终端

python通过snap7通讯西门子PLC仿真配置_自动生成_03

python通过snap7通讯西门子PLC仿真配置_python_04编辑

输入  pip install python_snap7联网自动安装

python通过snap7通讯西门子PLC仿真配置_python_05

python通过snap7通讯西门子PLC仿真配置_网盘_06编辑

4、解压NettoplcsimS7o

这个玩意折磨了我很久后面会提,压缩包解压出来就行

python通过snap7通讯西门子PLC仿真配置_python_07

python通过snap7通讯西门子PLC仿真配置_自动生成_08编辑

三、调试及问题(纯干货)

1、打开pycharm,新建项目

注意红框内,一定不要选择虚拟解释器,且要选择现有的解释器,否则写程序时会无法插入snap7的模块

python通过snap7通讯西门子PLC仿真配置_网盘_09

python通过snap7通讯西门子PLC仿真配置_python_10编辑

python通过snap7通讯西门子PLC仿真配置_自动生成_11

python通过snap7通讯西门子PLC仿真配置_网盘_12编辑

出现错误如下,no module named 'snap7'

python通过snap7通讯西门子PLC仿真配置_网盘_13

python通过snap7通讯西门子PLC仿真配置_网盘_14编辑

正常如下

python通过snap7通讯西门子PLC仿真配置_网盘_15

python通过snap7通讯西门子PLC仿真配置_自动生成_16编辑

2、编写测试程序

import snap7 #插入模块
from snap7 import util
plc = snap7.client.Client() #命名客户端对象plc
plc.connect('192.168.0.1',0,1) #连接网址,机架,槽
print(f'connect:{plc.get_connected()}') #反馈连接状态

其中通讯地址需要打开TIA组态,这是使用真实的PLC,但是如果使用仿真则不是,这个地方困扰了我很久,后面会提

python通过snap7通讯西门子PLC仿真配置_网盘_17

python通过snap7通讯西门子PLC仿真配置_网盘_18编辑

python通过snap7通讯西门子PLC仿真配置_自动生成_19

python通过snap7通讯西门子PLC仿真配置_网盘_20编辑

点击运行会报错,RuntimeError: can't find snap7 library. If installed, try running ldconfig,缺少库

打开网盘下载的snap7-full-1.4.2,根据python位数选择文件,复制到解释器路径下

python通过snap7通讯西门子PLC仿真配置_自动生成_21

python通过snap7通讯西门子PLC仿真配置_python_22编辑

python通过snap7通讯西门子PLC仿真配置_网盘_23

python通过snap7通讯西门子PLC仿真配置_python_24编辑

注意我选择的时32位因为我的解释器时32位,如果我复制了64位会报如下错误

OSError: [WinError 193] %1 不是有效的 Win32 应用程序。

python通过snap7通讯西门子PLC仿真配置_自动生成_25

python通过snap7通讯西门子PLC仿真配置_自动生成_26编辑

3、终极恶心错误

当如上配置都正常后,如果用的仿真点击运行会报

RuntimeError: b' TCP : Unreachable peer',超时

python通过snap7通讯西门子PLC仿真配置_网盘_27

python通过snap7通讯西门子PLC仿真配置_网盘_28编辑

这个时候就用的这个模拟通讯软件,配置好点击开始服务

python通过snap7通讯西门子PLC仿真配置_自动生成_29

python通过snap7通讯西门子PLC仿真配置_python_30编辑

python通过snap7通讯西门子PLC仿真配置_网盘_31

python通过snap7通讯西门子PLC仿真配置_自动生成_32编辑

python通过snap7通讯西门子PLC仿真配置_自动生成_33

python通过snap7通讯西门子PLC仿真配置_自动生成_34编辑

软件会自动生成电脑和TIA的地址,而我们在pycharm需要输入的网址是第一个,我这里是192.168.43.23,机架0,槽1

注意TIA中CPU的连接机制和访问级别要如图选择

python通过snap7通讯西门子PLC仿真配置_自动生成_35

python通过snap7通讯西门子PLC仿真配置_自动生成_36编辑

python通过snap7通讯西门子PLC仿真配置_网盘_37

python通过snap7通讯西门子PLC仿真配置_网盘_38编辑

打开TIA仿真,这里就不赘述了,在运行程序就会惊喜发现成功了

python通过snap7通讯西门子PLC仿真配置_自动生成_39

python通过snap7通讯西门子PLC仿真配置_python_40编辑

标签:解释器,snap7,python,编辑,PLC,plc,TIA
From: https://blog.51cto.com/u_16464331/9175750

相关文章

  • 【Python基础】tuple(元组)
    简介由一系列变量组成的不可变的序列容器。俗称不可变的列表,又被称为只读列表,元组也是python的基本数据类型之一,用小括号括起来,里面可以放任何的数据类型,查询可以,循环也可以,切片也可以,但就是不能修改。元组中如果只有一个元素,一定要添加一个逗号,否则就不是元组备注:这里元组的不......
  • 西门子S7-1200与S7-300PLC之间的区别有哪些?
    S7-1200作为新推出的紧凑型控制器,其产品定位在原有的SIMATICS7-200和S7-300之间,它与S7-300的区别主要体现在硬件、通信、工程、存储器、功能块、计数器、定时器、工艺功能等方面。一、硬件的区别在硬件扩展方面,S7-300的主机架多支持八个扩展模块,而S7-1200支持扩展多八个信号模块和......
  • 快乐学Python,数据分析之获取数据方法「公开数据或爬虫」
    学习Python数据分析,第一步是先获取数据,为什么说数据获取是数据分析的第一步呢,显而易见:数据分析,得先有数据,才能分析。作为个人来说,如何获取用于分析的数据集呢?1、获取现成的数据集获取数据集的第一种方式,就是获取行业上已经有人整理好的数据集。目前大数据行业持续火爆,数据本身已......
  • Python操作XML文件一文通
    我们经常需要解析用不同语言编写的数据,Python提供了许多第三方库来解析或拆分用其他语言编写的数据,今天我们来学习下PythonXML解析器的相关功能。下面一起来看看吧~什么是XML?XML是可扩展标记语言,它在外观上类似于HTML,但XML用于数据表示,而HTML用于定义正在使用的数据。XM......
  • python diango后端支持运行脚本+vue前端支持脚本运行
    #使用Python内置的subprocess模块来执行Python脚本#使用注意:#1,依赖包需要提前导入至脚本中#2,script_path变量是脚本得绝对路径#3,filename变量是脚本得名称#搭配vue页面使用#想法:页面支持导入,编辑,执行脚本#导入:默认指定路径下,需要填......
  • 【Python基础】dict(字典)
    简介介绍dictionary(字典)是除列表以外Python之中最灵活的数据类型字典同样可以用来存储多个数据通常用于存储描述一个物体的相关信息和列表的区别列表是有序的对象集合字典是无序的对象集合字典用{}定义字典特性*字典使用键值对存储数据,键值......
  • # yyds干货盘点 # 盘点一个AI都无法解决的Python基础题目(下篇)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【大侠】问了一个Pandas实战的问题,一起来看看吧。上一篇文章说到,看上去AI给的答案,似乎让【大侠】不满意,遂来白银交流群问问大佬们。这一篇文章,我们一起来看看其他大佬给的代码。二、实现过程前面的文章中,我们看到了【瑜亮老师】和......
  • python第三节:Str字符串类型(1)
    第二节:Str字符串类型python中处理文本数据是用str类型,不像其他语言区分字符和字符串,统一使用str类型。str在创建后是不可变的。在python中字符类型相当于长度是1的字符串类型。以下三种方式包裹的字符都算作字符串:单引号:'允许包含有"双"引号'双引号:"允许嵌入'单'引号"三重......
  • python通过RS485、Modbus协议读取/修改仪表数据
    目标python通过RS485的Modbus协议读取仪表相应的寄存器数据。准备工作软件安装第三方库:serial、pyserial、modbus_tkpipinstallserialpipinstallpyserialpipinstallmodbus_tk硬件一根USB转RS485的转接线(电脑本身不带RS485接口时需要)一个带Modbus通讯的仪表(例子中使用的时一......
  • python系列教程218——生成器表达式
    声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值......