IEC61499 編程(2)-4DIAC 與Python 通信

該程序產生一個Sin 數據,通過UDP Publish 發送,有一個Python 程序接收並顯示。演示IEC61499 功能塊與外部程序的通信。

4DIAC 功能塊程序

Python 程序代碼

import socket
import struct
from matplotlib import pyplot as plt
def bytesToFloat(h1,h2,h3,h4): 
    ba = bytearray()
    ba.append(h1) 
    ba.append(h2) 
    ba.append(h3) 
    ba.append(h4) 
    return struct.unpack("!f",ba)[0]
HOST = '192.168.31.108'
PORT = 8888
BUFSIZ = 32
ADDR = (HOST,PORT)
udpSerSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udpSerSock.bind(ADDR)

x=[]
y=[]
for i in range(360):
    x.append(i)
    y.append(0)
plt.show()
while True:
    data, addr = udpSerSock.recvfrom(BUFSIZ)
    print ('Received bytes%d\n' ,len(data))
    waveData=bytesToFloat(data[1],data[2],data[3],data[4])
    for i in range(359):
       y[i]=y[i+1]
       y[359]=waveData
    plt.clf()
    plt.plot(x,y)
    plt.pause(0.0005)
  
   

Python 顯示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章