西門(mén)子PLC S7-1200有個(gè)web頁(yè)面發(fā)布的功能,這個(gè)功能好像很少有人提及它的使用,我也只是偶爾用來(lái)監控一下PLC變量,因為打開(kāi)TIA14確實(shí)有點(diǎn)慢。
這個(gè)功能**不是什么雞肋,因為它可以發(fā)布用戶(hù)自定義的頁(yè)面,頁(yè)面可以加載javascript,這就使得它的功能跟火箭一樣一飛沖天了,SIEMENS的**文檔也說(shuō)了,*好不要靠這個(gè)功能來(lái)代替專(zhuān)業(yè)的HMI軟件,畢竟它的實(shí)時(shí)性和安全性還是有待斟酌的。
在產(chǎn)品調試階段還有測試階段,這個(gè)功能確實(shí)很值得一用,因為它很方便實(shí)現也很容易讓不懂PLC系統的測試人員無(wú)門(mén)檻上手,畢竟打開(kāi)瀏覽器這個(gè)操作人人都會(huì )。
實(shí)現起來(lái)很簡(jiǎn)單,網(wǎng)上的英文文檔也很多,介紹的很詳細,這里就不詳細說(shuō)怎么實(shí)現了,只是說(shuō)一說(shuō)基于主流的CSS框架來(lái)使頁(yè)面制作的更容易和更美觀(guān)一些,還有就是在實(shí)際編寫(xiě)過(guò)程中遇到的一些問(wèn)題框架結構 在實(shí)際開(kāi)始進(jìn)行web功能編寫(xiě)前,需要先規劃一下需要展示幾個(gè)頁(yè)面和頁(yè)面的布局,這里介紹一個(gè)網(wǎng)站layoutit,這個(gè)完全可視化的網(wǎng)站可以進(jìn)行拖放操作實(shí)現網(wǎng)頁(yè)布局,布局后的html代碼可以下載下來(lái)直接使用,使用的CSS框架是主流的bootstrap,可以說(shuō)頁(yè)面的美觀(guān)程度完全不用操心,**主流,下面是我用它生成的一個(gè)網(wǎng)頁(yè)結構,之后下載到PLC后,瀏覽器中打開(kāi)的樣子. 放入變量 網(wǎng)頁(yè)結構完成后,就可以放入PLC的變量了,這里其實(shí)沒(méi)什么特別要說(shuō)的,變量是通過(guò)在整個(gè)html文件開(kāi)頭通過(guò)AWP進(jìn)行所謂的聲明,之后在網(wǎng)頁(yè)中進(jìn)行使用 從PLC進(jìn)行讀操作的變量通過(guò) 從PLC進(jìn)行寫(xiě)操作的變量通過(guò) 這里要注意引號的使用,如果是內存變量M,或者Q,I之類(lèi)的輸入輸出變量,就是通過(guò)單引號外加雙引號將它括起來(lái),像這樣‘“此處填寫(xiě)變量名”‘ 如果是DB塊的變量,就需要像這樣‘“DataBloack名稱(chēng)”.變量名稱(chēng)’ 實(shí)際的使用中,無(wú)非也就幾種操作, 網(wǎng)頁(yè)端按下按鈕控制PLC的變量 在網(wǎng)頁(yè)端顯示PLC的某個(gè)變量 網(wǎng)頁(yè)端輸入某個(gè)數字到PLC內某個(gè)變量 基本這三種操作就能實(shí)現大部分功能,其他的諸如枚舉變量,數組顯示我都很少用到,大家自己研究吧網(wǎng)頁(yè)端按下按鈕控制PLC的變量這個(gè)功能通過(guò)表單的POST方法實(shí)現 第1,2,4行可以原封不動(dòng)的敲進(jìn)去,因為沒(méi)有任何功能性的東西,都是一些顯示和樣式,只有第三行比較重要,其中name后面是PLC的變量名,value是給這個(gè)變量寫(xiě)入1,這個(gè)就實(shí)現了按下按鈕,這個(gè)變量置1的操作,那怎么置0呢,把value改成0就行了。
在網(wǎng)頁(yè)端顯示PLC的某個(gè)變量 這個(gè)功能*簡(jiǎn)單,在需要顯示變量的地方插入代碼:="200asModbusMaster_DB".ModbusMaster_6: 兩邊尖括號的東西可以忽略,只要注意尖括號內部的代碼就行,這是顯示的是DB塊變量,顯示變量的時(shí)候可以不需要單引號,兩端都要有冒號。
網(wǎng)頁(yè)端輸入某個(gè)數字到PLC內某個(gè)變量 這個(gè)和按下按鈕控制變量的實(shí)現機制是一樣的,只需要有個(gè)輸入框 可以看到第2行type是text,這就是那個(gè)輸入框,這里面的數值是賦給name的,name后面的變量就是PLC里面的變量,這里需要有單引號,第三行是通過(guò)一個(gè)按鈕實(shí)現提交動(dòng)作,也就是按下按鈕后,1200asModbusSlave_DB”.ModbusSlave_7就寫(xiě)入你輸入的那個(gè)值了 圖形顯示 再來(lái)說(shuō)一種,有些時(shí)候希望一個(gè)Bool變量不是單純的在網(wǎng)頁(yè)端顯示1或者0,而是能用圖形來(lái)進(jìn)行顯示,這個(gè)也是可以實(shí)現的 這個(gè)HTML代碼正常的樣子其實(shí)是這樣的或者 發(fā)現一些端倪了吧,其實(shí)就是用Bool變量來(lái)替換Lamp0x后面的這個(gè)x,0的時(shí)候就是Lamp00.png,1的時(shí)候就是Lamp01.png,這兩張圖片是這樣的 *后是這個(gè)樣子的