JZGKCHINA
工控技术分享平台
尊重原创 勿抄袭
勿私放其他平台
「人生苦短,我用 Python」
Python 诞生之初就被誉为最容易上手的编程语言。进入火热的 AI 人工智能时代后,它也逐渐取代 Java,成为编程界的头牌语言。
从1月21日,我们给剑指工控的网友们带来一个完全免费的福利——超简单 跟我学-Python,每周一期,由剑指工控大神剑思庭主讲哦!如今4个月过去了,课程已经接近尾声,同时,也迎来高潮:
Python在工控领域的应用
来吧!一起学起来!
01
安装Python
02
03
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.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)
运行结果如下:
给出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深入学习的课程!
期待你的留言,期待你的加入!
就这么简单,下周四见!
作者简介:
剑思庭,工业网络安全研究员,研究方向为工业网络渗透与防御建设,专注于红队攻击链打造。