YY易游官网

首页 新闻中心 行业动态 【手把手教程】用Python衔接Modbus通讯,,,,,,工业自动化其实很单一!

【手把手教程】用Python衔接Modbus通讯,,,,,,工业自动化其实很单一!

分类:行业动态
起源:YY易游官网科技
颁布功夫:2024-05-10
浏览:3656

在当今急剧发展的工业自动化和智能造作领域,,,,,,对高效、靠得住的通讯和谈的需要日益增长。。。 。。。Modbus,,,,,,作为一个汗青悠久且宽泛选取的工业通讯和谈,,,,,,表演着至关沉要的角色。。。 。。。结合Python的壮大编程能力,,,,,,我们能够越发矫捷和高效地实现工业自动化解决规划。。。 。。。

 

本篇文章将通过教程介绍若何利用Python与Modbus和谈进行通讯,,,,,,以及若何在现实的工业环境中利用这些技术。。。 。。。


Python衔接Modbus通讯


什么是Modbus ? ??? ? ???


Modbus 是一种宽泛使用的工业通讯和谈,,,,,,由 Modicon Systems 开发。。。 。。。它选取主从架构,,,,,,允许一个主设备(Master)与多达 247 个从设备(Slaves)进行通讯。。。 。。。

 

Modbus的类型


Modbus重要分为两种类型:


Modbus串行:使用串行线(如 RS232 或 RS485)进行通讯。。。 。。。


Modbus TCP/IP:基于以太网,,,,,,克服了串行通讯的限度。。。 。。。

 

Modbus串行是使用串行电缆传输信号,,,,,,若是以点对点方式衔接(一主一从),,,,,,则将使用 RS232或RS422 电缆,,,,,, 但若是以点对多点方式衔接。。。 。。。 (一主多从)使用RS485电缆,,,,,,但由于串行电缆的很多限度,,,,,,蕴含距离、设置和数量,,,,,,它此刻已经发展到可能支持使用Modbus TCP/IP通过以太网衔接。。。 。。。


Python衔接Modbus通讯


在本次教程中,,,,,,我们选择使用Modbus TCP,,,,,,但是Modbus Serial也能够使用一样的代码进行测试。。。 。。。

 

筹备工作


为了起头使用Python与Modbus通讯,,,,,,你必要:


1.装置pymodbus(能够使用pip或下载)


2.下载并设置Modbus从设备法式以进行测试。。。 。。。

 

尝试起头


使用 Python 作为服务器,,,,,,modbus sim 作为客户端,,,,,,你能够实现 Modbus 和谈的通讯。。。 。。。以下是尝试步骤:


from pymodbus.client.sync import (
    ModbusSerialClient,
    ModbusTcpClient,
    ModbusTlsClient,
    ModbusUdpClient,
)
from pymodbus.transaction import (
    ModbusAsciiFramer,
    ModbusBinaryFramer,
    ModbusRtuFramer,
    ModbusSocketFramer,
    ModbusTlsFramer,
)

client = ModbusTcpClient(host='localhost',port=502,framer=ModbusSocketFramer)

def WriteData(slave_id,address,count,value):
    client.write_registers(address,[value]*count,unit=slave_id)

def ReadData(slave_id,address,count):
    x = client.read_holding_registers(address,count,unit = slave_id)
    print(x.registers)

def ReadCoil(slave_id,address,count):
    x = client.read_coils(address,count,unit=slave_id).bits
    print(x)

def WriteCoil(slave_id,address,count,value):
    if value == "ON":
        status = True
    else:
        status = False
    x = client.write_coils(address,[status]*count,unit=slave_id)
    # print(x)

def WriteString(slave_id,address,count,value):
    client.write_registers(address,[0]*count,unit=slave_id)
    if len(value)%2 > 0:
        value = value + " "
    c = len(value)//2
    for i in range(c):
        y = value[0 + (2*i):2 + (2*i)]
        print(y)
        q = [ hex(ord(r))[2:4] for r in y]
        print(q)
        k = int(q[0]+q[1],16)
        client.write_registers(address+i,k,unit=slave_id)

print(client.connect())

# WriteData(1,0,2,555)
# WriteCoil(1,0,8,"ON")

# ReadData(1,0,8)
# ReadCoil(1,0,8)

# WriteString(1,0,8,"banana")


从代码中能够看出,,,,,,能够通过更改客户端和成帧器来更改为使用串行或 TCP。。。 。。。

 

打开modbus从站法式并进入设置并选择Modbus TCP/IP。。。 。。。


选择模式为 Modbus TCP

选择模式为 Modbus TCP

 

 

Slavev id 和地址类型能够从 setup -> Slavev 界说中设置

Slavev id 和地址类型能够从 setup -> Slavev 界说中设置

 

尝试使用WriteData (2,0,2,555)号令,,,,,,其中前2个数字是slave_id,,,,,,0是默认数据,,,,,,2是要使用的数字,,,,,,555是按运行后将发送的数据。。。 。。。


从机 ID 2 在地址 1 和 2 处的值为 555

从机 ID 2 在地址 1 和 2 处的值为 555

 

若是使用 WriteCoil(3,0,3,”ON”),,,,,,将在线圈输出存储器中号令一个打开或关关位,,,,,,其中0是初始位,,,,,,3是要使用的编号,,,,,,on是要打开的号令。。。 。。。


从机 ID 3 的线圈位于地址 1,2,3</span></p>

从机 ID 3 的线圈位于地址 1,2,3

 

能够使用其他读取地址号令尝试使用已写入的函数。。。 。。。


读取从站3的值

尝试读取从站3的值

 

通过测试,,,,,,我们能够看到,,,,,,仅仅通过这段代码就可能通过Modbus和谈进行通讯。。。 。。。你应该已经对Modbus和谈及其在工业自动化中的利用有了更清澈的理解。。。 。。。


Python与Modbus的通讯技术


Python作为一种高效矫捷的编程说话,,,,,,与Modbus和谈结合,,,,,,为工业节造系统的设计和执行提供了无限可能。。。 。。。无论你是工业自动化领域的新手,,,,,,还是经验丰硕的专业人士,,,,,,把握Python与Modbus的通讯技术都将极大提升工作效能和系统的智能化水平,,,,,,助你在工业自动化的路路上走得更远。。。 。。。



- END -
热点推荐
热点资讯
热点话题
YY易游官网Licos系列产品
PLC:EC200系列CPU

EC200系列CPU是一款高机能幼型PLC,,,,,,充分阐扬幼型机的单体优势,,,,,,以超值的性价比为用户幼型节造系统提供解决规划。。。 。。。

PLC:EC300系列CPU

EC300系列CPU是一款中型PLC,,,,,,通讯接口丰硕且拓展性强,,,,,,为过程节造领域的中幼型设备和系统提供不变、靠得住和高性价比的解决规划。。。 。。。

PLC:EC400系列CPU

EC400系列CPU是一款大型PLC,,,,,,拥有丰硕的通讯接口和壮大的拓展性,,,,,,支持双CPU和双PLC冗余,,,,,,为过程节造领域的大型系统提供不变、靠得住和高性价比的解决规划。。。 。。。

PAC:MC500系列CPU

LicOS MC500是一款幼型运动节造器,,,,,,支持总线轴和脉冲轴,,,,,,在16轴以内或者总线+脉冲混合运动节造场景中,,,,,,MC500提供不变靠得住、高性价比的混合式运动节造解决规划。。。 。。。

PAC:MC600系列CPU

LicOS MC600系列是一款中型运动节造器,,,,,,它提供不变靠得住、机能壮大的混合式运动节造解决规划。。。 。。。

PAC:MC700系列CPU

LicOS MC700是专门针对高难度、高精度要求的复杂运动节造系统或设备打造的一款产品,,,,,,它占有极强的算力和实时性保障。。。 。。。

I/O系统:GL200系列

GL200系列IO系统以其丰硕的 ? ??? ? ???橹掷唷⒂浊煞奖愕牡镀缴杓啤⒏叻直媛市藕挪杉褪凳狈蠢∧芰Γ,,,为自动化行业提供不变靠得住的解决规划。。。 。。。

I/O系统:GR200系列

GR200系列耦合器,,,,,,支持EtherCAT与Profinet,,,,,,实现远程机架扩大,,,,,,建设24V冗余电源和16通路数字I/O,,,,,,简化工控自动化集成。。。 。。。

I/O系统:GL100系列

GL100系列IO系统以全面覆盖的 ? ??? ? ???槔嘈汀⒏叻直媛市藕糯χ煤徒媒莸墓こ套樘芰Γ,,,为用户提供定造化解决规划,,,,,,满足多样化的工业自动化需要。。。 。。。

I/O系统:GR100系列

LicOS GR100系列耦合器支持EtherCAT和PROFINET双和谈,,,,,,兼容主流设备,,,,,,适配GL100系列IO ? ??? ? ???椋,,,提供全面的通路级诊断职能,,,,,,实现高效系统构建与故障响应。。。 。。。

伺服驱动:S2系列伺服驱动器

S2系列伺服驱动器,,,,,,以全新设计和精美表观,,,,,,结合LSM系列伺服电机,,,,,,提供全面的驱动节造解决规划,,,,,,实现地位、速度和扭矩的精确切换,,,,,,确保机能卓越和用户履历的便捷与矫捷。。。 。。。

伺服驱动:S3系列伺服驱动器

S3系列伺服驱动器以其比S2更紧凑的体积,,,,,,专为狭幼空间设计,,,,,,与LSM系列伺服电机的无缝共同,,,,,,提供合用于各类驱动利用的高机能解决规划,,,,,,实现矫捷的地位、速度和扭矩节造,,,,,,确保用户享有卓越机能和不变靠得住的操作履历。。。 。。。

伺服驱动:T3系列脉冲型伺服驱动器

LicOS T3系列脉冲型伺服是新一代高机能伺服驱动器,,,,,,可实现亚微米级此外地位节造精度,,,,,,可大幅提升工业自动化设备的精座,,,,,,速度、效能和不变性。。。 。。。具备通用化和平台化两大特点,,,,,,支持RS485通讯,,,,,,功率领域涵盖200W~1000VV。。。 。。。

伺服驱动:U系列尺度型伺服驱动器

LicOS U系列新一代高机能AC伺服驱动器。。。 。。。拥有高响应,,,,,,高精度、高速度的特点,,,,,,同时选取先进底层算法,,,,,,占有多种高级职能,,,,,,可能适应多行业场景,,,,,,功率领域涵盖100W~7500W

YY易游官网科技,,,,,,助您开启工业数字化和智能化之路

在线留言
企微客服
YY易游官网科技在线客服

官方企微客服

扫码关注
关注YY易游官网科技

YY易游官网科技公家号

在线客服
返回顶部

申请产品试用

感激您关注YY易游官网科技,,,,,,为了更好的为您服务,,,,,,请填写并提交以下信息,,,,,,我们将尽快与您联系!

基础信息

需要信息

*
YY易游官网PLC征询
【网站地图】【sitemap】