js3845金沙线路

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

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

分类::行业动态
起源::js3845金沙线路科技
颁布功夫::2024-05-10
浏览::3461

在当今急剧发展的工业自动化和智能制作领域,对高效、、靠得住的通讯和谈的需要日益增长。。。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 -
热点推荐
热点资讯
热点话题
js3845金沙线路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。。。

js3845金沙线路科技,助您开启工业数字化和智能化之路

在线留言
企微客服
js3845金沙线路科技在线客服

官方企微客服

扫码关注
关注js3845金沙线路科技

js3845金沙线路科技公家号

在线客服
返回顶部

申请产品试用

感激您关注js3845金沙线路科技,为了更好的为您服务,请填写并提交以下信息,我们将尽快与您联系!

基础信息

需要信息

*
js3845金沙线路PLC征询
【网站地图】