0317 【萬泉河】從模擬量的量綱說起。
有人會(huì)問量綱是啥,就是物理單位啦!單位只是通俗的說法,而且有歧義。 而物理和力學(xué)里面都稱之為量綱的,既專業(yè)且沒有歧義。
在英語里面這個(gè)單詞叫做Unit。
問大家一個(gè)問題,控制系統(tǒng)中,通常采集上來大量的模擬量數(shù)據(jù), 會(huì)顯示在觸摸屏或上位機(jī)上。 那么每一個(gè)信號(hào)的物理單位的量綱如何標(biāo)注顯示,如何實(shí)現(xiàn)呢?
有人會(huì)笑了。 這還不簡(jiǎn)單嘛,在觸摸屏上每一個(gè)數(shù)據(jù)框后面添加一個(gè)靜態(tài)文本,文本內(nèi)容逐個(gè)修改為相對(duì)應(yīng)的單位即可,與標(biāo)注這個(gè)數(shù)據(jù)的標(biāo)題描述方法一樣。 程序修改完成,下載到觸摸屏中,自然就實(shí)現(xiàn)了。
是的,這是每個(gè)初學(xué)者都會(huì)的做法。然而也是僅僅剛剛培訓(xùn)學(xué)校畢業(yè),剛剛離開教室,屁股后面的大門都還沒關(guān)嚴(yán)實(shí)的水平。
想一想你做的監(jiān)控系統(tǒng),模擬量數(shù)據(jù)的數(shù)量,不管是8個(gè)也好,80個(gè),800個(gè)也好,這些數(shù)據(jù)肯定都不是一個(gè)規(guī)格,而是各種物理數(shù)據(jù),溫度,壓力,流量,重量,體積,長(zhǎng)度等等。那么每一個(gè)數(shù)據(jù),你都需要左手翻著工藝清單,右手翻著觸摸屏畫面,挨個(gè)兒找過來,逐個(gè)對(duì)應(yīng),輸入,修改,檢查。 這工作量著實(shí)不少。
而如果水平高一點(diǎn),實(shí)現(xiàn)了彈出式窗口的管理,不管是觸摸屏還是WINCC,好像都有點(diǎn)麻煩了。窗口使用的同一個(gè)模板,同樣的位置,量綱需要?jiǎng)討B(tài)變換,所以還需要做些特殊處理。
然后就會(huì)質(zhì)問了,除此之外難道還會(huì)有更好的方式?
當(dāng)然有。方法便是在PLC編程中,在調(diào)用模擬量的FB塊的過程中錄入到其管腳上。 管腳數(shù)據(jù)除了物理通道地址,標(biāo)定上下限值之外,再增加一個(gè)UNIT的字符類型的管腳即可。 程序塊內(nèi)部甚至都可以不需要再做任何邏輯,上位機(jī)變量直接鏈接到這個(gè)管腳,讀取其內(nèi)容,并動(dòng)態(tài)顯示即可。
而且這都不是我一個(gè)人發(fā)明的,我只是在推廣一種常識(shí)方法。讓我們來看一看PCS7是如何做到的。
即他的FB有個(gè)UNIT 的管腳,輸入了量綱編碼,最后在畫面上實(shí)現(xiàn)了動(dòng)態(tài)顯示。
圖片來自劍指工控發(fā)的網(wǎng)文,然而他們又備注了文章來自網(wǎng)絡(luò),原作者不詳。劍控把抄襲的原作者的文章全都打上了他們自己的標(biāo)志,然后到處分發(fā),導(dǎo)致原作者的文章出處反而找不到了。
其實(shí)這里文章介紹的還是PCS7較新的版本,我原本可以找到自己的老版本的PCS7的虛擬機(jī)打開來截屏的,那時(shí)候的UNIT直接就是個(gè)字符串。
我拿PCS7來為自己背書,無非是說明,我所介紹的方法是業(yè)界的通行標(biāo)準(zhǔn)做法,并沒有什么新奇之處。 我做的80模擬量的處理程序例程,我敢有底氣稱之為標(biāo)準(zhǔn)答案,只不過是我了解PCS7的這種做法。許多懂PCS7的朋友見到我給的例程也都覺得很自然,很正常,就是應(yīng)該這個(gè)樣子的。
而有一些同行,見到之后比較驚訝,只是因?yàn)槟銢]見過PCS7而已。而有人倒過來嘲笑我羅列80行的做法很簡(jiǎn)單很幼稚。
嗯,沒錯(cuò),我們做程序的目的,就是要復(fù)雜問題盡量簡(jiǎn)單化,越簡(jiǎn)單越實(shí)用。而不是倒過來。
有人會(huì)抬杠說你們把這些非運(yùn)算數(shù)據(jù)都放到PLC里面來,會(huì)增大和浪費(fèi)CPU的系統(tǒng)資源。 你們那是PCS7, S7-400,你們有錢無所謂,俺們窮,用的小PLC,這樣做資源浪費(fèi)。
嗯,這樣的邏輯相當(dāng)于你出門打個(gè)出租車,你副駕駛還是后排座全都不坐,你去站在車屁股后面推著跑,聲稱這樣比較省油。
而出租車司機(jī)對(duì)這樣的做法會(huì)感激你夸獎(jiǎng)你嗎?夸獎(jiǎng)你花了同樣的錢,但給他省了油嗎?不會(huì),他會(huì)罵你神經(jīng)病,罵你耽誤了時(shí)間,降低了效率。
其實(shí)實(shí)情是,現(xiàn)在的趨勢(shì)是,都不僅僅是量綱這么3-4個(gè)字節(jié)的字符了,物理信號(hào)的位號(hào),以及一大段的文字注釋,都會(huì)放在PLC中實(shí)現(xiàn)錄入,運(yùn)行中HMI上面動(dòng)態(tài)讀取,節(jié)省大量的人工,提高效率。
這樣的話,這些內(nèi)容的錄入是和數(shù)據(jù)信息是在同一個(gè)時(shí)刻實(shí)現(xiàn)的,不需要多次重復(fù)回來翻閱同一個(gè)工藝數(shù)據(jù)表格,提高效率同時(shí)還降低了出錯(cuò)的概率。 甚至,從表格到PLC程序,可以用軟件工具實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換,自動(dòng)生成。 可以是EXCEL中處理,也可以用PYTHON等高級(jí)語言制作小工具完成。 使得自動(dòng)化的完成自動(dòng)化設(shè)計(jì)工作成為可能。
這是很多明眼人看到我給出的標(biāo)準(zhǔn)答案之后,一眼就看懂的原因。
讓我們來看一下LBP中這部分是怎么實(shí)現(xiàn)的:
LBP的UNIT和COMMENT,并沒有放到FB的管腳上在調(diào)用時(shí)錄入,而是在其內(nèi)部的變量中設(shè)置了相應(yīng)的內(nèi)容,呈現(xiàn)到觸摸屏中。運(yùn)行中從這個(gè)設(shè)定界面里人工輸入,完成后運(yùn)行界面中也都能正常顯示正確的量綱Unit了。
即如果系統(tǒng)中有80個(gè)模擬量,就需要跳轉(zhuǎn)80次頁面,逐個(gè)人工輸入。如果是由操作工來輸入,他會(huì)罵死設(shè)計(jì)者。 如果設(shè)計(jì)者自己來輸入, 那還不如在電腦中編程軟件中輸入效率高了。 而且這還沒考慮到系統(tǒng)掉電或者程序重新下載的情形,極有可能,一不小心,就會(huì)要你多次錄入, 給你好看。
所以,我現(xiàn)在倡導(dǎo)的學(xué)習(xí)和使用LBP, 并不是一味的照抄他,而是汲取其有營(yíng)養(yǎng)的精華的部分,而對(duì)于不適用我們各自的行業(yè)應(yīng)用習(xí)慣的部分,要在吸收的同時(shí)加以改進(jìn)。
包括上面圖中的MODE,代表了通道的電信號(hào)類型的選擇,也令人不太理解為什么要做在觸摸屏上,我們只能承認(rèn)不理解,或許有其他的行業(yè)需要這樣的功能。但我們可以根據(jù)我們自己行業(yè)的需求,修改到適應(yīng)我們的模式。
針對(duì)近期對(duì)LBP 的模擬量塊的改進(jìn),結(jié)合前面提出的80模擬量標(biāo)準(zhǔn)答案的問題,準(zhǔn)備舉辦一次公開的研討會(huì)。暫定了一個(gè)時(shí)間,然而具體時(shí)間還要等與會(huì)人員湊齊了之后再?zèng)Q定。 歡迎報(bào)名參加。
報(bào)名信息和會(huì)議內(nèi)容說明,也會(huì)同時(shí)發(fā)在公眾號(hào)的下一篇文章,以及朋友圈中。