<bdo id="2fwpw"></bdo><noframes id="2fwpw"><delect id="2fwpw"></delect><delect id="2fwpw"></delect><noframes id="2fwpw"><rt id="2fwpw"></rt><bdo id="2fwpw"></bdo><delect id="2fwpw"></delect><delect id="2fwpw"><bdo id="2fwpw"></bdo></delect><noframes id="2fwpw"><noframes id="2fwpw"><delect id="2fwpw"><delect id="2fwpw"></delect></delect><rt id="2fwpw"></rt><delect id="2fwpw"></delect><delect id="2fwpw"></delect><bdo id="2fwpw"></bdo><bdo id="2fwpw"></bdo> <bdo id="2fwpw"><rt id="2fwpw"></rt></bdo><noframes id="2fwpw"><bdo id="2fwpw"></bdo><bdo id="2fwpw"></bdo><delect id="2fwpw"><rt id="2fwpw"></rt></delect><rt id="2fwpw"><rt id="2fwpw"></rt></rt><bdo id="2fwpw"><bdo id="2fwpw"></bdo></bdo><rt id="2fwpw"></rt><delect id="2fwpw"></delect><noframes id="2fwpw"><rt id="2fwpw"></rt><rt id="2fwpw"></rt><rt id="2fwpw"></rt><rt id="2fwpw"></rt><delect id="2fwpw"><noframes id="2fwpw"><noframes id="2fwpw"> <delect id="2fwpw"></delect><delect id="2fwpw"></delect><noframes id="2fwpw"><delect id="2fwpw"></delect><bdo id="2fwpw"></bdo><noframes id="2fwpw"><noframes id="2fwpw">
萬(wàn)泉河
WX:ZHO6371995,歡迎+
級別: 略有小成
精華主題: 0
發(fā)帖數量: 142 個(gè)
工控威望: 269 點(diǎn)
下載積分: 888 分
在線(xiàn)時(shí)間: 12(小時(shí))
注冊時(shí)間: 2021-06-11
最后登錄: 2025-05-31
查看萬(wàn)泉河的 主題 / 回貼
樓主  發(fā)表于: 2023-03-14 15:52
0313 【萬(wàn)泉河】萬(wàn)老師手把手帶你抄PLC程序

前面寫(xiě)了一篇文章《0304 【萬(wàn)泉河】 我把LBP的功能塊解耦了》,講解了把LBP的一個(gè)MOTOR塊一分為二解耦成2個(gè)單獨的塊的過(guò)程方法和意義。

然后有人就在后面酸溜溜的評論道:情商高的說(shuō)法把抄說(shuō)成了解耦。

意思就是瞧不上我這種公然抄和借用別人的現成的庫函數方法,并大行其道的宣傳。

我簡(jiǎn)直被這種價(jià)值觀(guān)給驚訝到了。 我這兒還巴拉巴拉地介紹開(kāi)源,幻想工控行業(yè)也會(huì )有繁盛開(kāi)源的那一天呢!哪想到同行之中還有另一派完全公然相反的價(jià)值觀(guān)在運行。

先這么說(shuō)吧,我們現在的技術(shù)觀(guān)點(diǎn),講究的是不自己重新發(fā)明輪子。所以,如果你在十幾年前從每一個(gè)工程項目都從啟保停開(kāi)始寫(xiě)PLC程序,WINCC程序每個(gè)人都要從頭研究窗口彈出,變量前綴,以實(shí)現子窗口功能的話(huà), 還有情可原。 畢竟那個(gè)時(shí)候自動(dòng)化行業(yè)的發(fā)展成熟程度還不夠。

而十幾年后的今天, 你仍然十幾年如一日做著(zhù)同樣的工作,技術(shù)已經(jīng)發(fā)展到如此成熟,網(wǎng)絡(luò )資源如此唾手可得的情況下,還在沿用老的工作方式,那可想而知其中的工作效率有多低,做出來(lái)的效果有多土了。

十幾年前我們的工資幾千塊錢(qián), 那么到今天,除卻物價(jià)增長(cháng)因素,你的工資也還仍然應該停留在幾千元。沒(méi)有創(chuàng )造更多的效益,憑什么就要拿到更高的收入呢?

所以,這個(gè)行業(yè)需要達成的一個(gè)基本的共識是, 要想效率高,收入高,就要學(xué)會(huì )如何充分利用已有輪子,免費或者付費,在已有的輪子的基礎上,快速實(shí)現應用,以充分發(fā)揮自己的優(yōu)勢。

這也是隔壁IT行業(yè)早就在踐行的基礎。

也是我為啥明知這個(gè)行業(yè)的大多數人當下并不理解和接受LBP, 明知道做了也不會(huì )產(chǎn)生什么效益,明知道其中的困難難度極大,卻仍然要獨自前行闖出一條路來(lái)把LBP的接口方法移植拓展到更多平臺的原因。

同時(shí),有領(lǐng)導批評我做著(zhù)西門(mén)子HMI版區的版主,近來(lái)對HMI和WINCC的技術(shù)卻關(guān)心很少,貌似精力全放到PLC去了。 通過(guò)本文通過(guò)LBP,可以看到,當工控技術(shù)發(fā)展到一定的層級, PLC和HMI的工作一定是同步的,甚至在PLC中做的大量工作都是在給HMI做數據準備。 離開(kāi)了PLC工作的標準化,HMI上的標準化根本無(wú)從談起。

在對LBP_MTR解耦并實(shí)現移植應用之后,我下一個(gè)庫函數的目標便盯上了INTLK8函數。先用同樣的方法解耦成2個(gè)模塊,然后再一步步分別移植到SMART 200和KTP 觸摸屏以及將來(lái)更多的拓展方向。

先解釋下INTLK8這個(gè)庫函數的功能。我在做LBP移植五期講座的時(shí)候,這里只是隨口提了一下,就越過(guò)去了,相應的功能因為比較復雜,而且用的場(chǎng)合不多,就建議簡(jiǎn)單刪掉算事了。所以這里仔細講一下, 學(xué)員們通過(guò)看文章充分了解后,需要的話(huà)那部分功能還可以再拾起來(lái)。

我在前一本書(shū)《PLC標準化編程原理和方法》中P161頁(yè)提到過(guò),BST庫中有一個(gè)可視化聯(lián)鎖功能,BST_ILOCK (FB651) 。然而在BST中時(shí)有時(shí)無(wú),曾經(jīng)在S7-400的版本中有過(guò),但到了PORTAL版本中給取消了。 所以我們在做PORTAL項目時(shí),需要用到的時(shí)候,還是從S7-400中參考移植過(guò)來(lái)的。

邏輯其實(shí)很簡(jiǎn)單,就是對多個(gè)管腳的取與AND或OR邏輯計算,得到的結果可以用于對電機閥門(mén)等設備的啟動(dòng)條件連鎖等功能。

但通過(guò)一個(gè)專(zhuān)用的FB,實(shí)現了在上位機的可視化管理,操作人員可以在設備故障不能啟動(dòng)時(shí),通過(guò)上位界面,詳細了解運行條件的滿(mǎn)足和缺失情況。 所以可以認為整個(gè)FB本質(zhì)上是為HMI顯示服務(wù)的。 否則僅僅為了邏輯功能,在PLC中做與(串聯(lián))、或(并聯(lián))的梯形圖邏輯都是一句話(huà)的事,不需要什么功能塊。

有一些行業(yè),要求觸摸屏和上位機有跳轉到PLC中查看梯形圖邏輯的功能。有極少數的控制系統搭配其自家的觸摸屏,通過(guò)一些特殊的插件,可以實(shí)現。 然而本質(zhì)上說(shuō),客戶(hù)要的并不是在觸摸屏上能翻閱所有控制邏輯,就是希望能可視化的看到重要設備的啟動(dòng)條件而已。 所以這種連鎖功能的可視化就可以實(shí)現這樣的功能。

這個(gè)功能在蟄伏了數年之后,在LBP中重新出現了,名字叫做LBP_INTLK8,望文生義,可以最多控制8個(gè)輸入條件。如果再多,可以多次調用來(lái)實(shí)現。

而LBP_INTLK8比BST_ILOCK先進(jìn)的地方在于,原本BST中的邏輯條件只能集體統一選擇AND 或者OR, 每個(gè)管腳之間并不能單獨選擇。而INTLK8實(shí)現了每個(gè)管腳都可以分配不同的邏輯,包括:
1=OR,2=AND , 3= OR NOT, 4=AND NOT。
以及0=無(wú)效。
由此,通過(guò)一個(gè)標準化的模塊可以實(shí)現更豐富的邏輯條件,及其可視化。

有了這樣的功能,一個(gè)系統中,最重要的主機部分的啟動(dòng)條件前面都可以通過(guò)這樣的可視化條件接入。然后在觸摸屏上就可以實(shí)現可視化監控管理了。比起設計的程序只能讓設備運轉起來(lái),運轉不起來(lái)時(shí)則需要用戶(hù)翻說(shuō)明書(shū),或者打服務(wù)電話(huà)咨詢(xún),都要友好和便捷的多了。那么同比之下,這樣的設備就更容易被客戶(hù)接受,也更容易賣(mài)上高價(jià)值。


在S7-1200和TP900觸摸屏中的實(shí)現毫無(wú)難度,與普通的LBP模塊基本相同。 解耦方法也相同。

然而在TP觸摸屏中,動(dòng)畫(huà)的實(shí)現方法是通過(guò)腳本程序實(shí)現的。 通過(guò)PLC送來(lái)的一個(gè)2S脈沖變量,變量的變化事件中執行腳本,將FB的狀態(tài)字解碼后經(jīng)過(guò)邏輯計算,來(lái)設置畫(huà)面中邏輯結果的顯示和顏色切換。
Function LBP_Intlk8()


End Function

然而,我們的最終目標是沒(méi)有腳本功能的如KTP這樣的觸摸屏,那么這些邏輯只能先在PLC中計算完成,得到畫(huà)面元素各自的狀態(tài)位數據,然后觸摸屏方僅用于顯示。

所以對庫函數塊做了改造,增加了2個(gè)DWORD , VIS1和VIS2 , 不超過(guò)64個(gè)Bit可以完整表達。

在S7-1200的程序中增加的邏輯:
REGION 增加的觸摸屏顯示的邏輯圖

    
    
END_REGION
程序中注釋的部分是原本的觸摸屏中的腳本,為了對照移植,我把源程序復制過(guò)來(lái)了!
然后,觸摸屏畫(huà)面中,每一根線(xiàn)條和畫(huà)面元素,都增加了顏色切換和動(dòng)態(tài)顯示的動(dòng)畫(huà)功能,綁定增加的VIS變量的位。實(shí)現了同樣的功能。

得益于LBP原作者的細心,每一根線(xiàn)條都有精心起的名字, 如poly0To7On,poly2To0On等,盡管我并沒(méi)有完全讀懂其名稱(chēng)含義,但在對照上面的程序基礎上,還是很順利實(shí)現了畫(huà)面的改進(jìn)。只要自己不粗心的錯誤,功能總可以完整復制的。 這就是移植,也同樣是抄。

在完整實(shí)現功能后,把觸摸屏降格為KTP,仍舊連接S7-1200,然后發(fā)現,KTP的畫(huà)面中除了不支持腳本,不支持模板對象之外,還不支持多線(xiàn)!所以畫(huà)面中的所有線(xiàn)條, 又重新用單線(xiàn)繪制。 原本的多線(xiàn)的顯示條件,復制到多個(gè)線(xiàn)段。工作量之大,導致我都暗自抱怨,如果早發(fā)現其不支持單線(xiàn),就不做這個(gè)塊的移植了。但路走都走了,也還好沒(méi)有項目工期壓力,頂多多花點(diǎn)時(shí)間而已。

同樣的在PLC程序中,也先在SMART 200中實(shí)現同樣的邏輯,包括INTLK8完整的邏輯,解耦之后分為801和802。

也還好做了解耦,用2個(gè)塊來(lái)實(shí)現,否則SMART 200的子程序塊的管腳數量和內部TEMP變量全都不夠用。 這樣靠2個(gè)塊,共同協(xié)作,才算完成了所有需要的功能。當然,前者801主要處理邏輯和狀態(tài)位顯示的計算。而802則是處理與多觸摸屏的數據交換管理。
摘錄一段801中的程序邏輯:

注釋中我把從觸摸屏到PORTAL的程序,又當作注釋全部搬過(guò)來(lái)了,只為了方便抄和查錯驗證。

LBP原本的身份識別是在觸摸屏上拼接字符完成的,比如對MTR-0001的連鎖,則拼接成MTR-0001LockOn,PLC程序中相應的連鎖對應這樣的標識,由此實(shí)現了ID身份識別。而同樣因為KTP不支持腳本功能,所以我又增加了EXT管腳,用于單獨識別觸摸屏數據管理。所以,即便是抄,也不是把腦子關(guān)上不動(dòng)腦子就能抄成的。

INTLK塊的名稱(chēng)雖然是為L(cháng)OCK功能的,其實(shí)也還可以用于允許啟動(dòng)的功能。 即在LOCK的結果為1的時(shí)候,設備禁止啟動(dòng),而倒過(guò)來(lái)當用于允許啟動(dòng)條件的時(shí)候,結果為1時(shí),設備才允許啟動(dòng),對應了MTR塊的RELEASE管腳。我現在才明白這個(gè)管腳的功能含義。其實(shí)相當于我們國內行業(yè)常對應的備妥或者以前稱(chēng)作READY的管腳。

即,符合了我在標準化書(shū)和講座中所要求的,設備的耦合邏輯要追求極致的簡(jiǎn)化,允許啟動(dòng)和互鎖,需要分到不同的管腳中。 而不要因為取反的邏輯很簡(jiǎn)單,就混淆在一起。 煙臺方法的學(xué)員們對這一點(diǎn)會(huì )理解更深刻。

在可視化界面上, LOCK和RELEASE需要的顯示顏色是不同的。比如LOCK時(shí)顏色需要為黃色或者紅色,而允許啟動(dòng)的顏色會(huì )是綠色。所以其庫功能還包含了對顏色的選擇設定。主要是由HMI腳本實(shí)現的。而這些如果同樣增加到PLC程序中,導致PLC中變量數量激增,邏輯也更為復雜,所以暫時(shí)就做了功能簡(jiǎn)化。未來(lái),需要的時(shí)候再另外想辦法實(shí)現。 比如黃和綠兩套顏色機制可以分在2套不同的畫(huà)面中實(shí)現。

另外,庫函數原始功能還包含了操作員的動(dòng)態(tài)編程功能,可以在運行中修改邏輯和描述文本。也是出于PLC中資源限制的原因,做了刪減。 我還是認為,顯示的意義比操作要大多了。
  
由此,總結下移植(手抄)這個(gè)INTLK8塊的實(shí)現路線(xiàn):
1,    S7-1200 + TP900
2,    S7-1200 (加邏輯)   +  TP900(去邏輯)
3,    S7-1200    +  TP900 單線(xiàn)條
4,    S7-1200 + KTP900
5,    SMART 200 + TP900
6,    SMART 200 + KTP900
通過(guò)逐步實(shí)現, 逐步對照比較,發(fā)現其中的錯誤和疏忽,逐步修訂,最終實(shí)現了想要的功能。 在移植過(guò)程中, 我甚至用兩臺電腦分別運行觸摸屏仿真,分別監控S7-1200和SMART200, PLC之間的輸入信號為了同步一致,還做了通訊,最終調試成功。

這個(gè)過(guò)程證明了,在未完全讀懂原始邏輯的情況下通過(guò)漸進(jìn)的每次僅一小步的移植,最終也可以實(shí)現功能移植。

雖然麻煩,總比自己從頭規劃設計一套完整的功能,要省力方便的多。

所以,哪怕迫不得已需要自己造輪子,也盡量參考已有的輪子。

這才是科技進(jìn)步,這才是工業(yè)化。


附件: 0313 【萬(wàn)泉河】萬(wàn)老師手把手帶你抄PLC程序.pdf (341 K) 下載次數:268
網(wǎng)站提示: 請不要用迅雷下載附件,容易出錯
本帖最近評分記錄:
  • 下載積分:+2(songyumosd) 好貼好貼!
    shhjs123
    級別: 探索解密
    精華主題: 0
    發(fā)帖數量: 19 個(gè)
    工控威望: 123 點(diǎn)
    下載積分: 2742 分
    在線(xiàn)時(shí)間: 7(小時(shí))
    注冊時(shí)間: 2020-12-17
    最后登錄: 2024-11-04
    查看shhjs123的 主題 / 回貼
    1樓  發(fā)表于: 2023-03-14 18:08
    這東西不錯,下載學(xué)習學(xué)習!
    加勒比海帶
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數量: 2326 個(gè)
    工控威望: 1896 點(diǎn)
    下載積分: 7391 分
    在線(xiàn)時(shí)間: 70(小時(shí))
    注冊時(shí)間: 2021-07-19
    最后登錄: 2025-05-15
    查看加勒比海帶的 主題 / 回貼
    2樓  發(fā)表于: 2023-03-15 16:45
    下載學(xué)習

    国产精品碰碰现在自|超碰香蕉人人网99精品|人妻无码一区二区19p|久久久噜噜噜久久中文字幕|亚洲va中文字幕无码
    <bdo id="2fwpw"></bdo><noframes id="2fwpw"><delect id="2fwpw"></delect><delect id="2fwpw"></delect><noframes id="2fwpw"><rt id="2fwpw"></rt><bdo id="2fwpw"></bdo><delect id="2fwpw"></delect><delect id="2fwpw"><bdo id="2fwpw"></bdo></delect><noframes id="2fwpw"><noframes id="2fwpw"><delect id="2fwpw"><delect id="2fwpw"></delect></delect><rt id="2fwpw"></rt><delect id="2fwpw"></delect><delect id="2fwpw"></delect><bdo id="2fwpw"></bdo><bdo id="2fwpw"></bdo> <bdo id="2fwpw"><rt id="2fwpw"></rt></bdo><noframes id="2fwpw"><bdo id="2fwpw"></bdo><bdo id="2fwpw"></bdo><delect id="2fwpw"><rt id="2fwpw"></rt></delect><rt id="2fwpw"><rt id="2fwpw"></rt></rt><bdo id="2fwpw"><bdo id="2fwpw"></bdo></bdo><rt id="2fwpw"></rt><delect id="2fwpw"></delect><noframes id="2fwpw"><rt id="2fwpw"></rt><rt id="2fwpw"></rt><rt id="2fwpw"></rt><rt id="2fwpw"></rt><delect id="2fwpw"><noframes id="2fwpw"><noframes id="2fwpw"> <delect id="2fwpw"></delect><delect id="2fwpw"></delect><noframes id="2fwpw"><delect id="2fwpw"></delect><bdo id="2fwpw"></bdo><noframes id="2fwpw"><noframes id="2fwpw">