建控電
野蠻其體魄、文明其精神。
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 555 個(gè)
工控威望: 1593 點(diǎn)
下載積分: 3462 分
在線時(shí)間: 394(小時(shí))
注冊(cè)時(shí)間: 2013-12-16
最后登錄: 2024-12-16
查看建控電的 主題 / 回貼
樓主  發(fā)表于: 2024-04-04 23:05
請(qǐng)教各位同行,
封裝氣缸功能塊時(shí),氣缸動(dòng)作和復(fù)位的防呆條件,只對(duì)手動(dòng)有效,還是手動(dòng)/自動(dòng)都生效?
同理,軸定位時(shí),去各目標(biāo)位置時(shí)防呆條件,手動(dòng)通常會(huì)封裝在軸功能塊里.自動(dòng)去各目標(biāo)位的防呆條件是封裝在軸功能塊里,還是寫在自動(dòng)流程里?
思路不同,主要看看大家都是怎么考慮的!!
gxtmdb82164
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 770 個(gè)
工控威望: 1148 點(diǎn)
下載積分: 399 分
在線時(shí)間: 604(小時(shí))
注冊(cè)時(shí)間: 2019-09-22
最后登錄: 2024-12-20
查看gxtmdb82164的 主題 / 回貼
1樓  發(fā)表于: 2024-04-07 13:52
同一個(gè)功能塊內(nèi)部要盡量簡(jiǎn)單,越簡(jiǎn)單越好,換句話說就是功能越單一越好

氣缸的執(zhí)行塊最好就是只有氣缸的動(dòng)作執(zhí)行,剩下的一切可以剝離的東西都提到外面去

同時(shí),手動(dòng)和自動(dòng)也都調(diào)用同一個(gè)功能塊,這樣也不存在手動(dòng)要寫一份,自動(dòng)又要寫一份了,因?yàn)楸举|(zhì)上你這兩部分程序的區(qū)別(導(dǎo)致其不能共用)是因?yàn)檎{(diào)用方的邏輯不同,比如手動(dòng)下少一些防呆處理等等,調(diào)用方的區(qū)別怎么可能要求被調(diào)用方去兼容呢,如果要兼容就要塞一堆東西進(jìn)去,違反了上面能剝離的盡量剝離的原則

我自己的程序典型結(jié)構(gòu)就是能分開的盡量分開,就以氣缸控制為例,手動(dòng)/自動(dòng)模式切換有個(gè)明確的標(biāo)志位,自動(dòng)有自動(dòng)的氣缸使能,手動(dòng)有手動(dòng)的氣缸使能,只有在正確的模式下,對(duì)應(yīng)的使能才有效,我的習(xí)慣是在命名上用前綴區(qū)分,加上現(xiàn)在很多PLC編程軟件有自動(dòng)補(bǔ)全的了,寫起來很快的

最后說一下防呆,這個(gè)一定都是定制的邏輯,和結(jié)構(gòu)、工藝強(qiáng)相關(guān)的,這種代碼就是非常dirty的(或者說標(biāo)準(zhǔn)化的成本很高,不可能有簡(jiǎn)潔又迅速的方法去實(shí)現(xiàn)),所以我都是直接寫在氣缸輸出塊的頭頂上最近的位置,再復(fù)雜的防呆無非與或非組合,一兩行梯形圖足夠,但是寫在這里方便后續(xù)調(diào)試看過程變量