相關(guān)推薦
您可能對(duì)下面課程感興趣
Python上位機(jī)開(kāi)發(fā)教程

105小節(jié)已有5471人學(xué)過(guò)

Python上位機(jī)開(kāi)發(fā)數(shù)字打包和解包
發(fā)布時(shí)間:2024-11-20 09:20 [ 我要自學(xué)網(wǎng)原創(chuàng) ] 發(fā)布人: 快樂(lè)小女 閱讀: 48



vb0 = 66
vb1 = -90
vw2 = 32767
vw4 = -3000
vd6 = 99999
vd10 = -9888888
vd14 = 7887.999
vd18 = -0.9999

#Bytes類型,是由8個(gè)二進(jìn)制位組成的正整數(shù),范圍0-255共256個(gè)數(shù)

# for i in range(256):
#     print(f'{i:08b}-->{i}')
#
#
# #1 利用自身的方法進(jìn)行解析
# vb0_byte = vb0.to_bytes(1)
# vb1_byte = vb1.to_bytes(1,signed=True)
# vw2_bytes = int.to_bytes(vw2,2)
# vw4_bytes = int.to_bytes(vw4,2,signed=True)
# vd6_bytes = int.to_bytes(vd6,4)
# vd10_bytes = int.to_bytes(vd10,4,signed=True)
#






#2 使用struct 模塊
"""
大小端 > 大端  <小端

格式符:
整數(shù)類型:
    有符合字節(jié) ’b'       無(wú)符號(hào)字節(jié) ‘B’       1byte      
    有符號(hào)短整數(shù) 'h'     無(wú)符號(hào)短整數(shù) 'H'      2bytes     
    有符號(hào)整數(shù) 'i'     無(wú)符號(hào)整數(shù) 'I'         4bytes     
    有符號(hào)長(zhǎng)長(zhǎng)整數(shù) 'q'     無(wú)符號(hào)長(zhǎng)長(zhǎng)整數(shù) 'Q'   8bytes     
   
浮點(diǎn)數(shù)
    單精度  'f'                             4bytes
    雙精度  'd'                             8bytes
   
"""

import struct

my_data = struct.pack(">BbHhIiff",vb0,vb1,vw2,vw4,vd6,vd10,vd14,vd18)
print(my_data,len(my_data))





if __name__ == '__main__':
    from snap7 import client


    def connect_plc() -> client.Client:
        plc = client.Client()
        plc.set_connection_type(3)
        plc.connect("192.168.5.20", 0, 1)
        return plc


    def write_to_plc(start_addr, byte: bytes):
        plc = connect_plc()
        plc.db_write(1, start_addr, byte)
        plc.disconnect()


    def read_plc(start_addr, num) -> bytearray:
        plc = connect_plc()
        data = plc.db_read(1, start_addr, num)
        plc.disconnect()
        return data


    # data_bytes = vb0_byte + vb1_byte + vw2_bytes + vw4_bytes + vd6_bytes + vd10_bytes
    # print(data_bytes, len(data_bytes))

    # write_to_plc(0,my_data)

    data = read_plc(0,22)
    struct_data = struct.unpack(">BbHhIiff",data)
    print(struct_data)

Python上位機(jī)開(kāi)發(fā)教程
我要自學(xué)網(wǎng)商城 ¥80 元
進(jìn)入購(gòu)買
文章評(píng)論
0 條評(píng)論 按熱度排序 按時(shí)間排序 /350
添加表情
遵守中華人民共和國(guó)的各項(xiàng)道德法規(guī),
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭(zhēng)議評(píng)論。
參與本評(píng)論即表明您已經(jīng)閱讀并接受
上述條款。
V
特惠充值
聯(lián)系客服
APP下載
官方微信
返回頂部
相關(guān)推薦
您可能對(duì)下面課程感興趣
Python上位機(jī)開(kāi)發(fā)教程

105小節(jié)已有5471人學(xué)過(guò)

分類選擇:
電腦辦公 平面設(shè)計(jì) 室內(nèi)設(shè)計(jì) 室外設(shè)計(jì) 機(jī)械設(shè)計(jì) 工業(yè)自動(dòng)化 影視動(dòng)畫 程序開(kāi)發(fā) 網(wǎng)頁(yè)設(shè)計(jì) 會(huì)計(jì)課程 興趣成長(zhǎng) AIGC