python 上位机直接与西门子变频器建立通信

利用python直接读取西门子变频器参数,省去变频器与PLC的连接,代码如下。

硬件连接:一根网线连接电脑与变频器,变频器必须要有PN口。

电脑的网络需与变频器的网络ip在同一个网段。如变频器为192.168.0.2,电脑ip可以设置成192.168.0.20

import snap7
import struct
def plc_connect(ip, rack=0, slot=1): 
    client = snap7.client.Client()
    client.connect(ip, rack, slot)
    return client
def plc_con_close(client):
    client.disconnect()
def rd_value(client,parameter_num,start,size,datatype):  # wr_value--十进制,datatype:i为整型int;数据类型: Unsigned32
    area = snap7.types.Areas.DB
    rd_value_bytearray= client.read_area(area, parameter_num, start,size)#size:数据类型,float: size=4
    rd_value=struct.unpack('!' + datatype, rd_value_bytearray)
    return rd_value,rd_value_bytearray
if __name__ == "__main__":

         ip='192.168.0.2'

        client=plc_connect(ip)

    print(rd_value(client,752,0,4,'f'))

 代码中的‘f’是怎么来的:

查手册,数据类型为floatingpoit32,在根据下表查询得到,4个字节,格式符为‘f’。

python 上位机直接与西门子变频器建立通信_第1张图片

 

 

你可能感兴趣的:(python,基础,驱动,java,数据库,服务器)