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