工业采集S7协议 python通过S7协议通信
Python使用snap7库进行采集S7协议通信
S7协议介绍
Snap7是一个用于处理S7以太网协议,与西门子S7系列PLC通讯的开源通讯组件。支持与S7-200、S7-200 Smart、S7-300、S7-400、S7-1200以及S7-1500的以太网通信。
环境准备
1. 安装开源库python-snap;
pip install python-snap7
2. Python版本python3.6;
代码实现
1. snap7库简单介绍
snap7库主要通过read_area和write_area两个函数实现对PLC数据的读写;
snap7中有专门的方法读取数据。
读取M位存储区数据:
读取存储区数据的编号:
areas = ADict({'PE': 0x81,'PA': 0x82,'MK': 0x83,'DB': 0x84,'CT': 0x1C,'TM': 0x1D,
})
读数据;
read_area(area,dbnumber,start,size)
area:area参数用于区分I、Q、M、DB存储区:
dnumber:0
start:起始地址
size:读取长度
在snap7中加入PLC使用的是PE那就在代码中使用的是‘0x81’的编码
例:read_area(0x84, 100, 0, 0)
通过S7采集的数据返回的数据是 byteorder类型,所以如果需要变成自己能用的数据还需要转下格式。
2. 完整的代码
import snap7
from snap7.util import * # 对位操作的函数要导入该库
import time
import jsonclient = snap7.client.Client()
# IP地址,机架,槽位
client.connect('10.0.11.241', 0, 1)
# 测试是否通讯成功
if client.get_connected():print('连接成功')
else:print('连接失败')def cj_s7():while True:cj0 = client.read_area(0x84, 100, 0, 2)cj1 = client.read_area(0x84, 100, 1, 2)cj_time = time.time()log_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())print("数据解析结果点位1:"+cj0)print("数据解析结果点位2:"+cj1)time.sleep(1)#等待一秒,一秒一个的获取数据#有必要的情况下可以创建个多线程
def xc():# 创建线程thread_hi = cj_s7()# 启动线程thread_hi.start()print('Main thread has ended!')if __name__ == '__main__':xc()
总结
s7协议我也是刚开始接触,所以很多地方也有需要完善学习的地方,希望有个老师能来指导指导下。
谢谢,可以留下或私聊下联系方式:
工业采集S7协议 python通过S7协议通信相关推荐
- 工业采集网关实现PLC数据采集
工业采集网关也叫工业物联网网关,主要负责对工业数据进行采集,将前端传感器的协议进行统一的转换,使之能够进行传输的一款物联网设备,在物联网行业上应用十分的广泛.提供有RS485.RS232接口,供各类采 ...
- 史上最全网络通讯(IIOT、工业控制、5G、区块链)协议全景图
写在前面 大家好,我是小智,智能制造之家号主~ 工业物联网浪潮的到来,IT.OT与CT技术之间联系越来越紧密,我们在完成各种ERP.PLM.MES/MOM.SCADA.DCS以及工业自动化项目的时 ...
- 用html通过python调用mysql_HTTP协议与使用Python获取数据并写入MySQL
一.Http协议 二.Https协议 三.使用Python获取数据 (1)urlib (2)GET请求 (3)POST请求 四.爬取豆瓣电影实战 1.思路 (1)在浏览器中输入https://movi ...
- Python中的端口协议之基于UDP协议的通信传输
阅读目录 UDP协议: 1.python中基于udp协议的客户端与服务端通信简单过程实现 2.udp协议的一些特点(与tcp协议的比较) 3.利用socketserver模块实现udp传输协议的并发通 ...
- 通过python基于netconf协议获取网络中网元的配置数据,助力企业网络控制自动化轻松实现!
摘要:在当今信息化时代,大多数企业都需要网络支撑企业的ICT运行,提升企业运行效率,针对企业网络中的网元设备(包括交换机,路由器,防火墙等),很多企业希望根据自身的业务特点定制网络管理,比如可以实现网 ...
- 从入门到入土:基于Python采用TCP协议实现通信功能的程序
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- python 下载文件-Python实现HTTP协议下的文件下载方法总结
本文介绍了几种常用的python下载文件的方法,具体使用到了htttplib2,urllib等包,希望对大家有帮忙. 1.简单文件下载 使用htttplib2,具体代码如下: h = httplib2 ...
- python应用系列教程——python使用smtp协议发送邮件:html文本邮件、图片邮件、文件附件邮件
全栈工程师开发手册 (作者:栾鹏) python教程全解 python使用smtp协议发送电子邮件.包含发送html文本邮件.包含图片附件的邮件,包含其他文件附件的邮件.可设置邮件的收发人,主题,内容 ...
- Python通过MQTT协议上传物联网数据给ThingsBoard
第一步: 用租户账号登录,配置ThingsBoard 设备,使用MQTT协议 第二步: 参考这篇文章,使用MQTT客户端 发消息给ThingsBoard 主要是一个username的参数 第三步: 使 ...
最新文章
- leetcode669. 修剪二叉搜索树
- C#/.Net操作MongoDBHelper类
- 漫画丨那些年,我们一起被毁过的“三观”…
- android item 点击 获取position,Android ListView 子控件onClick正确获取position的方法
- 业务线开发流程图(四)
- java图书管理系统个人总结_总结:JAVA小项目——图书管理系统
- python音频转文字腾讯_Python生成腾讯云实时音视频的UserSig签名
- 林彪-怎样当好一名师长
- Spark写入Hudi报分区列乱码问题java.net.URISyntaxException: Illegal character in path at index 46:
- 74HC595原理图”中“ RCLK SRCLK SRCLR”是什么意思
- indesign怎么查找拼音_Indesign中怎么给汉字加拼音
- 千锋python培训机构可靠吗
- 51nod 1428 贪心
- 秦羽接引的鸿蒙第四人,星辰变:秦羽用过的法宝一件比一件厉害,最后一件直接逆天改命!...
- bzoj 4318 osu 【三次方问题】【dp】
- 二十岁决定男人的一生
- SpringBoot(45) 实现快递物流查询(阿里云)
- HEVC解码器HM源码阅读(一)介绍
- netcat工具安装
- 深入理解搜索引擎-搜索召回
热门文章
- Windows显示进程路径
- 基于AD的数字钟的设计和multisim仿真
- 排序算法 | 快速排序算法原理及实现和优化(一)
- 国密算法sm3java软实现_国密算法实现
- Web前端——HTML基础
- python语言的第三方库_常用的Python第三方库
- 分布式医疗云平台(项目功能简介截图)【系统管理(科室管理、用户管理、角色管理、菜单管理 、字典管理、通知公告管理 、检查费用设置、挂号费用设置 )】】(四)-全面详解(学习总结---从入门到深化)
- 社区智慧路灯:基于社区智慧灯杆的老旧小区改造(智慧社区)项目系统解决方案分析
- 逍遥花主、神蚕九变、玉蚌仙珠三部武侠小说
- 白蛋白纳米粒是一种较好的药物载体|白蛋白普萘洛尔人血清白蛋白HSA纳米粒|的帕西瑞肽牛血清白蛋白BSA纳米粒