前一段時間有一網友電話求助,說自己做的稱重設備(皮帶秤)讀取到的數據值總是一直在跳變,無法正確識別稱重傳感器讀取上來的值來判斷產品的重量,雖然在程序中增加了取平均值功能(模擬量輸入按plc掃描周期次數求平均值程序),但效果不理想。
我思考了一下回復,讓他做一個用變址方式讀取稱重數據n次,然后取平均值的做法得到了解決。大致的意思是取一個讀取稱重數據數值的標志位,觸發(fā)每次需要讀取的數據用變址方式存放在一個連續(xù)數據區(qū)域,當讀取數據到達設置次數時取一個求平均的結果,并清除原存放的數據后連續(xù)循環(huán)。因為友人的plc是第三方的,這里就不再詳細描述控制過程。
記得前一些天看過西門子200smart plc具備有數據日志的功能,一直想做這個實驗。聯系到該問題,如果第三方plc能夠具備這個數據日志功能可能處理這個問題會更容易一些。于是,打開s7-200 smart plus幫助文件,查找到“功能”—“數據日志”及系統手冊內容看起來。
數據日志概況:“只有固件版本v2.0或更高版本的s7-200 smart cpu支持數據日志功能,在step 7-micro/win smart軟件中,可以通過數據日志向導創(chuàng)建最多四個數據日志文件,他們存儲在plc的永久存儲器中。每個數據日志都是一個單獨的文件,最大為 2 兆字節(jié)”。
如果網友能夠選擇西門子200samrt做控制元件,并配置以smart line v3觸摸屏做的項目,則這個問題處理起來可能會變的容易一些。
實驗器材:(硬件)
1)一臺安裝了200 samrt v2.1軟件的電腦
2)一個實驗用plc cr60
3)相關連接的網線及plc電源線各一條
編程操作:
1)打開編程軟件;選擇一個與實際plc型號一致的cpu,如圖:
2)選擇“工具”下的“數據日志”向導,并勾選“數據日志0”如圖:
3)下一步后,選擇“數據日志0”的文件名稱,此處選擇默認名稱,記錄的文件名稱將以此名稱記錄在excel文件中,允許用戶修改日志文件名稱,如圖:
4)繼續(xù)操作下一步,為“數據日志0”配置最大記錄數量,默認值1000,最大數位65535條。采用默認的選項給每一條記錄配置時間、日期戳。為實驗能夠快速驗證,先新建20條數據試試,如圖:
5)繼續(xù)下一步,定義“數據日志0”的具體記錄數據,定義了3個相關的數據名稱及數據類型,共計占7個字節(jié)數,如圖:
6)繼續(xù)下一步,為“數據日志0”分配儲存器地址,這里選擇從vb1000開始的7個字節(jié)為記錄地址區(qū),如圖:
7)繼續(xù)下一步,系統自動生成3個子程序組件,如圖:
8)完成向導的配置后,在子程序中生成一個子程序(dat*_write),如圖:
在200smart 軟件中還可以在程序中查找到這個向導生成的子程序,如圖:
9)該子程序用調用條件觸發(fā)需要用沿觸發(fā)方式的目的是為了節(jié)約有限的eeprom寫入次數。因為是驗證程序,我采用秒脈沖加上升沿觸發(fā),子程序沒有其它管腳定義,僅僅是一個字節(jié)型的輸出錯誤代碼儲存區(qū),編譯后沒有錯誤,如圖:
10) 連接好plc電源及網線,選擇網絡接口卡,注意這個接口卡必須是電腦實際的物理網卡。如果無法找到cpu,可以在“網上鄰居”—“本地連接”—“屬性”中設置電腦的ip地址,plc默認ip地址192.168.2.1,這里將電腦的ip地址設置為192.168.2.10,子網掩碼不做變更,ip網段必須是在同一個網段上,將程序下載到plc中,如圖:
11) 設置的通訊連接正常后,下載的程序運行情況,沒有錯誤,如圖:
12) 數據日志的數據并上傳數據日志的方法:點擊“plc”按鈕下的上傳小三角箭頭后,系統下拉菜單彈出選擇“數據日志”,選擇“數據日志0”數據存放途徑后,選擇“上傳”,窗口下側顯示上傳時的進度條及文件大小,如圖:
13) 在指定的文件夾中找到那個存放數據日志的文件,并用excel方式打開,如圖:
上訴隱射數據日志地址是根據向導定義的數據類型編排而成的,并注意西門子數據類型格式。
使用數據日志時需要注意的問題:
1)由于是需要實時記錄數據日志,必須事先調校好plc運行的實時時鐘,方法:點擊“plc”按鈕,選擇“設置時鐘”,選擇“讀取pc”,選擇“設置”,并將設置下載到cpu中,如圖:
2)cpu的eeprom有擦寫次數限制,不能無限次數據存儲,所以使用沿觸發(fā)調用 datx_write 指令節(jié)約寫入次數。
3)如果需要記錄較長的數據日志條目數,請在“選項”中的記錄數據日志設置到合適的條目數,記錄條目數范圍:1~65535條。條目記錄機制將以覆蓋的方式,當條目數記滿設置條目數后,新值將覆蓋原記錄的條目數據上,原值被自動溢出。
4)一個數據日志最大記錄字段允許有200字節(jié)數,如果需要包含時間、日期戳(每一個時間、日期戳占3個字節(jié)),則最大用戶記錄的字節(jié)數減小194個字節(jié)。例子中已用了7個字節(jié)作為數據日志記錄條目數(共計13個字節(jié))。
5)特殊寄存器標記字節(jié)smb480~smb515為只讀數據日志的狀態(tài)及報警信息,用戶可以通過特殊標志字節(jié)或者error錯誤信息查看數據日志指令運行情況。