欧美变态杂交XXXX,99综合之综合久久伊人,关晓彤床震18以下禁免费网站,精品国产3p一区二区三区,性感美女毛片

萬(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ā)表于: 2022-08-03 09:55
0803 【萬(wàn)泉河】巧用程序塊臨時(shí)變量

上一篇文章《0728 【萬(wàn)泉河】談虎色變雙線(xiàn)圈再談再變》有網(wǎng)友評論說(shuō), 文章題目應該叫做巧用臨時(shí)變量,我說(shuō), 我舉例的程序中用的都是全局變量,所以不能這么叫。 然而我可以以這個(gè)名字寫(xiě)一篇文章, 真的是巧用臨時(shí)變量的。

先看芳季大俠寫(xiě)過(guò)的系列文章:

入口在:
擁有屬于自己的指令第一集-技術(shù)視頻免費看-西門(mén)子工業(yè)1847會(huì )員–西門(mén)子中國 (siemens.com.cn)
具體內容,里面涉及的知識點(diǎn)如果有不懂的,可以去仔細研讀,甚至可以配合文章, 也自己實(shí)驗摸索得到。

然而,我是不會(huì )從這樣最基本的步驟一步步開(kāi)講,我只能把實(shí)際用過(guò)的理論方法一步到位給一個(gè)終極的解決方案。 如果芳老師不再出第五集,把我本文的內容當做其第五集,我給來(lái)個(gè)狗尾續貂也可以。

芳老師在第四集有一張附圖:

本文的內容就從這張圖展開(kāi)。

這張圖的意思是,在系統堆棧中,每一個(gè)同一級別的子程序TEMP變量同享的是同一片L空間。

這里先多講一點(diǎn)TEMP變量的本質(zhì)是什么?其實(shí)仍然是計算機的內存RAM。原本作為RAM,是可以被全局訪(fǎng)問(wèn)的, 只不過(guò)軟件系統做了保護限制, 不允許外部訪(fǎng)問(wèn)。

多講這一點(diǎn)的意義在于, 對于一些連子程序功能都沒(méi)有, 或者有子程序, 然而子程序功能不如SMART這樣強大的PLC, 主要是西門(mén)子之外的一些其他品牌的小PLC, 它們的系統中沒(méi)有TEMP變量的時(shí)候,我們通過(guò)編程手段自己部署一部分內存數據區給當做TEMP變量使用。 這時(shí)候,操作系統本身自然不會(huì )限制, 那么我們在編程的時(shí)候就要格外小心, 要對這篇數據保護好。這是題外話(huà)。

回到上面的圖片,圖中我用紅色方框圈出來(lái),CDEF四個(gè)子程序,它們是同一級別的。 那么除了說(shuō)它們共享L變量空間之外,其實(shí)還有一個(gè)含義, 就是當程序執行完了子程序C,又進(jìn)入子程序D的時(shí)候, 在子程序D開(kāi)始時(shí), TEMP區的內容,除了INPUT對應的部分被輸入管腳的值刷新了之外, 其余的所有數值其實(shí)就是離開(kāi)子程序C時(shí)的內容。

即所有數據值,現場(chǎng)被完整保留。

這就是我們平常教育新手的時(shí)候, 總要強調, TEMP的數據,不要先讀, 不要先讀,不要讀操作在先。 應該先寫(xiě)操作,賦值以后,后面的數值才是真實(shí)可控的,邏輯才可控。

有的人會(huì )不信, 說(shuō)自己明明做子程序驗證過(guò)了,我就是先讀數值了, 也沒(méi)有問(wèn)題。 那是因為你測試程序中同一級別的子程序數量太少, 可能只有它自己。比如圖中的F。 那么數據區就不會(huì )被別的子程序污染。 你做的邏輯暫時(shí)好用。然而等到了現場(chǎng), 真實(shí)應用中, 子程序多了, 數據就混亂了,邏輯就亂套了。

所以, 我經(jīng)常建議對TEMP變量屬性不熟悉的新手,調試中遇到疑惑的時(shí)候, 不防在子程序的開(kāi)始時(shí)候, 把用到的一片TEMP變量全部清零。 后面程序功能都好用,才叫好用。

這是傳統做法。

今天則是顛覆傳統,利用前面說(shuō)的進(jìn)入下一個(gè)子程序后,前一個(gè)子程序的TEMP數據現場(chǎng)被完整保留集成的這個(gè)特性,我們可以用來(lái)做點(diǎn)文章。才是題目宣稱(chēng)的巧用臨時(shí)變量。

我在3年前寫(xiě)過(guò)一篇文章,做過(guò)程序編程方法征集:
《【萬(wàn)泉河】有償征集2:S7-200函數塊BLOCK_MOVE》
https://www.ad.siemens.com.cn/club/bbs/PostStory.aspx?a_id=1574124&b_id=80&s_id=157&num=3#anch

需要把一整塊的數據用BLOKMOVE的方法傳送到一個(gè)完全封裝的子程序的內部。 然而并沒(méi)有如愿得到答案。 還是我自己在去年底的時(shí)候,對TEMP變量思考到上述的內容后,得到了解決。

即,數據傳送部分下降層級,放到相鄰調用的前一個(gè)子程序中,直接對TEMP數據BLOKMOVE, 后面的子程序中的TEMP就自然收到了數值。
空講理論光說(shuō)不練可能有些難懂。 下面做個(gè)例子來(lái)演示下實(shí)現方法以及實(shí)際的應用。

通常SMART的子程序的管腳數量有限制,可能是16個(gè),數值不精確,但是沒(méi)意義,總之系統給的再多,在做標準化庫函數時(shí)也會(huì )不夠用。所以總要有有擴張管腳的需求。

我們有建立一個(gè)子程序叫做“功能塊”:  


其原生管腳很少,然而我們把更多的管腳建立到LB10,LB11,LB12的L數據區中。
做一個(gè)“功能塊前處理”的子程序 ,在其中調用BLOCKMOVE功能:


即實(shí)現了對內部TEMP變量的批量賦值, VB10的數據可以作為功能塊的INPUT數據使用了。
當然,我們還可以做個(gè)“功能塊后處理”,數值的傳送方向顛倒一下:

那么建立的IN11-IN34的臨時(shí)變量事實(shí)上成為了功能塊的INOUT管腳。

程序的調用過(guò)程變?yōu)椋?br />

如此實(shí)現了給功能塊擴張了24個(gè)管腳。 如果還需要更多,則簡(jiǎn)單修改即可。

我做的標準化煙臺方法的分享項目的SMART 200的程序, 在2022年春節左右,做了一次V2.0的升級, 其中包含了本文講解的技術(shù)方法,使得程序更加簡(jiǎn)練,優(yōu)雅, 封裝更徹底。

V2.0的升級程序不是完整的項目程序,而只是做了一部分功能的演示, 學(xué)員需要在加入學(xué)習營(yíng)后,從QQ群文件中自行下載。學(xué)習掌握之后改進(jìn)升級到所有程序功能。 在掌握之前,還是仍然可以只學(xué)習V1.0的方法,以及工程應用。其實(shí)只是我一個(gè)人的心結, 追求更優(yōu)雅更完美的程序架構,實(shí)際功能是一樣的。
0803 【萬(wàn)泉河】巧用程序塊臨時(shí)變量 (1).pdf (298 K) 下载次数:104
愛(ài)在日落之后
所有的偉大,源于一個(gè)勇敢的開(kāi)始
級別: 家園?
精華主題: 0
發(fā)帖數量: 663 個(gè)
工控威望: 705 點(diǎn)
下載積分: 3444 分
在線(xiàn)時(shí)間: 141(小時(shí))
注冊時(shí)間: 2022-07-25
最后登錄: 2025-06-04
查看愛(ài)在日落之后的 主題 / 回貼
1樓  發(fā)表于: 2022-08-03 13:18
狗尾續貂好評
ldf710613
級別: 論壇先鋒
精華主題: 0
發(fā)帖數量: 367 個(gè)
工控威望: 1154 點(diǎn)
下載積分: 1301 分
在線(xiàn)時(shí)間: 31(小時(shí))
注冊時(shí)間: 2022-04-09
最后登錄: 2023-12-18
查看ldf710613的 主題 / 回貼
2樓  發(fā)表于: 2022-08-05 16:48
學(xué)習一下

欧美变态杂交XXXX,99综合之综合久久伊人,关晓彤床震18以下禁免费网站,精品国产3p一区二区三区,性感美女毛片