说明

在一次数采项目中,对现场PLC300进行取数。本人小白,在网上搜罗了大量信息,终于找到解决方法。

准备事项

1. 操作系统

2.Python环境(本次使用Python3.6.6)

3.Snap7

connect

connect('192.168.0.1', rack=0,slot=1)

三个参数分别为:IP 地址,机架,插槽

read_area及write_area

函数

read_area(self,area,dbnumber,start,size)#读取数值

write_area(self,area,dbnumber,start,data) #写入数值(未测试)

参数area:

两个函数的核心都是对area进行读写操作,area用于区分I、Q、M、DB区域(西门子PLC中存储区有I、Q、M、DB、V区等等,本人为小白,此处不做具体了解),针对各个分区都有指定的值。具体如下:

'PE': 0x81, #input 输入区

'PA': 0x82, #output 输出区

'MK': 0x83, #bit memory 中间存储区(M区)

'DB': 0x84, #DB区

'CT': 0x1C, #counters

'TM': 0x1D, #Timers

参数dbnumber:

dbnumber只有在对DB块使用时才有用,默认设置为0。

备注:

此次项目以取DB区域数值为主,未做其它区域测试,在PLC中,有很多的DB块,每个块中,分别存储不同的信息,个人理解此处更类似于电脑中的硬盘分区,每个DB块是一个分区,PLC将指定的数值存储在指定硬盘分区中。

参数start:

例如取DB7.10地址上的值

start起始地址为10,即PLC中的偏移地址。

参数size:

size是选择读取的数据类型占用地址位的尺寸,即占几个地址,如下:

示例

获取DB7.46的REAL值:

import snap7

from snap7.util import *

from snap7.snap7types import *

PLC_obj=snap7.client.Client()

PLC_obj.connect('192.168.0.1',rack=0,slot=2)

Real_Value=PLC_obj.read_area(0x84,7,46,4)

get_real(Real_Value,0)

断开连接:

PLC_obj.disconnect()

备注

在获取S7WLByte数值时,需要使用get_int来获取数值,但是在获取数值时,会提示以下错误:

>>> Real_Value=PLC_obj.read_area(0x84,7,0,1)

>>> get_int(Real_Value,0)

Traceback (most recent call last):

File "", line 1, in

File "/usr/local/software/Python3.6.6/lib/python3.6/site-packages/snap7/util.py", line 149, in get_int

data[1] = data[1] & 0xff

IndexError: bytearray index out of range

解决方法:

提高get_area的尺寸长度,但是获取到的数值和实际数值不符,需要在获取到的数值的基础上除以256,才是实际的数值。

>>> Real_Value=PLC_obj.read_area(0x84,7,0,25)

>>> get_int(Real_Value,0)

3859

参考资料

二〇二〇年四月十四日 10:27:09

python snap7 plc_Python-Snap7获取西门子PLC 300数值相关推荐

  1. .net通过S7.net读写西门子PLC中,字符串,bool,整数,小数及byte型

    注:.net中通过TCP/IP方式通过S7.net.dll动态库,连接到西门子PLC,西门子程序中许勾选优化块,程序读取需要 db块号+偏移量 一.使用VS项目,在项目中添加S7.net动态库 代码中 ...

  2. python连接plc_Python与PLC踩坑实录:成功解决西门子 PLC S7-200_SMART与PC连接时不能同时用Python的snap7包和step7软件同时连接...

    解决西门子 PLC S7-200_SMART与PC连接时不能同时用Python的snap7包和step7软件同时连接 问题描述 在与西门子 PLC(型号S7-200_SMART)进行Python编程操 ...

  3. 如何使用 Python 构建 西门子PLC Snap7通信

    如何使用 Python 构建西门子 PLC Snap7通信 PLC(Programmable Logic Controller)即可编程逻辑控制器,可以理解为一个微型计算机,广泛应用于工业控制领域中, ...

  4. jetson nano上编译与使用西门子PLC通讯库snap7

    文章目录 一.西门子snap7介绍 二.西门子S7通讯介绍 三.jetson nano编译snap7库 四.Qt Cmake导入snap7库 五.snap7主要函数说明 1.与PLC建立连接 2.读写 ...

  5. 信捷plc485通信上位机_基于Snap7实现与西门子PLC通信

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

  6. C# Snap7 实现对西门子PLC的读写(本篇主要对系统诊断缓存区(SSL或SZL)内容进行读取)

    Snap 7 使用C# 实现对西门子PLC的读写 摘要: 本篇主要针对PLC的错误日志进行操作,此目的是方便在没有电气工程师在现场的情况下 快速定位错误位置,帮助节约ShoutDown 时间 提升企业 ...

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

    概述 本文主要是设备通过S7协议接入西门子PLC S7-XXXX系列的开发使用文档,主要包括西门子PLC组态工具博途V15,PLC模拟工具S7-PLCSIM,IP地址映射工具NetToPLCsim等使 ...

  8. python与西门子PLC通讯

    python与西门子PLC通讯 安装Python-snap7 win+R打开"运行",输入cmd,确定后,进入DOS命令行终端,输入下面的命令: pip install pytho ...

  9. 用python编写西门子plc程序_snap7读写西门子plc1200步骤(python)

    本文是利用snap7进行对plc1200进行读写,所用语言是python3,windows7下,plc具体型号为S7-1212DC/DC/DC 1.snap7安装 win+R打开运行串口,输入cmd, ...

  10. plc编程和python的联系_通过Python与西门子PLC通信

    供大家想要与西门子PLC通信的朋友使用 1.该程序是通过python snap7连接西门子1200.1500系列PLC并按照I.Q.M区采集打印信息: 2.用户打开应用程序之前,要将目录下的snap7 ...

最新文章

  1. javascript中console的用法
  2. oracle经常使用函数(1)
  3. 大数据之父_大新闻!Python 之父重新出山,加入微软开发部
  4. python代码画图案-python如何绘制iPhone手机图案?(代码示例)
  5. 手机用appnium,web自动化用eclips+webdriver2
  6. 四节传送带plc梯形图_自动控制系统的大脑--PLC
  7. 枚举(enum)类型
  8. sweetalert插件的使用
  9. PHP 修改配置文件后重启命名
  10. mysql未监控在3306_监控MySQL或Web服务是否正常
  11. 通过cmd修改注册表并设置cmd窗口的大小
  12. SVM支持向量和逻辑回归的decision_function用法详解
  13. redhat 5安装mysql_如何在redhat linux advancex 上安装mysql5
  14. 【第一期】电商分布式前沿springboot接口服务之配置-Array-专题视频课程
  15. 【网络基础】以太网电缆:UTP和STP,直连线和交叉线,网线类别
  16. pdf转换html表格没了,PDF转HTML后,表格排版全乱了是怎么回事?
  17. 计算机台式硬件排名,台式机主板什么牌子好?台式电脑主板品牌排行榜前十名(2)...
  18. Round 1—数据结构基本概念
  19. 传统企业怎么通过抖音引流到微信
  20. WPS关闭不了后台一直运行的解决办法(wpscloudsvr.exe)

热门文章

  1. 为什么使用一个变频器控制多个电机?
  2. linux 开机logo制作工具,linux开机logo制作
  3. wps office有计算机应用吗,wps office
  4. python下载快手视频教程_[小玩意] 用Python写了个下载快手视频的小脚本
  5. [学习]啦啦外卖定位修复,商家经纬度保存修复
  6. 计算机打字速录,速录员打字口诀有哪些
  7. Tensorrt-caffee模型tensorrt部署教程
  8. CSDN博客新手引导手册
  9. python全套视频迅雷下载_[全套视频] 老王Python基础,进阶,项目篇(无KEY完整版) 视频教程 15G...
  10. PDFcrack暴力破解pdf密码