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

洛茄

关注

阅读 170

2022-07-27

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

JZGKCHINA

工控技术分享平台


尊重原创 勿抄袭

勿私放其他平台


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

「人生苦短,我用 Python」

Python 诞生之初就被誉为最容易上手的编程语言。进入火热的 AI 人工智能时代后,它也逐渐取代 Java,成为编程界的头牌语言。

从1月21日,我们给剑指工控的网友们带来一个完全免费的福利——超简单 跟我学-Python,每周一期,由剑指工控大神剑思庭主讲哦!如今4个月过去了,课程已经接近尾声,同时,也迎来高潮:

 Python在工控领域的应用 

来吧!一起学起来!Python入门到放弃(十二) | Python在工控领域的应用(1)_工控_03Python入门到放弃(十二) | Python在工控领域的应用(1)_工控_03Python入门到放弃(十二) | Python在工控领域的应用(1)_工控_03

01

安装​​Python​​                      




02

​​Python 解释器的交互模式​​    




03

​​编写 Python 代码的工具​​      




04

​​基础知识​​                          




05

​​运算符与表达式​​                  




06

​​控制流​​                            




07

​​函数​​                              




08

​​模块​​                              




09

​​数据结构​​                        




10

​​面向对象编程 ​​                 




11

​​异常  ​​                          




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

说明:

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


第十二讲


Python读写Modbus TCP   


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


首先在本机上运行ModSim软件(如果还不知道这个软件的同学,可以进入剑指工控技术群获取Python入门到放弃(十二) | Python在工控领域的应用(1)_python_07),同时选择TCP,设置端口为502

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


然后调整数据区的数值

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


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

pip install pymodbus_tk


python程序编写  Modbus_read.py

import  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)


运行结果如下:

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


给出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)
#写入多个线圈



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

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

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

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

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

Python入门到放弃(十二) | Python在工控领域的应用(1)_寄存器_13Python入门到放弃(十二) | Python在工控领域的应用(1)_寄存器_13Python入门到放弃(十二) | Python在工控领域的应用(1)_寄存器_13


精彩评论(0)

0 0 举报