目录

  • PLC配置
    • IP地址设置
    • 关闭PLC数据保护
    • 开启访问权限
  • 电脑配置
    • 配置本机IP地址
    • 安装python-snap7
    • snap7.dll库移植
  • PLC数据块区域定义
  • PLC数据格式
  • 程序注解
  • 备注

PLC配置

此文章以西门子PLC S7-1200为例。

IP地址设置

关闭PLC数据保护

需要关闭数据块的优化访问选项。所有需要访问的数据块都得开启,否则程序会报错。

开启访问权限

需要开启访问所有权限,否则程序连接会报错。

电脑配置

配置本机IP地址

由于PLC的通讯地址是192.168.0.1,需要将本机的IP地址与PLC设置在同一网段,博主设置为192.168.0.123。
可以通过命令行窗口输入ping 192.168.0.1来确认是否寻找到PLC。

安装python-snap7

需要安装支持库snap7,在命令行窗口输入 pip install python-snap7。

snap7.dll库移植

如果只是安装python-snap7库还是无法正常运行,需要将dll文件放置到相应的目录下。步骤如下:
1.下载dll连接:snap7-SDK(这里的压缩包内有32位和64的dll,还有一个简单的demo程序
2.如果使用的python是32位(64位)的编译环境就将压缩包内win32(win64)文件里面的snap7.dll文件拷贝至==C:\Windows\System32(C:\Windows\SysWOW64)==目录下。
3.利用网线将电脑与PLC连接,然后运行demo程序即可读取到PLC相应里相应数据。

PLC数据块区域定义

Value Mean
S7 Area PE 0x81 Process Inputs
S7 Area PA 0x82 Process Outputs
S7 Area MK 0x83 Merkers
S7 Area DB 0x84 DB
S7 Area CT 0x1C Counters
S7 Area TM 0x1D Timers

PLC数据格式

程序注解

def readDI(self):area = S7AreaPEdb = 0start = 0amount = 2ba = self.client.read_area(area, db, start, amount)d = ba[0]d <<= 8d |= ba[1]return d
def writeDQ(self, data):area = S7AreaPAdb = 0start = 0amount = 2ba = bytearray(amount)ba[1] = data & 0xffba[0] = data >> 8self.client.write_area(area, db, start, ba)

由于是以西门子PLC为演示,所以此处的数据读取到的是小端字节的格式(即按内存增大的方向存储,低位在前高位在后)。如果是三菱的PLC则是大端字节的格式。

备注

1.如果需要读取相应的PLC数据,需要与PLC开发者协商,让其提供所需数据所在的数据区域以及数据类型。
2.请确保安全下调试PLC,否则可能输入错误数据导致PLC所控制的系统崩溃或者出现严重事故。
3.西门子S200由于过时,存在V区,而当前接口没有V区地址,需要PLC开发者将相应V区数据挪移到M区即可。

python 通过 Snap7 与 PLC 实现数据通信相关推荐

  1. 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编程操 ...

  2. python零基础教学plc_利用Python构建电脑和PLC通信的方法

    PLC(Programmable Logic Controller)即可编程逻辑控制器,可以理解为一个微型计算机,广泛应用于工业控制领域中,包括楼宇智控.精密机床.汽车电子等等. 随着物联网的兴起,越 ...

  3. 测试Snap7连接PLC

    #!/bin/python #encoding=utf8 from tkinter import * import snap7 from functools import reduceclass Wi ...

  4. python和台达plc通讯_项目实战:Qt西门子PLC通讯调试和模拟工具(包含PLC上位机通讯,PLC服务器)...

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110071837 各位读者,知识无穷而人力有穷 ...

  5. 在VS中配置snap7并用snap7与PLC通信

    前言 之前实验室的小车使用OPC与上位机通信,但由于年代已久,师兄们写的代码已看不懂加上OPC配置比较麻烦,故现在现在采用snap7进行开发. snap7介绍 Snap7是一个基于以太网与西门子S7系 ...

  6. python和台达plc通讯_台达PLC通信协议ModbusASCII(DVP)

    - 精品文档 - - 精品 - 台达 PLC 通信协议 ModbusASCII(DVP) 编撰:李浩特 日期: 2013/11/12 版本: Ver:3.2 例 1 :读 D0 (地址为 1000H ...

  7. python和台达plc通讯_台达PLC通信协议ModbusASCIIDVP

    台达 PLC 通信协议 ModbusASCIIDVP 台达 PLC 通信协议 ModbusASCII(DVP) 编撰 : 李浩特 日期 :2013/11/12 版本 :Ver:3 . 2 例 1: 读 ...

  8. python通过opc读plc实例_OPC通讯实例(C#通过OPC连接PLC读写数据)

    [实例简介]C#通过OPC连接PLC读写数据 [实例截图] [核心代码] using System; using System.Collections.Generic; using System.Co ...

  9. python和台达plc通讯_(完整)台达PLC通信协议ModbusASCII(DVP)

    编撰:李浩特 日期: 2013/11/12 版本: Ver:3.2 1 台达 PLC 通信协议 ModbusASCII(DVP) 编撰:李浩特 日期: 2013/11/12 版本: Ver:3.2 例 ...

最新文章

  1. 如何网络监测其他计算机关闭445端口,关闭445端口的方法,教您电脑如何关闭445端口...
  2. hdu2068RPG的错排
  3. 公司虚拟化平台VMware vCenter Server无法连接故障排查解决
  4. 淘宝网商品库优化实践访谈
  5. textrank4zh是_GitHub - renxiaowei941015/TextRank4ZH: 从中文文本中自动提取关键词和摘要...
  6. html嵌入原始数据,如何用html和javascript显示原始图像数据?
  7. npm查找全局安装包命令
  8. ASP.NET中插入Flash
  9. 机器学习:贝叶斯网络
  10. doc 问卷调查模板表_问卷调查表.doc
  11. python-opencv最大内切圆查找
  12. 测试人员的工作及介绍
  13. 彼得林奇PEG价值选股策略(附源码入口)
  14. [蓝桥杯]打水问题、夺宝奇兵、调手表(c++详解)
  15. 台式计算机usb口不能用,电脑USB接口没反应如何解决教程
  16. Light Emitting Hindenburg(bitset运用)
  17. 织梦html的网站地图怎么制作,网站地图如何制作?网站地图的制作与提交方法...
  18. 基于FPGA的视频图像拼接融合(附源码)。
  19. Android webview Input type=file 文件上传 解决方法
  20. Python AST node转为string(source code)

热门文章

  1. 程序设计与算法郭炜老师的课堂笔记1
  2. 中国医学计算机成级别像杂志,中国医学计算机成像杂志怎么样,审稿时间
  3. 清华大学胡事民是计算机视觉,ResNet也能用在3D模型上了,清华“计图”团队新研究已开源...
  4. 设计模式笔记22——状态模式(state)
  5. 【NOIP2014】飞扬的小鸟
  6. 教育行业如何做好数据治理?
  7. unity实现简单巡逻兵
  8. 英语作文计算机国际会议开幕词,学术会议开幕词英文.doc
  9. 用luasocket读取双色球中奖号码
  10. 两种实现Z-Score的方法