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