圖片:
客戶(hù)是個(gè)西門(mén)子1500的PLC,想導出幾個(gè)指定的數據,存入一個(gè)固定的exel模板里面,然后打印出來(lái)。
圖片里一行就是一個(gè)數據,應用辦法就是先添加一個(gè)空行,雙擊修改里面的屬性,保存設置就能讀數據出來(lái)了。然后指定excel的行列坐標號,哦模板是文件夾里面有個(gè)模板的excel
這里面用到了幾個(gè)技術(shù)點(diǎn):
1.以太網(wǎng)通訊pingIP的方式 實(shí)現斷線(xiàn)重連。
2.字典和序列化的搭配使用,存儲配置信息。
3.數據的采集一開(kāi)始一行是一個(gè)線(xiàn)程,多線(xiàn)程寫(xiě)的,但是測試的時(shí)候發(fā)現,如果行數多了,連接個(gè)數也會(huì )變多,會(huì )拖垮PLC變的很慢
后來(lái)我想起來(lái)西門(mén)子 S7連接是有個(gè)數限制的。后來(lái)就改成了主線(xiàn)程遍歷的方式,這樣就是一個(gè)連接了,但是這樣如果你數據多了,整體采集就
會(huì )變慢,這個(gè)我寫(xiě)的不好,但是好在我的數據都少啊就10幾個(gè),賴(lài)得改了
4.地址的格式要按照我照片里這種格式寫(xiě),我沒(méi)有對數據地址格式進(jìn)行判斷,也是懶的寫(xiě)了哈哈,因為配置的人肯定懂地址格式。哦還有
數據類(lèi)型我沒(méi)有寫(xiě)全啊,我就寫(xiě)了我需要的一些,你們可以看源代碼里面。
5.調用了一個(gè)office的dll 可以導出數據到excel
6.dgv的增刪,這里我是用了一個(gè)datatable,在這里面弄好之后在放進(jìn)dgv里面去,后來(lái)覺(jué)得有點(diǎn)麻煩應該直接在dgv里面操作。
最后,理論上這個(gè)軟件可以跟300 400 1200 1500以太網(wǎng)通訊,1200 1500記得吧CPU屬性里面,連接機制有個(gè)putget那個(gè)勾選上。