首页 > 编程语言 >python读写西门子S7协议的传感器数据

python读写西门子S7协议的传感器数据

时间:2024-07-12 17:29:33浏览次数:19  
标签:real get python data 读写 S7 util plc my

下列示例读写200smartPLC设备

import time
from snap7 import util, client
import threading

def read_plc_valve():
    while True:
        try:
            # 建立一个客户端对象
            my_plc = client.Client()
            # 如果是200smart,必须有此段代码,1200,1500可以不写
            my_plc.set_connection_type(3)
            # 连接plc,参数分别为ip 、卡号、槽号,200smart的卡号和槽号为0和1
            my_plc.connect("192.168.55.20", 0, 1)
            # 判断是否连接成功 返回值为true 和false
            state = my_plc.get_connected()
            print(state)
            # 读取数据
            # 下面四个参数中,client.Areas.DB表示读取DB,1表示读取DB1,100表示起始地址,16表示读取的字节长度,需要根据实际情况填写
            data = my_plc.read_area(client.Areas.DB, 1, 100, 16)
            # 从读取到的字节中,拆分出每个数据,这里采集的数据是32位浮点数,使用get_real,每四个字节表示一个数据
            m = util.get_real(data, 0)
            m2 = util.get_real(data, 4)
            m3 = util.get_real(data, 8)
            m4 = util.get_real(data, 12)
            print(m, m2, m3, m4)
            # 写入数据
            # 准备要写入的数据,此处要写入一个数据,四个字节
            data_to_write = bytearray([0x41, 0x00, 0x00, 0x00])
            # 向DB1的第112个字节,写入数据
            my_plc.write_area(client.Areas.DB, 1, 112, data_to_write)
            # 断开连接
            my_plc.disconnect()
            # 销毁客户端对象
            my_plc.destroy()
        except Exception as e:
            print(e)
        time.sleep(60)


if __name__ == '__main__':
	read_plc_valve()

标签:real,get,python,data,读写,S7,util,plc,my
From: https://blog.csdn.net/amzzsthl/article/details/140260318

相关文章

  • python入门第二课
    编码默认情况下,Python文件以UTF-8编码,所有字符串都是unicode字符串。当然你也可以为源码文件指定不同的编码标识符第一个字符必须是字母表中字母或下划线_。标识符的其他的部分由字母、数字和下划线组成。标识符对大小写敏感。在Python3中,可以用中文作为变量......
  • 浅尝python的图像识别
    目的对python中的图像识别进行简单的测试和使用环境win64系统anaconda需要下载的软件:tesseract需要下载的python包:pytesseract,pillow一张记录英文的图片环境的搭建1、tesseract的下载:下载链接:https://digi.bib.uni-mannheim.de/tesseract/tesseract下载后需要对环境......
  • python核心编程
    第一章1.python定义继承了传统编译语言的强大性和通用性,也借鉴了简单脚本和解释型语言的易用性2.python起源1989年底罗萨姆始创了python。他期望有一种工具可以完成日常系统管理任务,并能够访问Amoeba分布式操作系统的系统调用。罗萨姆为此创造出了一种通用的程序设计语言。1......
  • 【python】函数重构
    函数重构函数重构pycharm函数重构步骤函数重构练习函数重构函数重构是指对现有函数进行修改和优化的过程。重构的目的是改善代码的可读性、可维护性和灵活性,同时保持其功能不变。函数重构通常包括以下步骤:理解函数的功能和目的。了解函数的作用和期望结果,确定重构......
  • 使用Python配合OpenCV,非常简洁的来识别出银行卡号
        Opencv(OpenSourceComputerVisionLibrary)是一个基于开源发行的跨平台计算机视觉库。OpenCV用C++语言编写,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和MacOS。本篇是使用python配合opencv来做图片识别,以识别银行卡上的卡号为例。   安装......
  • Python-pptx学习随笔
    引言++最近有用到做自动化ppt相关的功能,简单记录一下实现过程的部分操作。++0pptx的结构pptx的存储本质上是一颗树flowchartLRpptx-->slides-->shapes-->组内shapespptx-->幻灯片-->模块形状-->复合形状内部的形状1相关操作1.1创建一个pptx类fr......
  • python 内置高級函數盤點
    1. map(function,iterable,...)map()函数接受一个函数和一个可迭代对象作为参数,将函数应用于可迭代对象的每个元素,并返回一个包含结果的迭代器#将列表中的每个元素加1numbers=[1,2,3,4,5]result=map(lambdax:x+1,numbers)print(list(result))#输出[2,3......
  • AvalonMM接口PIO IP的介绍和PIO的读写操作详解
    一、PIO寄存器介绍Avalon®-MM主机外设(如CPU)通过四个32位寄存器控制并与PIO核通信,如下所示。该表假设PIO核的I/O端口被配置为n位宽度。以上截图来自IntelEmbeddedPeripheralsIPUserGuide。data寄存器如果将PIO硬件配置为输入或仅输入输出模式,则从数据读取将返回输入端......
  • centos7 镜像仓库都失效了,怎么办?
    1、centos7镜像仓库都失效了,怎么办?背景:我刚才使用yum命令安装软件是,失败了。错误信息如下: 很明显,就是http://mirrorlist.centos.org无法访问到,出现了404。原因:CentOSLinux7的生命周期(EOL)于2024年6月30日终止。了解红帽帮助您轻松迁移的选项,包括支持第三方Linux......
  • 发布用flask框架开发的python后端程序到windows服务器
    flask框架开发的python后端程序开发好了后,怎么发布到生产环境呢?以app.run()的方式在生产环境上启动服务,当有异常特别容易退出,而且性能很弱。生产环境下,python常见的web部署搭配是nginx+gunicorn。但是这种搭配只适合在Linux环境下。gunicorn不支持windows环境。如果要搭......