遠程監控顯示brother數控機床數據


最近幾個月公司太忙了,到現在已經連續出差兩個多月了。

這個項目這要做mes系統,涉及到產品在機床的加工過程監控,然后led看板顯示產品進度。

這里的主角是日本的brother數控機床,服務器按照一定頻率讀取機床的生產數據,最基本的包括機床的工件產量,開機狀態等信息。

后台是Java寫的,其中一部分是led顯示機床數據,而讀取機床數據的部分本來想用dotnet做個Windows服務,可是折騰了很長時間還是沒有搞定。

brother機床設備里面是個Linux系統,里面架設有ftp服務,可以從遠程pc訪問數據庫nc文件,第一次用dotnet無法讀取,原因是項目所在目錄包含中文字符,后來換個位置后可以讀取。如今在純英文目錄都不行,換了好幾台設備還是不行,一直提示“基礎連接已經關閉: 服務器提交了協議沖突”,網上很多資料都說是目錄含有中文字符,可是我再三確認沒有中文,我用的系統是win10 x64專業版,也有說是使用了代理,我把reqFtp.Proxy = null;還有關掉本地防火牆,主動被動模式都不行。

最后只能放棄,第二天早上突發奇想,用python寫個腳本試試,果真見效,只能說dotnet framework 在ftp方面還是存在不少bug。以下是python腳本:

 1 # coding: utf8
 2 from ftplib import FTP
 3 
 4 
 5 def download(host='192.168.1.5', port=21, user='1234', pwd='1234', nc='WKCNTR.NC'):
 6     cnc = FTP()
 7     try:
 8         cnc.connect(host=host, port=port, timeout=10)
 9     except Exception as e:
10         print(e)
11         return
12     try:
13         cnc.login(user=user, passwd=pwd)
14     except Exception as e:
15         print(e)
16         return
17     print(cnc.getwelcome())
18     for name in cnc.nlst():
19         print(name)
20     file = open('d:/' + nc, 'w', encoding='utf8')
21 
22     def save_local(line):
23         file.write(line + '\n')
24         print(line)
25 
26     cnc.retrlines('RETR ' + nc, save_local)
27     file.close()
28     cnc.quit()
29 
30 if __name__ == '__main__':
31     download(host='192.168.26.5')

 下面是新的進展,由於cnc brother的ftp並不穩定,有時會不允許連接,或連接后不允許下載文件,只要出現這種情況,就再也無法回復,只有重啟。

Tcp方式采集CNC兄弟設備數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM