PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 95078|回复: 0

Python入门到放弃(十二) | Python在工控领域的应用(1)

[复制链接]
发表于 2024-1-23 09:53:12 | 显示全部楼层 |阅读模式

JZGKCHINA工控技术分享平台

尊重原创 勿抄袭

勿私放其他平台


「人生苦短,我用 Python」Python 诞生之初就被誉为最容易上手的编程语言。进入火热的 AI 人工智能时代后,它也逐渐取代 Java,成为编程界的头牌语言。
从1月21日,我们给剑指工控的网友们带来一个完全免费的福利——超简单 跟我学-Python,每周一期,由剑指工控大神剑思庭主讲哦!如今4个月过去了,课程已经接近尾声,同时,也迎来高潮:

Python在工控领域的应用

来吧!一起学起来!






01

安装Python                     

02

Python 解释器的交互模式   

03

编写 Python 代码的工具     

04

基础知识                        

05

运算符与表达式                 

06

控制流                           

07

函数                             

08

模块                             

09

数据结构                       

10

面向对象编程                 

11

异常                           


说明:
Python 3.9 是当前可用的最新版本 Python,因此,我们将在以下说明中引用该版本。此外,这些说明专用于 Windows 10。如果使用以前版本的 Windows,则基本说明是相同的,不过某些步骤中的过程可能略有不同。

第十二讲

Python读写Modbus TCP  

经过前十一个章节,我们学会基本的python语法,今天我将带学习利用Python读写Modbus TCP。

首先在本机上运行ModSim软件(如果还不知道这个软件的同学,可以进入剑指工控技术群获取

),同时选择TCP,设置端口为502



然后调整数据区的数值



然后本章节将采用modbus_tk这个库,windows下安装这个库很简单,只需要在windows的命令行下敲入:
pip install pymodbus_tk

python程序编写  Modbus_read.pyimport  modbus_tk.modbus_tcp as mt
import  modbus_tk.defines as md
import time
#创建TCPMASTER对象

master = mt.TcpMaster('192.168.0.12',502)

#设置超时时间

master.set_timeout(5.5)
#读取寄存器数值
while True:
db2=master.execute(slave=1,function_code=md.READ_HOLDING_REGISTERS,starting_address=0,quantity_of_x=30)
    print(db2)
time.sleep(2)
运行结果如下:



给出Modbus读写的全部示例:
import  modbus_tk.modbus_tcp as mt
import  modbus_tk.defines as md
#创建TCPMASTER对象
master = mt.TcpMaster('127.0.0.1',502)
#设置超时时间
master.set_timeout(5.5)
#写入保持寄存地址1-10,值对应时
# values = (100,200,300,400,500,600,700,800,900,1000,1100)

#master.execute(slave=1,function_code=md.WRITE_MULTIPLE_REGISTERS,starting_address=0,quantity_of_x=20,output_value=value)
#写入单个寄存器

#master.execute(slave=1,function_code=md.WRITE_SINGLE_REGISTER,starting_address=0,output_value=888)
# 读取线圈
#data=master.execute(slave=1,function_code=md.READ_COILS,starting_address=0,quantity_of_x=20)
# print(data)
#写入一个线圈
#master.execute(slave=1,function_code=md.WRITE_SINGLE_COIL,starting_address=0,output_value= True)
#写入多个线圈



IT与OT不断融合的今天,应用简便、快捷的编程方式,实现多样的控制算法,已经成为每个工控人升职加薪必不可少的技能,而Python也为我们打开了一扇全新的门。



你现在正在使用Python吗?是否有很多疑惑?

你是否想跟着剑神继续深入学习Python?







请留言给我们吧!并说说你想学点什么?

汇总大家意见后,我们会协调安排Python深入学习的课程!


期待你的留言,期待你的加入!




就这么简单,下周四见!

作者简介:

剑思庭,工业网络安全研究员,研究方向为工业网络渗透与防御建设,专注于红队攻击链打造。

往期精选











人气推荐

more+











1.Smart200&V90伺服系统:已更新15课

2.贝加莱直播课程:已更新16课

3.力控科技产品培训:已更新5课
4.剑指工控经典公开课:已更新22课5.新品推荐:已更新3课
6.专家课堂:已更新12课

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-9-17 04:41 , Processed in 0.043945 second(s), 26 queries .

快速回复 返回顶部 返回列表