一、引子
自從看了老壞貓(江湖人稱貓總)的SharpSCADA項目后,讓我感覺耳目一新同時也對自動化數據采集有了更深入的認識,我相信有不少做上位機的朋友和我一樣對這個項目非常好奇。我們做上位機的應用場景相比SCADA系統還是有很大差別的,比如我們再跟plc通訊的時候,每一次通訊數據很少存入數據庫,還有報警、歷史歸檔等功能很少體現在上位機里面。利用五一假期,我將貓總的代碼進行了簡化,做了一個SCADA的lite版本。
下面是SCADA系統的應用架構,在貓總的程序中,有個DAService的文件就是圖中的網關服務器,同時也包含實時數據服務器和歸檔的功能,在我的簡化版本中,沒有了實時數據服務器,不再歸檔,數據不存數據庫而是使用json解析定義的組與標簽。
二、配置與運行
我的簡化版本不需要數據庫,所以基本上做到了零配置。由於手頭沒有plc可以調試,所以項目用的是modbus的模擬器程序,你只需要安裝附件中的modsim軟件,我配置了兩個模擬器,一個是tcp通訊一個是串口通訊,tcp的直接導入配置就行,串口就稍微麻煩一點,需要安裝附件中模擬串口軟件,大家上網搜一下使用很簡單。
1.在GitHub上下載源碼,地址https://github.com/qwe7922142/SharpSCADALite。
2.安裝modbus模擬器程序。
3.導入附件中一個叫TcpBool的文件,再導入一個SerialBool的文件,具體如下配置:
4.安裝串口模擬器,將com1和com2做成鏈接。
5.vs2015以上進行編譯,然后你就可以看到下面的界面,enjoy yourself!!!
三、最后總結
貓總的程序有很多值得我們借鑒的地方,比如實現多組輪詢plc寄存器,plc讀寫驅動與上層應用脫離耦合,wpf的設計時等等。我在簡化的過程中,不可避免的將很多精彩的源碼刪去了,建議大家還是多看看貓總的源碼,這里附上貓總的博客地址:https://www.cnblogs.com/evilcat。
附件:https://files.cnblogs.com/files/xiaozhangStudent/%E9%99%84%E4%BB%B6.rar